Meta/cook -w: catch a few more phrases, like 'Will hold'
[alt-git.git] / whats-cooking.txt
blobebcc23683f1662c224d00e0be959f69928bf264e
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Nov 2013, #02; Wed, 6)
4 X-master-at: 6ba01babcd37e92e88221fcf35ee4471aa66bf4c
5 X-next-at: 1ea5b1861e50543207d31c936d4f7bbd4571e433
7 What's cooking in git.git (Nov 2013, #02; Wed, 6)
8 --------------------------------------------------
10 Here are the topics that have been cooking.  Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
14 The first release candidate 1.8.5-rc1 has been tagged.
16 As promised/requested, the final steps for 2.0 are in 'next'; they,
17 together with a handful topics that have been merged to 'next'
18 fairly recently, will _not_ be part of the upcoming 1.8.5 release,
19 but will be carried over in 'next' to the next cycle.
21 There is a proposed rewording of advice message from "git push"
22 patch, which is tentatively queued near the tip of 'pu' for now; it
23 would be nice to get a few more sets of eyeballs.  I am not sure if
24 we should merge it before the 1.8.5 final, yet (we have i18n to
25 worry about, among other things).
27 You can find the changes described here in the integration branches
28 of the repositories listed at
30     http://git-blame.blogspot.com/p/git-public-repositories.html
32 --------------------------------------------------
33 [Graduated to "master"]
35 * ak/cvsserver-stabilize-use-of-hash-keys (2013-10-30) 1 commit
36   (merged to 'next' on 2013-11-01 at cc3b890)
37  + cvsserver: Determinize output to combat Perl 5.18 hash randomization
39  Perl portability fix.
42 * bw/solaris-sed-tr-test-portability (2013-11-04) 3 commits
43   (merged to 'next' on 2013-11-04 at c2c09e28)
44  + t4015: simplify sed command that is not even seen by sed
45   (merged to 'next' on 2013-11-01 at f04be9a)
46  + Avoid difference in tr semantics between System V and BSD
47  + Change sed i\ usage to something Solaris' sed can handle
49  Shell script portability fix.
52 * fc/trivial (2013-10-31) 13 commits
53   (merged to 'next' on 2013-11-04 at c608324)
54  + setup: trivial style fixes
55  + run-command: trivial style fixes
56  + diff: trivial style fix
57  + revision: trivial style fixes
58  + pretty: trivial style fix
59  + describe: trivial style fixes
60  + transport-helper: trivial style fix
61  + sha1-name: trivial style cleanup
62  + branch: trivial style fix
63  + revision: add missing include
64  + doc/pull: clarify the illustrations
65  + t: replace pulls with merges
66  + merge: simplify ff-only option
68  A random collection of style fixes and minor doc updates.
71 * jk/duplicate-objects-in-packs (2013-10-31) 1 commit
72   (merged to 'next' on 2013-11-01 at 8951339)
73  + Fix '\%o' for printf from coreutils
75  Test fixup to a topic recently graduated.
78 * jk/subtree-install-fix (2013-10-30) 1 commit
79   (merged to 'next' on 2013-11-01 at 531bd79)
80  + subtree: add makefile target for html docs
82  We did not generate HTML version of documentation to "git subtree"
83  in contrib/.
86 * jk/wrap-perl-used-in-tests (2013-10-29) 2 commits
87   (merged to 'next' on 2013-11-01 at 73444c5)
88  + t: use perl instead of "$PERL_PATH" where applicable
89  + t: provide a perl() function which uses $PERL_PATH
91  Perl portability fix.
94 * jn/test-prereq-perl-doc (2013-10-28) 1 commit
95   (merged to 'next' on 2013-11-01 at 4d4a8b4)
96  + t/README: tests can use perl even with NO_PERL
98  The interaction between use of Perl in our test suite and NO_PERL
99  has been clarified a bit.
102 * sc/doc-howto-dumb-http (2013-10-28) 1 commit
103   (merged to 'next' on 2013-11-01 at a734b6e)
104  + doc/howto: warn about (dumb)http server document being too old
106  An ancient How-To on serving Git repositories on an HTTP server
107  lacked a warning that it has been mostly superseded with more
108  modern way.
111 * vd/doc-unpack-objects (2013-11-01) 2 commits
112   (merged to 'next' on 2013-11-01 at 443d0f4)
113  + Documentation: "pack-file" is not literal in unpack-objects
114  + Documentation: restore a space in unpack-objects usage
116  The synopsis section of "git unpack-objects" documentation has been
117  clarified a bit.
119 --------------------------------------------------
120 [New Topics]
122 * cc/remote-remove-redundant-postfixcmp (2013-11-06) 2 commits
123   (merged to 'next' on 2013-11-06 at 7b45219)
124  + Rename suffixcmp() to has_suffix() and invert its result
125   (merged to 'next' on 2013-11-04 at 6408502)
126  + builtin/remote: remove postfixcmp() and use suffixcmp() instead
128  Minor code clean-up.
130  Can wait in 'next'.
133 * tb/clone-ssh-with-colon-for-port (2013-11-04) 1 commit
134  . git clone: is an URL local or ssh
136  Still being reworked.
139 * cn/thin-push-capability (2013-11-06) 2 commits
140  - send-pack: only send a thin pack if the server supports it
141  - receive-pack: advertise thin-pack
143  Peff had a good suggestion to control this by expressing what the
144  receiving end wants in a more direct way, namely to advertise a
145  'no-thin' trait in the capability list.
148 * nd/wt-status-align-i18n (2013-11-06) 1 commit
149  - wt-status: take the alignment burden off translators
151  An attempt to automatically align the names in the "git status"
152  output, taking the display width of (translated) section labels
153  into account.
156 * nv/commit-gpgsign-config (2013-11-06) 1 commit
157  - Add the commit.gpgsign option to sign all commits
159  Introduce commit.gpgsign configuration variable to force every
160  commit to be GPG signed.
162  Needs tests, perhaps?
165 * sb/sha1-loose-object-info-check-existence (2013-11-06) 1 commit
166   (merged to 'next' on 2013-11-06 at 1ea5b18)
167  + sha1_loose_object_info(): do not return success on missing object
169  "git cat-file --batch-check=ok" did not check the existence of the
170  named object.
172  Will merge to 'next', but I think this can wait in 'next' during
173  the feature freeze.
175 * gj/push-more-verbose-advice (2013-11-06) 2 commits
176  - push: switch default from "matching" to "simple"
177  - push: Enhance unspecified push default warning
179  Explain 'simple' and 'matching' in "git push" advice message; the
180  topmost patch is a rebase of jc/push-2.0-default-to-simple on top
181  of it.
183 --------------------------------------------------
184 [Stalled]
186 * np/pack-v4 (2013-09-18) 90 commits
187  . packv4-parse.c: add tree offset caching
188  . t1050: replace one instance of show-index with verify-pack
189  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
190  . unpack-objects: decode v4 trees
191  . unpack-objects: allow to save processed bytes to a buffer
192  - ...
194  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
195  primarily for wider distribution of the preview edition.
197  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
198  this topic conflicts with.
201 * mf/graph-show-root (2013-10-25) 1 commit
202  . graph.c: mark root commit differently
204  In a repository with multiple-roots, "log --graph", especially with
205  "--oneline", does not give the reader enough visual cue to see
206  where one line of history ended and a separate history began.
208  This is the version that marks the roots 'x' when they would have
209  been marked as '*'; Keshav Kini suggested an alternative of giving
210  an extra blank line after every root, which I tend to think is a
211  better approach to the problem.
214 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
215  - perf-lib: add test_perf_cleanup target
216  - perf-lib: split starting the test from the execution
218  Add test_perf_cleanup shell function to the perf suite, that allows
219  the script writers to define a test with a clean-up action.
221  Holding until needed.
224 * yt/shortened-rename (2013-10-18) 2 commits
225  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
226  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
228  Attempts to give more weight on the fact that a filepair represents
229  a rename than showing substring of the actual path when diffstat
230  lines are not wide enough.
232  I am not sure if that is solving a right problem, though.
235 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
236  - git-send-email: Cache generated message-ids, use them when prompting
237  - git-send-email: add optional 'choices' parameter to the ask sub
240 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
241  - ### DONTMERGE: needs better explanation on what config they need
242  - pack-refs.c: Add missing call to git_config()
243  - show-ref.c: Add missing call to git_config()
245  The changes themselves are probably good, but it is unclear what
246  basic setting needs to be read for which exact operation.
248  Waiting for clarification.
249  $gmane/228294
252 * jc/format-patch (2013-04-22) 2 commits
253  - format-patch: --inline-single
254  - format-patch: rename "no_inline" field
256  A new option to send a single patch to the standard output to be
257  appended at the bottom of a message.  I personally have no need for
258  this, but it was easy enough to cobble together.  Tests, docs and
259  stripping out more MIMEy stuff are left as exercises to interested
260  parties.
263 * jk/gitweb-utf8 (2013-04-08) 4 commits
264  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
265  - gitweb: Don't append ';js=(0|1)' to external links
266  - gitweb: Make feed title valid utf8
267  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
269  Various fixes to gitweb.
271  Drew Northup volunteered to take a look into this.
272  $gmane/226216
275 * jc/show-branch (2013-06-07) 5 commits
276  - show-branch: use commit slab to represent bitflags of arbitrary width
277  - show-branch.c: remove "all_mask"
278  - show-branch.c: abstract out "flags" operation
279  - show-branch.c: lift all_mask/all_revs to a global static
280  - show-branch.c: update comment style
282  Waiting for the final step to lift the hard-limit before sending it out.
284 --------------------------------------------------
285 [Cooking]
287 * rr/for-each-ref-decoration (2013-10-31) 4 commits
288  - fixup! for-each-ref: introduce %(upstream:track[short])
289  - for-each-ref: introduce %(upstream:track[short])
290  - for-each-ref: introduce %(HEAD) asterisk marker
291  - for-each-ref: introduce %C(...) for color
294 * jk/two-way-merge-corner-case-fix (2013-11-04) 3 commits
295   (merged to 'next' on 2013-11-04 at 79f4fb0)
296  + t1005: add test for "read-tree --reset -u A B"
297  + t1005: reindent
298  + unpack-trees: fix "read-tree -u --reset A B" with conflicted index
300  Fix a rather longstanding corner-case bug in twoway "reset to
301  there" merge, which is most often seen in "git am --abort".
303  Will cook in 'next'.
306 * jc/ref-excludes (2013-11-01) 5 commits
307   (merged to 'next' on 2013-11-04 at fac1ed0)
308  + rev-parse: introduce --exclude=<glob> to tame wildcards
309  + rev-list --exclude: export add/clear-ref-exclusion and ref-excluded API
310  + rev-list --exclude: tests
311  + document --exclude option
312  + revision: introduce --exclude=<glob> to tame wildcards
314  People often wished a way to tell "git log --branches" (and "git
315  log --remotes --not --branches") to exclude some local branches
316  from the expansion of "--branches" (similarly for "--tags", "--all"
317  and "--glob=<pattern>").  Now they have one.
319  Can wait in 'next'.
322 * jk/replace-perl-in-built-scripts (2013-10-29) 1 commit
323   (merged to 'next' on 2013-11-01 at 2384e29)
324  + use @@PERL@@ in built scripts
326  Can wait in 'next'.
329 * jt/commit-fixes-footer (2013-10-30) 1 commit
330  - commit: Add -f, --fixes <commit> option to add Fixes: line
332  There is an ongoing discussion around this topic; in general I am
333  fairly negative on a new feature that is too narrow and prefer a
334  more generic solution that can be tailored for specific needs, as
335  many people stated in the thread.
338 * fc/transport-helper-fixes (2013-11-06) 12 commits
339  - transport-helper: demote lack of "force" option to a warning
340  - transport-helper: add support to delete branches
341  - fast-export: add support to delete refs
342  - fast-import: add support to delete refs
343  - transport-helper: add support for old:new refspec
344  - fixup! fast-export: add new --refspec option
345  - fast-export: add new --refspec option
346  - fast-export: improve argument parsing
347  - transport-helper: check for 'forced update' message
348  - transport-helper: add 'force' to 'export' helpers
349  - transport-helper: don't update refs in dry-run
350  - transport-helper: mismerge fix
352  Updates transport-helper, fast-import and fast-export to allow the
353  ref mapping and ref deletion in a way similar to the natively
354  supported transports.
356  Expecting a reroll to fix use of vla.
359 * jh/loose-object-dirs-creation-race (2013-10-28) 1 commit
360   (merged to 'next' on 2013-11-01 at 3169b0f)
361  + sha1_file.c:create_tmpfile(): Fix race when creating loose object dirs
363  Will cook in 'next'.
366 * nd/liteal-pathspecs (2013-10-28) 1 commit
367   (merged to 'next' on 2013-11-01 at 1a91775)
368  + pathspec: stop --*-pathspecs impact on internal parse_pathspec() uses
370  Will cook in 'next'.
373 * th/reflog-annotated-tag (2013-10-28) 1 commit
374   (merged to 'next' on 2013-11-01 at 8b154cc)
375  + reflog: handle lightweight and annotated tags equally
377  "git log -g $annotated_tag", when there is no reflog history, should
378  have produced a single output entry (i.e. the ref creation event),
379  but instead showed the history leading to the tag.
381  Broken at the design level.  Any reflog entry that points at a non
382  commit needs to be handled with new code that does not exist yet,
383  and lifting the "this code handles only commits" without adding
384  such code does not solve anything.
387 * tr/merge-recursive-index-only (2013-10-28) 3 commits
388  - merge-recursive: -Xindex-only to leave worktree unchanged
389  - merge-recursive: internal flag to avoid touching the worktree
390  - merge-recursive: remove dead conditional in update_stages()
392  Will hold until using script appears.
395 * bc/http-100-continue (2013-10-31) 3 commits
396   (merged to 'next' on 2013-11-01 at e12ae23)
397  + remote-curl: fix large pushes with GSSAPI
398  + remote-curl: pass curl slot_results back through run_slot
399  + http: return curl's AUTHAVAIL via slot_results
401  Issue "100 Continue" responses to help use of GSS-Negotiate
402  authentication scheme over HTTP transport when needed.
404  Will cook in 'next'.
407 * jc/merge-base-reflog (2013-10-29) 2 commits
408   (merged to 'next' on 2013-11-01 at 6114764)
409  + merge-base: teach "--fork-point" mode
410  + merge-base: use OPT_CMDMODE and clarify the command line parsing
412  Code the logic in "pull --rebase" that figures out a fork point
413  from reflog entries in C.
415  Will cook in 'next'.
418 * jk/pack-bitmap (2013-10-30) 20 commits
419  - count-objects: recognize .bitmap in garbage-checking
420  - pack-bitmap: implement optional name_hash cache
421  - t: add basic bitmap functionality tests
422  - repack: consider bitmaps when performing repacks
423  - repack: handle optional files created by pack-objects
424  - repack: turn exts array into array-of-struct
425  - repack: stop using magic number for ARRAY_SIZE(exts)
426  - pack-objects: implement bitmap writing
427  - rev-list: add bitmap mode to speed up object lists
428  - pack-objects: use bitmaps when packing objects
429  - pack-bitmap: add support for bitmap indexes
430  - documentation: add documentation for the bitmap format
431  - ewah: compressed bitmap implementation
432  - compat: add endianness helpers
433  - sha1_file: export `git_open_noatime`
434  - revision: allow setting custom limiter function
435  - pack-objects: factor out name_hash
436  - pack-objects: refactor the packing list
437  - revindex: export new APIs
438  - sha1write: make buffer const-correct
440  Borrows the bitmap index into packfiles from JGit to speed up
441  enumeration of objects involved in a commit range without having to
442  fully traverse the history.
444  Still under discussion.
447 * jk/robustify-parse-commit (2013-10-24) 6 commits
448   (merged to 'next' on 2013-11-01 at 2bfbaab)
449  + checkout: do not die when leaving broken detached HEAD
450  + use parse_commit_or_die instead of custom message
451  + use parse_commit_or_die instead of segfaulting
452  + assume parse_commit checks for NULL commit
453  + assume parse_commit checks commit->object.parsed
454  + log_tree_diff: die when we fail to parse a commit
456  Will cook in 'next'.
459 * mh/fetch-tags-in-addition-to-normal-refs (2013-10-30) 23 commits
460   (merged to 'next' on 2013-11-06 at 6932893)
461  + fetch: improve the error messages emitted for conflicting refspecs
462  + handle_duplicate(): mark error message for translation
463  + ref_remote_duplicates(): extract a function handle_duplicate()
464  + ref_remove_duplicates(): simplify loop logic
465  + t5536: new test of refspec conflicts when fetching
466  + ref_remove_duplicates(): avoid redundant bisection
467  + git-fetch.txt: improve description of tag auto-following
468  + fetch-options.txt: simplify ifdef/ifndef/endif usage
469  + fetch, remote: properly convey --no-prune options to subprocesses
470  + builtin/remote.c:update(): use struct argv_array
471  + builtin/remote.c: reorder function definitions
472  + query_refspecs(): move some constants out of the loop
473  + fetch --prune: prune only based on explicit refspecs
474  + fetch --tags: fetch tags *in addition to* other stuff
475  + fetch: only opportunistically update references based on command line
476  + get_expanded_map(): avoid memory leak
477  + get_expanded_map(): add docstring
478  + builtin/fetch.c: reorder function definitions
479  + get_ref_map(): rename local variables
480  + api-remote.txt: correct section "struct refspec"
481  + t5510: check that "git fetch --prune --tags" does not prune branches
482  + t5510: prepare test refs more straightforwardly
483  + t5510: use the correct tag name in test
485  The "-tags" option to "git fetch" used to be literally a synonym to
486  a "refs/tags/*:refs/tags/*" refspec, which meant that (1) as an
487  explicit refspec given from the command line, it silenced the lazy
488  "git fetch" default that is configured, and (2) also as an explicit
489  refspec given from the command line, it interacted with "--prune"
490  to remove any tag that the remote we are fetching from does not
491  have.
493  This demotes it to an option; with it, we fetch all tags in
494  addition to what would be fetched without the option, and it does
495  not interact with the decision "--prune" makes to see what
496  remote-tracking refs the local has are missing the remote
497  counterpart.
499  Will cook in 'next'.
502 * nv/parseopt-opt-arg (2013-10-31) 2 commits
503   (merged to 'next' on 2013-11-01 at cd2afd9)
504  + rev-parse --parseopt: add the --stuck-long mode
505  + Use the word 'stuck' instead of 'sticked'
507  Enhance "rev-parse --parseopt" mode to help parsing options with
508  an optional parameter.
510  Will cook in 'next'.
513 * ak/submodule-foreach-quoting (2013-09-27) 1 commit
514   (merged to 'next' on 2013-10-14 at d77c5f1)
515  + submodule foreach: skip eval for more than one argument
517  A behavior change, but a worthwhile one: "git submodule foreach"
518  was treating its arguments as part of a single command to be
519  concatenated and passed to a shell, making writing buggy
520  scripts too easy.
522  This patch preserves the old "just pass it to the shell" behavior
523  when a single argument is passed to 'git submodule foreach' and
524  moves to a new "skip the shell and use the arguments passed
525  unmolested" behavior when more than one argument is passed.
527  The old behavior (always concatenating and passing to the shell)
528  was similar to the 'ssh' command, while the new behavior (switching
529  on the number of arguments) is what 'xterm -e' does.
531  May need more thought to make sure this change is advertised well
532  so that scripts that used multiple arguments but added their own
533  extra layer of quoting are not broken.
535  Will cook in 'next'.
538 * kb/fast-hashmap (2013-10-22) 12 commits
539  - remove old hash.[ch] implementation
540  - read-cache.c: fix memory leaks caused by removed cache entries
541  - name-hash.c: remove cache entries instead of marking them CE_UNHASHED
542  - name-hash.c: use new hash map implementation for cache entries
543  - name-hash.c: remove unreferenced directory entries
544  - name-hash.c: use new hash map implementation for directories
545  - diffcore-rename.c: use new hash map implementation
546  - diffcore-rename.c: simplify finding exact renames
547  - diffcore-rename.c: move code around to prepare for the next patch
548  - buitin/describe.c: use new hash map implementation
549  - add a hashtable implementation that supports O(1) removal
550  - submodule: don't access the .gitmodules cache entry after removing it
552  Improvements to our hash table to get it to meet the needs of the
553  msysgit fscache project, with some nice performance improvements.
555  The preparatory clean-up to submodule from Jens is at the bottom. I
556  also squashed in a fix-up by Karsten found at $gmane/236468 (please
557  double-check the result).
559  More valgrind breakage reported ($gmane/236869).
562 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
563   (merged to 'next' on 2013-10-28 at d8cdf30)
564  + git add: -u/-A now affects the entire working tree
566  Will cook in 'next' until Git 2.0.
569 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
570   (merged to 'next' on 2013-10-28 at f1bec96)
571  + core.statinfo: remove as promised in Git 2.0
573  Will cook in 'next' until Git 2.0.
576 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
577   (merged to 'next' on 2013-10-28 at 3153a9e)
578  + push: switch default from "matching" to "simple"
580  Will cook in 'next' until Git 2.0.
583 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
584   (merged to 'next' on 2013-10-28 at 5fd76ec)
585  + git add <pathspec>... defaults to "-A"
587  Updated endgame for "git add <pathspec>" that defaults to "--all"
588  aka "--no-ignore-removal".
590  Will cook in 'next' until Git 2.0.
593 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
594   (merged to 'next' on 2013-11-01 at 5fc26e4)
595  + diff: remove "diff-files -q" in a version of Git in a distant future
597  Will cook in 'next' until a distant future.