What's cooking (2014/01 #02)
[alt-git.git] / whats-cooking.txt
blob67e4c4146954ee144d5764a15c5a92758899de03
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Jan 2014, #02; Fri, 10)
4 X-master-at: a25014bc4cef56712f7d005d7b76070d0270f454
5 X-next-at: 7559984f930784464fd0cfdd0a69e17c779ae117
7 What's cooking in git.git (Jan 2014, #02; Fri, 10)
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 You can find the changes described here in the integration branches
15 of the repositories listed at
17     http://git-blame.blogspot.com/p/git-public-repositories.html
19 --------------------------------------------------
20 [Graduated to "master"]
22 * ap/path-max (2013-12-16) 1 commit
23   (merged to 'next' on 2014-01-03 at affc620)
24  + Prevent buffer overflows when path is too long
27 * bc/log-decoration (2013-12-20) 1 commit
28   (merged to 'next' on 2014-01-03 at ff8873f)
29  + log: properly handle decorations with chained tags
31  "git log --decorate" did not handle a tag pointed by another tag
32  nicely.
35 * bm/merge-base-octopus-dedup (2013-12-30) 2 commits
36   (merged to 'next' on 2014-01-06 at 355d62b)
37  + merge-base --octopus: reduce the result from get_octopus_merge_bases()
38  + merge-base: separate "--independent" codepath into its own helper
40  "git merge-base --octopus" used to leave cleaning up suboptimal
41  result to the caller, but now it does the clean-up itself.
44 * bs/mirbsd (2014-01-02) 1 commit
45   (merged to 'next' on 2014-01-06 at d5cecbb)
46  + Add MirBSD support to the build system.
49 * cc/replace-object-info (2013-12-30) 11 commits
50   (merged to 'next' on 2014-01-03 at 4473803)
51  + replace info: rename 'full' to 'long' and clarify in-code symbols
52   (merged to 'next' on 2013-12-17 at aeb9e18)
53  + Documentation/git-replace: describe --format option
54  + builtin/replace: unset read_replace_refs
55  + t6050: add tests for listing with --format
56  + builtin/replace: teach listing using short, medium or full formats
57  + sha1_file: perform object replacement in sha1_object_info_extended()
58  + t6050: show that git cat-file --batch fails with replace objects
59  + sha1_object_info_extended(): add an "unsigned flags" parameter
60  + sha1_file.c: add lookup_replace_object_extended() to pass flags
61  + replace_object: don't check read_replace_refs twice
62  + rename READ_SHA1_FILE_REPLACE flag to LOOKUP_REPLACE_OBJECT
64  read_sha1_file() that is the workhorse to read the contents given
65  an object name honoured object replacements, but there is no
66  corresponding mechanism to sha1_object_info() that is used to
67  obtain the metainfo (e.g. type & size) about the object, leading
68  callers to weird inconsistencies.
71 * jh/rlimit-nofile-fallback (2013-12-18) 1 commit
72   (merged to 'next' on 2014-01-03 at b56ae0c)
73  + get_max_fd_limit(): fall back to OPEN_MAX upon getrlimit/sysconf failure
75  When we figure out how many file descriptors to allocate for
76  keeping packfiles open, a system with non-working getrlimit() could
77  cause us to die(), but because we make this call only to get a
78  rough estimate of how many is available and we do not even attempt
79  to use up all file descriptors available ourselves, it is nicer to
80  fall back to a reasonable low value rather than dying.
83 * jk/credential-plug-leak (2014-01-02) 1 commit
84   (merged to 'next' on 2014-01-06 at 88e29a3)
85  + Revert "prompt: clean up strbuf usage"
87  An earlier "clean-up" introduced an unnecessary memory leak.
90 * jk/http-auth-tests-robustify (2014-01-02) 1 commit
91   (merged to 'next' on 2014-01-06 at 7e87bba)
92  + use distinct username/password for http auth tests
94  Using the same username and password during the tests would not
95  catch a potential breakage of sending one when we should be sending
96  the other.
99 * jk/oi-delta-base (2013-12-26) 2 commits
100   (merged to 'next' on 2014-01-06 at 8cf3ed2)
101  + cat-file: provide %(deltabase) batch format
102  + sha1_object_info_extended: provide delta base sha1s
104  Teach "cat-file --batch" to show delta-base object name for a
105  packed object that is represented as a delta.
108 * jk/sha1write-void (2013-12-26) 1 commit
109   (merged to 'next' on 2014-01-06 at d8cd8ff)
110  + do not pretend sha1write returns errors
112  Code clean-up.
115 * jk/test-framework-updates (2014-01-02) 3 commits
116   (merged to 'next' on 2014-01-06 at f81f373)
117  + t0000: drop "known breakage" test
118  + t0000: simplify HARNESS_ACTIVE hack
119  + t0000: set TEST_OUTPUT_DIRECTORY for sub-tests
121  The basic test used to leave unnecessary trash directories in the
122  t/ directory.
125 * js/lift-parent-count-limit (2013-12-27) 1 commit
126   (merged to 'next' on 2014-01-06 at b74133c)
127  + Remove the line length limit for graft files
129  There is no reason to have a hardcoded upper limit of the number of
130  parents for an octopus merge, created via the graft mechanism.
133 * km/gc-eperm (2014-01-02) 1 commit
134   (merged to 'next' on 2014-01-06 at fe107de)
135  + gc: notice gc processes run by other users
137  A "gc" process running as a different user should be able to stop a
138  new "gc" process from starting.
141 * mh/path-max (2013-12-18) 2 commits
142   (merged to 'next' on 2014-01-03 at 5227c9b)
143  + builtin/prune.c: use strbuf to avoid having to worry about PATH_MAX
144  + prune-packed: use strbuf to avoid having to worry about PATH_MAX
146  A few places where we relied on a fixed length buffer to hold
147  pathnames in these two programs have been converted to use strbuf.
150 * nd/add-empty-fix (2013-12-26) 1 commit
151   (merged to 'next' on 2014-01-06 at 88a78c9)
152  + add: don't complain when adding empty project root
154  "git add -A" (no other arguments) in a totally empty working tree
155  used to emit an error.
158 * nd/commit-tree-constness (2013-12-26) 1 commit
159   (merged to 'next' on 2014-01-06 at a177c9f)
160  + commit.c: make "tree" a const pointer in commit_tree*()
162  Code clean-up.
165 * nd/daemon-informative-errors-typofix (2013-12-20) 1 commit
166   (merged to 'next' on 2014-01-03 at 1b87648)
167  + daemon: be strict at parsing parameters --[no-]informative-errors
170 * nd/negative-pathspec (2013-12-06) 3 commits
171   (merged to 'next' on 2013-12-12 at 9f340c8)
172  + pathspec.c: support adding prefix magic to a pathspec with mnemonic magic
173  + Support pathspec magic :(exclude) and its short form :!
174  + glossary-content.txt: rephrase magic signature part
176  Introduce "negative pathspec" magic, to allow "git log -- . ':!dir'" to
177  tell us "I am interested in everything but 'dir' directory".
180 * rr/completion-branch-config (2014-01-06) 4 commits
181   (merged to 'next' on 2014-01-06 at ed9eecc)
182  + completion: fix remote.pushdefault
183  + completion: fix branch.autosetup(merge|rebase)
184  + completion: introduce __gitcomp_nl_append ()
185  + zsh completion: find matching custom bash completion
187  Two-level configuration variable names in "branch.*" and "remote.*"
188  hierarchies whose variables are predominantly three-level where not
189  completed by hitting a <TAB> in bash and zsh completions.
192 * rt/bfg-ad-in-filter-branch-doc (2013-12-18) 1 commit
193   (merged to 'next' on 2014-01-03 at 2a45e3b)
194  + docs: add filter-branch notes on The BFG
197 * sb/diff-orderfile-config (2013-12-18) 3 commits
198   (merged to 'next' on 2014-01-03 at 744eba7)
199  + diff: add diff.orderfile configuration variable
200  + diff: let "git diff -O" read orderfile from any file and fail properly
201  + t4056: add new tests for "git diff -O"
203  Allow "git diff -O<file>" to be configured with a new configuration
204  variable.
207 * ss/builtin-cleanup (2014-01-06) 3 commits
208   (merged to 'next' on 2014-01-06 at ffcac50)
209  + builtin/help.c: speed up is_git_command() by checking for builtin commands first
210  + builtin/help.c: call load_command_list() only when it is needed
211  + git.c: consistently use the term "builtin" instead of "internal command"
213  "git help $cmd" unnecessarily enumerated potential command names
214  from the filesystem, even when $cmd is known to be a built-in.
216  Ideas for further optimization, primarily by killing the use of
217  is_in_cmdlist(), were suggested in the discussion, but they can
218  come as follow-ups on top of this series.
221 * ta/format-user-manual-as-an-article (2014-01-06) 1 commit
222   (merged to 'next' on 2014-01-06 at 37858f6)
223  + user-manual: improve html and pdf formatting
225  Update the way the user-manual is formatted via AsciiDoc to save
226  trees.
229 * tm/fetch-prune (2014-01-03) 2 commits
230   (merged to 'next' on 2014-01-03 at a58c6b4)
231  + fetch --prune: Run prune before fetching
232  + fetch --prune: always print header url
234  Fetching 'frotz' branch with "git fetch", while having
235  'frotz/nitfol' remote-tracking branch from an earlier fetch, would
236  error out, primarily because the command has not been told to
237  remove anything on our side. In such a case, "git fetch --prune"
238  can be used to remove 'frotz/nitfol' to make room to fetch and
239  store 'frotz' remote-tracking branch.
242 * vm/octopus-merge-bases-simplify (2014-01-03) 1 commit
243   (merged to 'next' on 2014-01-06 at 35df672)
244  + get_octopus_merge_bases(): cleanup redundant variable
246 --------------------------------------------------
247 [New Topics]
249 * br/sha1-name-40-hex-no-disambiguation (2014-01-07) 1 commit
250   (merged to 'next' on 2014-01-10 at 2a0973b)
251  + sha1_name: don't resolve refs when core.warnambiguousrefs is false
252  (this branch is used by jk/warn-on-object-refname-ambiguity.)
254  When parsing a 40-hex string into the object name, the string is
255  checked to see if it can be interpreted as a ref so that a warning
256  can be given for ambiguity. The code kicked in even when the
257  core.warnambiguousrefs is set to false to squelch this warning, in
258  which case the cycles spent to look at the ref namespace were an
259  expensive no-op, as the result was discarded without being used.
261  Will merge to 'master'.
264 * jl/submodule-mv-checkout-caveat (2014-01-07) 2 commits
265   (merged to 'next' on 2014-01-10 at 8d3953c)
266  + rm: better document side effects when removing a submodule
267  + mv: better document side effects when moving a submodule
269  With a submodule that was initialized in an old fashioned way
270  without gitlinks, switching branches in the superproject between
271  the one with and without the submodule may leave the submodule
272  working tree with its embedded repository behind, as there may be
273  unexpendable state there. Document and warn users about this.
275  Will merge to 'master'.
278 * jn/pager-lv-default-env (2014-01-07) 1 commit
279   (merged to 'next' on 2014-01-10 at 22d4755)
280  + pager: set LV=-c alongside LESS=FRSX
282  Just like we give a reasonable default for "less" via the LESS
283  environment variable, specify a reasonable default for "lv" via the
284  "LV" environment variable when spawning the pager.
286  Will merge to 'master'.
289 * ow/stash-with-ifs (2014-01-07) 1 commit
290   (merged to 'next' on 2014-01-10 at 4fc9bdb)
291  + stash: handle specifying stashes with $IFS
293  The implementation of 'git stash $cmd "stash@{...}"' did not quote
294  the stash argument properly and left it split at IFS whitespace.
296  Will merge to 'master'.
299 * rr/completion-format-coverletter (2014-01-07) 1 commit
300   (merged to 'next' on 2014-01-10 at d2dbc9d)
301  + completion: complete format.coverLetter
303  The bash/zsh completion code did not know about format.coverLetter
304  among many format.* configuration variables.
306  Will merge to 'master'.
309 * wk/submodule-on-branch (2014-01-07) 2 commits
310  - DONTMERGE: RFC will be rerolled with tests ($gmane/239967)
311  - submodule: respect requested branch on all clones
313  Waiting for the discussion to settle.
316 * jk/branch-at-publish (2014-01-09) 5 commits
317  - implement @{publish} shorthand
318  - branch_get: provide per-branch pushremote pointers
319  - branch_get: return early on error
320  - interpret_branch_name: factor out upstream handling
321  - sha1_name: refactor upstream_mark
323  Give an easier access to the tracking branches from "other" side in
324  a triangular workflow by introducing B@{publish} that works in a
325  similar way to how B@{upstream} does.
327  Expecting a reroll.
330 * jk/pull-rebase-using-fork-point (2014-01-09) 1 commit
331   (merged to 'next' on 2014-01-10 at e86e59d)
332  + rebase: fix fork-point with zero arguments
334  Will merge to 'master'.
337 * jk/warn-on-object-refname-ambiguity (2014-01-09) 6 commits
338  - get_sha1: drop object/refname ambiguity flag
339  - get_sha1: speed up ambiguous 40-hex test
340  - FIXUP: teach DO_FOR_EACH_NO_RECURSE to prime_ref_dir()
341  - refs: teach for_each_ref a flag to avoid recursion
342  - cat-file: fix a minor memory leak in batch_objects
343  - cat-file: refactor error handling of batch_objects
344  (this branch uses br/sha1-name-40-hex-no-disambiguation.)
346  Expecting a reroll.
349 * mh/shorten-unambigous-ref (2014-01-09) 3 commits
350  - shorten_unambiguous_ref(): tighten up pointer arithmetic
351  - gen_scanf_fmt(): delete function and use snprintf() instead
352  - shorten_unambiguous_ref(): introduce a new local variable
354  Will merge to 'next'.
357 * mm/mv-file-to-no-such-dir-with-slash (2014-01-10) 1 commit
358  - mv: let 'git mv file no-such-dir/' error out on Windows, too
360  Will merge to 'next'.
362 --------------------------------------------------
363 [Stalled]
365 * jc/graph-post-root-gap (2013-12-30) 3 commits
366  - WIP: document what we want at the end
367  - graph: remove unused code a bit
368  - graph: stuff the current commit into graph->columns[]
370  This was primarily a RFH ($gmane/239580).
373 * fc/transport-helper-fixes (2013-12-09) 6 commits
374  - remote-bzr: support the new 'force' option
375  - test-hg.sh: tests are now expected to pass
376  - transport-helper: check for 'forced update' message
377  - transport-helper: add 'force' to 'export' helpers
378  - transport-helper: don't update refs in dry-run
379  - transport-helper: mismerge fix
381  Updates transport-helper, fast-import and fast-export to allow the
382  ref mapping and ref deletion in a way similar to the natively
383  supported transports.
385  Reported to break t5541.
386  Will hold.
389 * fc/completion (2013-12-09) 1 commit
390  - completion: fix completion of certain aliases
392  SZEDER Gábor noticed that this breaks "git -c var=val alias" and
393  also suggested a better description of the change.
395  Will hold.
398 * mo/subtree-split-updates (2013-12-10) 3 commits
399  - subtree: add --edit option
400  - subtree: allow --squash and --message with push
401  - subtree: support split --rejoin --squash
403  Comments?
406 * hv/submodule-ignore-fix (2013-12-06) 4 commits
407  - disable complete ignorance of submodules for index <-> HEAD diff
408  - always show committed submodules in summary after commit
409  - teach add -f option for ignored submodules
410  - fix 'git add' to skip submodules configured as ignored
412  Teach "git add" to be consistent with "git status" when changes to
413  submodules are set to be ignored, to avoid surprises after checking
414  with "git status" to see there isn't any change to be further added
415  and then see that "git add ." adds changes to them.
417  I think a reroll is coming, so this may need to be replaced, but I
418  needed some practice with heavy conflict resolution.  It conflicts
419  with two changes to "git add" that have been scheduled for Git 2.0
420  quite badly, and I think I got the resolution right this time.
423 * kb/fast-hashmap (2014-01-03) 19 commits
424  - hashmap.h: make sure map entries are tightly packed
425   (merged to 'next' on 2014-01-03 at dc85001)
426  + name-hash: retire unused index_name_exists()
427  + hashmap.h: Use 'unsigned int' for hash-codes everywhere
428   (merged to 'next' on 2013-12-16 at bff99b1)
429  + Drop unnecessary #includes from test-hashmap
430  + Add test-hashmap to .gitignore
431   (merged to 'next' on 2013-12-06 at f90be3d)
432  + read-cache.c: fix memory leaks caused by removed cache entries
433  + builtin/update-index.c: cleanup update_one
434  + fix 'git update-index --verbose --again' output
435  + remove old hash.[ch] implementation
436  + name-hash.c: remove cache entries instead of marking them CE_UNHASHED
437  + name-hash.c: use new hash map implementation for cache entries
438  + name-hash.c: remove unreferenced directory entries
439  + name-hash.c: use new hash map implementation for directories
440  + diffcore-rename.c: use new hash map implementation
441  + diffcore-rename.c: simplify finding exact renames
442  + diffcore-rename.c: move code around to prepare for the next patch
443  + buitin/describe.c: use new hash map implementation
444  + add a hashtable implementation that supports O(1) removal
445  + submodule: don't access the .gitmodules cache entry after removing it
447  Improvements to our hash table to get it to meet the needs of the
448  msysgit fscache project, with some nice performance improvements.
450  The tip one does not seem to have reached concensus (yet).
453 * jc/create-directories-microopt (2013-11-11) 1 commit
454  - checkout: most of the time we have good leading directories
456  Of unknown value until tested on non-Linux platforms (especially
457  Windows).
459  Will hold.
462 * jt/commit-fixes-footer (2013-10-30) 1 commit
463  - commit: Add -f, --fixes <commit> option to add Fixes: line
465  There is an ongoing discussion around this topic; in general I am
466  fairly negative on a new feature that is too narrow and prefer a
467  more generic solution that can be tailored for specific needs, as
468  many people stated in the thread.
470  It appears that the discussion stalled.
473 * np/pack-v4 (2013-09-18) 90 commits
474  . packv4-parse.c: add tree offset caching
475  . t1050: replace one instance of show-index with verify-pack
476  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
477  . unpack-objects: decode v4 trees
478  . unpack-objects: allow to save processed bytes to a buffer
479  - ...
481  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
482  primarily for wider distribution of the preview edition.
484  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
485  this topic conflicts with.
488 * mf/graph-show-root (2013-10-25) 1 commit
489  . graph.c: mark root commit differently
491  In a repository with multiple-roots, "log --graph", especially with
492  "--oneline", does not give the reader enough visual cue to see
493  where one line of history ended and a separate history began.
495  This is the version that marks the roots 'x' when they would have
496  been marked as '*'; Keshav Kini suggested an alternative of giving
497  an extra blank line after every root, which I tend to think is a
498  better approach to the problem.
501 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
502  - perf-lib: add test_perf_cleanup target
503  - perf-lib: split starting the test from the execution
505  Add test_perf_cleanup shell function to the perf suite, that allows
506  the script writers to define a test with a clean-up action.
508  Holding until needed.
511 * yt/shortened-rename (2013-10-18) 2 commits
512  - SQUASH??? style fixes and s/omit/shorten/ where appropriate
513  - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
515  Attempts to give more weight on the fact that a filepair represents
516  a rename than showing substring of the actual path when diffstat
517  lines are not wide enough.
519  I am not sure if that is solving a right problem, though.
522 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
523  - git-send-email: Cache generated message-ids, use them when prompting
524  - git-send-email: add optional 'choices' parameter to the ask sub
527 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
528  - ### DONTMERGE: needs better explanation on what config they need
529  - pack-refs.c: Add missing call to git_config()
530  - show-ref.c: Add missing call to git_config()
532  The changes themselves are probably good, but it is unclear what
533  basic setting needs to be read for which exact operation.
535  Waiting for clarification.
536  $gmane/228294
539 * jc/format-patch (2013-04-22) 2 commits
540  - format-patch: --inline-single
541  - format-patch: rename "no_inline" field
543  A new option to send a single patch to the standard output to be
544  appended at the bottom of a message.  I personally have no need for
545  this, but it was easy enough to cobble together.  Tests, docs and
546  stripping out more MIMEy stuff are left as exercises to interested
547  parties.
550 * jk/gitweb-utf8 (2013-04-08) 4 commits
551  - gitweb: Fix broken blob action parameters on blob/commitdiff pages
552  - gitweb: Don't append ';js=(0|1)' to external links
553  - gitweb: Make feed title valid utf8
554  - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
556  Various fixes to gitweb.
558  Drew Northup volunteered to take a look into this.
559  $gmane/226216
562 * jc/show-branch (2013-06-07) 5 commits
563  - show-branch: use commit slab to represent bitflags of arbitrary width
564  - show-branch.c: remove "all_mask"
565  - show-branch.c: abstract out "flags" operation
566  - show-branch.c: lift all_mask/all_revs to a global static
567  - show-branch.c: update comment style
569  Waiting for the final step to lift the hard-limit before sending it out.
571 --------------------------------------------------
572 [Cooking]
574 * ap/remote-hg-skip-null-bookmarks (2014-01-02) 1 commit
575  - remote-hg: do not fail on invalid bookmarks
577  Reported to break tests ($gmane/240005)
578  Expecting a reroll.
581 * ss/safe-create-leading-dir-with-slash (2014-01-06) 1 commit
582  - safe_create_leading_directories(): on Windows, \ can separate path components
584  Expecting to be rolled into mh/safe-create-leading-directories
587 * fp/submodule-checkout-mode (2014-01-07) 1 commit
588   (merged to 'next' on 2014-01-10 at 647ba9b)
589  + git-submodule.sh: 'checkout' is a valid update mode
591  "submodule.*.update=checkout", when propagated from .gitmodules to
592  .git/config, turned into a "submodule.*.update=none", which did not
593  make much sense.
595  Will merge to 'master'.
598 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
599  - Teach checkout to recursively checkout submodules
600  - submodule: teach unpack_trees() to update submodules
601  - submodule: teach unpack_trees() to repopulate submodules
602  - submodule: teach unpack_trees() to remove submodule contents
603  - submodule: prepare for recursive checkout of submodules
605  Expecting a reroll.
608 * mh/safe-create-leading-directories (2014-01-06) 17 commits
609  - rename_tmp_log(): on SCLD_VANISHED, retry
610  - rename_tmp_log(): limit the number of remote_empty_directories() attempts
611  - rename_tmp_log(): handle a possible mkdir/rmdir race
612  - rename_ref(): extract function rename_tmp_log()
613  - remove_dir_recurse(): handle disappearing files and directories
614  - remove_dir_recurse(): tighten condition for removing unreadable dir
615  - lock_ref_sha1_basic(): if locking fails with ENOENT, retry
616  - lock_ref_sha1_basic(): on SCLD_VANISHED, retry
617  - safe_create_leading_directories(): add new error value SCLD_VANISHED
618  - cmd_init_db(): when creating directories, handle errors conservatively
619  - safe_create_leading_directories(): introduce enum for return values
620  - safe_create_leading_directories(): always restore slash at end of loop
621  - safe_create_leading_directories(): split on first of multiple slashes
622  - safe_create_leading_directories(): rename local variable
623  - safe_create_leading_directories(): add explicit "slash" pointer
624  - safe_create_leading_directories(): reduce scope of local variable
625  - safe_create_leading_directories(): fix format of "if" chaining
627  Code clean-up and protection against concurrent write access to the
628  ref namespace.
630  Asked Michael and Sebastian to work together to roll the latter's
631  "allow passing p\a\t\h to safe_create_leading_dir()" into this.
633  Expecting a reroll.
636 * jk/pack-bitmap (2013-12-30) 21 commits
637   (merged to 'next' on 2014-01-10 at bdbe0a4)
638  + pack-bitmap: implement optional name_hash cache
639  + t/perf: add tests for pack bitmaps
640  + t: add basic bitmap functionality tests
641  + count-objects: recognize .bitmap in garbage-checking
642  + repack: consider bitmaps when performing repacks
643  + repack: handle optional files created by pack-objects
644  + repack: turn exts array into array-of-struct
645  + repack: stop using magic number for ARRAY_SIZE(exts)
646  + pack-objects: implement bitmap writing
647  + rev-list: add bitmap mode to speed up object lists
648  + pack-objects: use bitmaps when packing objects
649  + pack-objects: split add_object_entry
650  + pack-bitmap: add support for bitmap indexes
651  + documentation: add documentation for the bitmap format
652  + ewah: compressed bitmap implementation
653  + compat: add endianness helpers
654  + sha1_file: export `git_open_noatime`
655  + revision: allow setting custom limiter function
656  + pack-objects: factor out name_hash
657  + pack-objects: refactor the packing list
658  + revindex: export new APIs
660  Borrows the bitmap index into packfiles from JGit to speed up
661  enumeration of objects involved in a commit range without having to
662  fully traverse the history.
664  Will cook in 'next'.
667 * nv/commit-gpgsign-config (2013-12-17) 3 commits
668   (merged to 'next' on 2014-01-03 at 9780cbb)
669  + test the commit.gpgsign config option
670  + commit-tree: add and document --no-gpg-sign
671  + Add the commit.gpgsign option to sign all commits
673  Introduce commit.gpgsign configuration variable to force every
674  commit to be GPG signed.  The variable cannot be overriden from the
675  command line of some of the commands that create commits except for
676  "git commit" and "git commit-tree", but I am not convinced that it
677  is a good idea to sprinkle support for --no-gpg-sign everywhere.
679  Will cook in 'next'.
682 * nd/shallow-clone (2014-01-09) 31 commits
683   (merged to 'next' on 2014-01-09 at 6608634)
684  + t5537: fix incorrect expectation in test case 10
685   (merged to 'next' on 2014-01-06 at 3dc7fab)
686  + shallow: remove unused code
687  + send-pack.c: mark a file-local function static
688   (merged to 'next' on 2014-01-03 at a776065)
689  + git-clone.txt: remove shallow clone limitations
690  + prune: clean .git/shallow after pruning objects
691  + clone: use git protocol for cloning shallow repo locally
692  + send-pack: support pushing from a shallow clone via http
693  + receive-pack: support pushing to a shallow clone via http
694  + smart-http: support shallow fetch/clone
695  + remote-curl: pass ref SHA-1 to fetch-pack as well
696  + send-pack: support pushing to a shallow clone
697  + receive-pack: allow pushes that update .git/shallow
698  + connected.c: add new variant that runs with --shallow-file
699  + add GIT_SHALLOW_FILE to propagate --shallow-file to subprocesses
700  + receive/send-pack: support pushing from a shallow clone
701  + receive-pack: reorder some code in unpack()
702  + fetch: add --update-shallow to accept refs that update .git/shallow
703  + upload-pack: make sure deepening preserves shallow roots
704  + fetch: support fetching from a shallow repository
705  + clone: support remote shallow repository
706  + fetch-pack.h: one statement per bitfield declaration
707  + fetch-pack.c: move shallow update code out of fetch_pack()
708  + shallow.c: steps 6 and 7 to select new commits for .git/shallow
709  + shallow.c: the 8 steps to select new commits for .git/shallow
710  + shallow.c: extend setup_*_shallow() to accept extra shallow commits
711  + connect.c: teach get_remote_heads to parse "shallow" lines
712  + make the sender advertise shallow commits to the receiver
713  + clone: prevent --reference to a shallow repository
714  + send-pack: forbid pushing from a shallow repository
715  + remote.h: replace struct extra_have_objects with struct sha1_array
716  + transport.h: remove send_pack prototype, already defined in send-pack.h
718  Fetching from a shallow-cloned repository used to be forbidden,
719  primarily because the codepaths involved were not carefully vetted
720  and we did not bother supporting such usage. This attempts to allow
721  object transfer out of a shallow-cloned repository in a controlled
722  way (i.e. the receiver become a shallow repository with truncated
723  history).
725  Will merge to 'master'.
728 * jn/git-gui-chmod+x (2013-11-25) 1 commit
729  - git-gui: chmod +x po2msg, windows/git-gui.sh
731  Parked here until I get the same change back from the upstream
732  git-gui tree.
735 * jn/gitk-chmod+x (2013-11-25) 1 commit
736  - gitk: chmod +x po2msg
738  Parked here until I get the same change back from the upstream gitk
739  tree.
742 * cc/starts-n-ends-with-endgame (2013-12-05) 1 commit
743   (merged to 'next' on 2014-01-07 at 4cdf8d0)
744  + strbuf: remove prefixcmp() and suffixcmp()
746  Endgame for the cc/starts-n-ends-with topic; this needs to be
747  evil-merged with other topics that introduce new uses of
748  prefix/suffix-cmp functions.
750  Will cook in 'next' until Git 2.0.
753 * gj/push-more-verbose-advice (2013-11-13) 1 commit
754   (merged to 'next' on 2013-12-06 at 574b18a)
755  + push: switch default from "matching" to "simple"
757  Originally merged to 'next' on 2013-11-21
759  Explain 'simple' and 'matching' in "git push" advice message; the
760  topmost patch is a rebase of jc/push-2.0-default-to-simple on top
761  of it.
763  Will cook in 'next' until Git 2.0.
766 * tr/merge-recursive-index-only (2013-10-28) 3 commits
767  - merge-recursive: -Xindex-only to leave worktree unchanged
768  - merge-recursive: internal flag to avoid touching the worktree
769  - merge-recursive: remove dead conditional in update_stages()
771  Will hold until using script appears.
774 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
775   (merged to 'next' on 2013-12-06 at ead2ec8)
776  + git add: -u/-A now affects the entire working tree
778  Will cook in 'next' until Git 2.0.
781 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
782   (merged to 'next' on 2013-12-06 at ae18007)
783  + core.statinfo: remove as promised in Git 2.0
785  Will cook in 'next' until Git 2.0.
788 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
789   (merged to 'next' on 2013-12-06 at 6fad61c)
790  + push: switch default from "matching" to "simple"
792  Will cook in 'next' until Git 2.0.
795 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
796   (merged to 'next' on 2013-12-06 at fbaa75a)
797  + git add <pathspec>... defaults to "-A"
799  Updated endgame for "git add <pathspec>" that defaults to "--all"
800  aka "--no-ignore-removal".
802  Will cook in 'next' until Git 2.0.
805 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
806   (merged to 'next' on 2013-12-06 at 083d67c)
807  + diff: remove "diff-files -q" in a version of Git in a distant future
809  Will cook in 'next' until a distant future.
811 --------------------------------------------------
812 [Discarded]
814 * aa/transport-non-positive-depth-only (2013-11-26) 1 commit
815  . transport: catch non positive --depth option value
818 * cc/remote-remove-redundant-postfixcmp (2013-11-06) 2 commits
819  . Rename suffixcmp() to has_suffix() and invert its result
820  . builtin/remote: remove postfixcmp() and use suffixcmp() instead
823 * th/reflog-annotated-tag (2013-10-28) 1 commit
824  . reflog: handle lightweight and annotated tags equally
826  "git log -g $annotated_tag", when there is no reflog history, should
827  have produced a single output entry (i.e. the ref creation event),
828  but instead showed the history leading to the tag.
830  Broken at the design level.  Any reflog entry that points at a non
831  commit needs to be handled with new code that does not exist yet,
832  and lifting the "this code handles only commits" without adding
833  such code does not solve anything.