What's cooking (2014/03 #05)
[git.git] / whats-cooking.txt
blob691d5b82feabfd3dee79dfb5d7533f077a43795d
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Mar 2014, #05; Mon, 24)
4 X-master-at: 3f09db07b3dc0758756fad73c96abd0e47cbcd1b
5 X-next-at: f5e1d547771ba4cba473a0195e52a3c9bceeb5f9
7 What's cooking in git.git (Mar 2014, #05; Mon, 24)
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 More topics merged to 'master', some of which have been cooking
15 before the v1.9.0 final release, many of them fallouts from GSoC
16 microprojects.  Many topics that have been marked to be discarded
17 are finally discarded.
19 There seems to be a crasher somewhere in the new pack bitmap
20 codepath that was introduced recently. I am hoping that the root
21 cause is found and fixed soonish.  Other than that, things look more
22 or less calm on the 'next' and up.
24 You can find the changes described here in the integration branches
25 of the repositories listed at
27     http://git-blame.blogspot.com/p/git-public-repositories.html
29 --------------------------------------------------
30 [Graduated to "master"]
32 * dk/skip-prefix-scan-only-once (2014-03-03) 1 commit
33   (merged to 'next' on 2014-03-14 at ff375fc)
34  + skip_prefix(): scan prefix only once
36  Update implementation of skip_prefix() to scan only once; given
37  that most "prefix" arguments to the inline function are constant
38  strings whose strlen() can be determined at the compile time, this
39  might actually make things worse with a compiler with sufficient
40  intelligence.
43 * es/sh-i18n-envsubst (2014-03-12) 1 commit
44   (merged to 'next' on 2014-03-14 at e4d5603)
45  + sh-i18n--envsubst: retire unused string_list_member()
48 * jc/stash-pop-not-popped (2014-02-26) 1 commit
49   (merged to 'next' on 2014-03-14 at 9ba1de8)
50  + stash pop: mention we did not drop the stash upon failing to apply
52  "stash pop", upon failing to apply the stash, refrains from
53  discarding the stash to avoid information loss.  Be more explicit
54  in the error message.
56  The wording may want to get a bit more bikeshedding.
59 * jk/shallow-update-fix (2014-03-17) 3 commits
60   (merged to 'next' on 2014-03-17 at 011942e)
61  + shallow: verify shallow file after taking lock
62   (merged to 'next' on 2014-03-12 at ce5abbf)
63  + shallow: automatically clean up shallow tempfiles
64  + shallow: use stat_validity to check for up-to-date file
66  Serving objects from a shallow repository needs to write a new file
67  to hold the temporary shallow boundaries but it was not cleaned
68  when we exit due to die() or a signal.
71 * jn/wt-status (2014-03-12) 4 commits
72   (merged to 'next' on 2014-03-14 at 8ac862c)
73  + wt-status: lift the artificual "at least 20 columns" floor
74  + wt-status: i18n of section labels
75  + wt-status: extract the code to compute width for labels
76  + wt-status: make full label string to be subject to l10n
78  Unify the codepaths that format new/modified/changed sections and
79  conflicted paths in the "git status" output and make it possible to
80  properly internationalize their output.
83 * lt/request-pull (2014-03-13) 6 commits
84   (merged to 'next' on 2014-03-17 at 21a598d)
85  + request-pull: documentation updates
86  + request-pull: resurrect "pretty refname" feature
87  + request-pull: test updates
88  + request-pull: pick up tag message as before
89  + request-pull: allow "local:remote" to specify names on both ends
90  + request-pull: more strictly match local/remote branches
92  Discard the accumulated "heuristics" to guess from which branch the
93  result wants to be pulled from and make sure what the end user
94  specified is not second-guessed by "git request-pull", to avoid
95  mistakes.
98 * nd/tag-version-sort (2014-02-27) 1 commit
99   (merged to 'next' on 2014-03-14 at 4e7f714)
100  + tag: support --sort=<spec>
102  Allow v1.9.0 sorted before v1.10.0 in "git tag --list" output.
105 * nd/upload-pack-shallow (2014-03-11) 1 commit
106   (merged to 'next' on 2014-03-14 at d40b8c3)
107  + upload-pack: send shallow info over stdin to pack-objects
109  Serving objects from a shallow repository needs to write a
110  temporary file to be used, but the serving upload-pack may not have
111  write access to the repository which is meant to be read-only.
112  Instead feed these temporary shallow bounds from the standard input
113  of pack-objects so that we do not have to use a temporary file.
116 * tc/commit-dry-run-exit-status-tests (2014-02-24) 1 commit
117   (merged to 'next' on 2014-03-12 at b839886)
118  + demonstrate git-commit --dry-run exit code behaviour
120 --------------------------------------------------
121 [New Topics]
123 * ca/doc-config-third-party (2014-03-21) 1 commit
124  - config.txt: third-party tools may and do use their own variables
126  Will merge to 'next'.
129 * dw/doc-status-no-longer-shows-pound-prefix (2014-03-21) 1 commit
130  - doc: status, remove leftover statement about '#' prefix
132  Will merge to 'next'.
135 * js/userdiff-cc (2014-03-21) 10 commits
136  - userdiff: have 'cpp' hunk header pattern catch more C++ anchor points
137  - t4018: test cases showing that the cpp pattern misses many anchor points
138  - t4018: test cases for the built-in cpp pattern
139  - t4018: reduce test files for pattern compilation tests
140  - t4018: convert custom pattern test to the new infrastructure
141  - t4018: convert java pattern test to the new infrastructure
142  - t4018: convert perl pattern tests to the new infrastructure
143  - t4018: an infrastructure to test hunk headers
144  - userdiff: support unsigned and long long suffixes of integer constants
145  - userdiff: support C++ ->* and .* operators in the word regexp
147  Improves the pattern to match the hunk-header for C/C++.
149  Will merge to 'next'.
152 * dp/makefile-charset-lib-doc (2014-03-23) 1 commit
153  - Makefile: describe CHARSET_LIB better
155  Will merge to 'next'.
158 * ib/rev-parse-parseopt-argh (2014-03-24) 5 commits
159  - parse-options: make sure argh string does not have SP or _
160  - update-index: teach --cacheinfo a new syntax "mode,sha1,path"
161  - parse-options: multi-word argh should use dash to separate words
162  - t1502: protect runs of SPs used in the indentation
163  - rev-parse --parseopt: option argument name hints
165  Teaches the "rev-parse --parseopt" mechanism used by scripted
166  Porcelains to parse command line options and give help text how to
167  supply argv-help (the placeholder string for an option parameter,
168  e.g. "key-id" in "--gpg-sign=<key-id>").
170  Will merge to 'next'.
173 * rs/pickaxe-i (2014-03-24) 10 commits
174  - pickaxe: simplify kwset loop in contains()
175  - pickaxe: call strlen only when necessary in diffcore_pickaxe_count()
176  - pickaxe: move pickaxe() after pickaxe_match()
177  - pickaxe: merge diffcore_pickaxe_grep() and diffcore_pickaxe_count() into diffcore_pickaxe()
178  - pickaxe: honor -i when used with -S and --pickaxe-regex
179  - t4209: use helper functions to test --author
180  - t4209: use helper functions to test --grep
181  - t4209: factor out helper function test_log_icase()
182  - t4209: factor out helper function test_log()
183  - t4209: set up expectations up front
185  Allow the options -i/--regexp-ignore-case, --pickaxe-regex, and -S
186  to be used together and work as expected to perform a pickaxe
187  search using case-insensitive regular expression matching.
189  Will merge to 'next'.
192 * an/branch-config-message (2014-03-24) 1 commit
193  - branch.c: install_branch_config: simplify if chain
195  Will merge to 'next'.
197 --------------------------------------------------
198 [Stalled]
200 * sz/mingw-index-pack-threaded (2014-03-19) 1 commit
201  - Enable index-pack threading in msysgit.
203  Still under discussion among Windows folks
206 * bc/blame-crlf-test (2014-02-18) 1 commit
207  - blame: add a failing test for a CRLF issue.
209  I have a feeling that a fix for this should be fairly isolated and
210  trivial (it should be just the matter of paying attention to the
211  crlf settings when synthesizing the fake commit)---perhaps somebody
212  can squash in a fix to this?
215 * jk/makefile (2014-02-05) 16 commits
216  - FIXUP
217  - move LESS/LV pager environment to Makefile
218  - Makefile: teach scripts to include make variables
219  - FIXUP
220  - Makefile: auto-build C strings from make variables
221  - Makefile: drop *_SQ variables
222  - FIXUP
223  - Makefile: add c-quote helper function
224  - Makefile: introduce sq function for shell-quoting
225  - Makefile: always create files via make-var
226  - Makefile: store GIT-* sentinel files in MAKE/
227  - Makefile: prefer printf to echo for GIT-*
228  - Makefile: use tempfile/mv strategy for GIT-*
229  - Makefile: introduce make-var helper function
230  - Makefile: fix git-instaweb dependency on gitweb
231  - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
233  Simplify the Makefile rules and macros that exist primarily for
234  quoting purposes, and make it easier to robustly express the
235  dependency rules.
237  Expecting a reroll.
240 * kb/fast-hashmap-pack-struct (2014-02-24) 1 commit
241  - hashmap.h: make sure map entries are tightly packed
243  I am inclined to drop this; an alternative is to replace it with
244  the "more portable" one that uses #pragma, which I am willing to
245  try doing so on 'pu', though.
248 * po/everyday-doc (2014-01-27) 1 commit
249  - Make 'git help everyday' work
251  This may make the said command to emit something, but the source is
252  not meant to be formatted into a manual pages to begin with, and
253  also its contents are a bit stale.  It may be a good first step in
254  the right direction, but needs more work to at least get the
255  mark-up right before public consumption.
257  Will hold.
260 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
261  - t1507 (rev-parse-upstream): fix typo in test title
262  - implement @{publish} shorthand
263  - branch_get: provide per-branch pushremote pointers
264  - branch_get: return early on error
265  - sha1_name: refactor upstream_mark
267  Give an easier access to the tracking branches from "other" side in
268  a triangular workflow by introducing B@{publish} that works in a
269  similar way to how B@{upstream} does.
271  Meant to be used as a basis for whatever Ram wants to build on.
273  Will hold.
276 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
277  - merge: drop unused arg from abort_commit method signature
278  - merge: make prepare_to_commit responsible for write_merge_state
279  - t7505: ensure cleanup after hook blocks merge
280  - t7505: add missing &&
282  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
283  run during "git merge".  The log message stresses too much on one
284  hook, prepare-commit-msg, but it would equally apply to other hooks
285  like post-merge, I think.
287  Waiting for a reroll.
290 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
291  - Teach checkout to recursively checkout submodules
292  - submodule: teach unpack_trees() to update submodules
293  - submodule: teach unpack_trees() to repopulate submodules
294  - submodule: teach unpack_trees() to remove submodule contents
295  - submodule: prepare for recursive checkout of submodules
297  Expecting a reroll.
300 * jc/graph-post-root-gap (2013-12-30) 3 commits
301  - WIP: document what we want at the end
302  - graph: remove unused code a bit
303  - graph: stuff the current commit into graph->columns[]
305  This was primarily a RFH ($gmane/239580).
308 * hv/submodule-ignore-fix (2013-12-06) 4 commits
309  - disable complete ignorance of submodules for index <-> HEAD diff
310  - always show committed submodules in summary after commit
311  - teach add -f option for ignored submodules
312  - fix 'git add' to skip submodules configured as ignored
314  Teach "git add" to be consistent with "git status" when changes to
315  submodules are set to be ignored, to avoid surprises after checking
316  with "git status" to see there isn't any change to be further added
317  and then see that "git add ." adds changes to them.
319  I think a reroll is coming, so this may need to be replaced, but I
320  needed some practice with heavy conflict resolution.  It conflicts
321  with two changes to "git add" that have been scheduled for Git 2.0
322  quite badly, and I think I got the resolution right this time.
324  Waiting for a reroll.
327 * np/pack-v4 (2013-09-18) 90 commits
328  . packv4-parse.c: add tree offset caching
329  . t1050: replace one instance of show-index with verify-pack
330  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
331  . unpack-objects: decode v4 trees
332  . unpack-objects: allow to save processed bytes to a buffer
333  - ...
335  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
336  primarily for wider distribution of the preview edition.
338  Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
339  this topic conflicts with.
342 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
343  - perf-lib: add test_perf_cleanup target
344  - perf-lib: split starting the test from the execution
346  Add test_perf_cleanup shell function to the perf suite, that allows
347  the script writers to define a test with a clean-up action.
349  Will hold.
352 * jc/format-patch (2013-04-22) 2 commits
353  - format-patch: --inline-single
354  - format-patch: rename "no_inline" field
356  A new option to send a single patch to the standard output to be
357  appended at the bottom of a message.  I personally have no need for
358  this, but it was easy enough to cobble together.  Tests, docs and
359  stripping out more MIMEy stuff are left as exercises to interested
360  parties.
363 * jc/show-branch (2013-06-07) 5 commits
364  - show-branch: use commit slab to represent bitflags of arbitrary width
365  - show-branch.c: remove "all_mask"
366  - show-branch.c: abstract out "flags" operation
367  - show-branch.c: lift all_mask/all_revs to a global static
368  - show-branch.c: update comment style
370  Waiting for the final step to lift the hard-limit before sending it out.
372 --------------------------------------------------
373 [Cooking]
375 * jk/lib-terminal-lazy (2014-03-14) 1 commit
376   (merged to 'next' on 2014-03-20 at 5de832f)
377  + t/lib-terminal: make TTY a lazy prerequisite
379  The test helper lib-terminal always run an actual test_expect_* when
380  included, which screwed up with the use of skil-all that may have to
381  be done later.
383  Will merge to 'master'.
386 * ah/doc-gitk-config (2014-03-20) 1 commit
387   (merged to 'next' on 2014-03-20 at d671b60)
388  + Documentation/gitk: document the location of the configulation file
390  Will merge to 'master'.
393 * as/grep-fullname-config (2014-03-20) 1 commit
394  - grep: add grep.fullName config variable
396  Will merge to 'next'.
399 * fr/add-interactive-argv-array (2014-03-18) 1 commit
400   (merged to 'next' on 2014-03-20 at 9d65f3d)
401  + add: use struct argv_array in run_add_interactive()
403  Will merge to 'master'.
406 * jk/pack-bitmap (2014-03-17) 1 commit
407   (merged to 'next' on 2014-03-20 at bba6246)
408  + pack-objects: turn off bitmaps when skipping objects
410  Instead of dying when asked to (re)pack with the reachability
411  bitmap when a bitmap cannot be built, just (re)pack without
412  producing a bitmap in such a case, with a warning.
414  Will merge to 'master', and probably to 'maint' later.
417 * jk/pack-bitmap-progress (2014-03-17) 2 commits
418   (merged to 'next' on 2014-03-20 at c7a83f9)
419  + pack-objects: show reused packfile objects in "Counting objects"
420  + pack-objects: show progress for reused packfiles
422  The progress output while repacking and transferring objects showed
423  an apparent large silence while writing the objects out of existing
424  packfiles, when the reachability bitmap was in use.
426  Will merge to 'master', and probably to 'maint' later.
429 * jk/subtree-prefix (2014-03-17) 1 commit
430   (merged to 'next' on 2014-03-20 at 81367fa)
431  + subtree: initialize "prefix" variable
433  A stray environment variable $prefix could have leaked into and
434  affected the behaviour of the "subtree" script.
436  Will merge to 'master'.
439 * nd/gc-aggressive (2014-03-17) 4 commits
440  - gc --aggressive: three phase repacking
441  - gc --aggressive: make --depth configurable
442  - pack-objects: support --keep
443  - environment.c: fix constness for odb_pack_keep()
446 * nd/index-pack-error-message (2014-03-17) 1 commit
447   (merged to 'next' on 2014-03-20 at 4d722ac)
448  + index-pack: report error using the correct variable
450  Will merge to 'master'.
453 * rr/doc-merge-strategies (2014-03-17) 1 commit
454   (merged to 'next' on 2014-03-20 at d31f415)
455  + Documentation/merge-strategies: avoid hyphenated commands
457  Will merge to 'master'.
460 * us/printf-not-echo (2014-03-18) 2 commits
461   (merged to 'next' on 2014-03-20 at 41205c8)
462  + test-lib.sh: do not "echo" caller-supplied strings
463  + rebase -i: do not "echo" random user-supplied strings
465  Will merge to 'master'.
468 * bb/diff-no-index-dotdot (2014-03-19) 2 commits
469   (merged to 'next' on 2014-03-20 at 352f48c)
470  + diff-no-index: replace manual "."/".." check with is_dot_or_dotdot()
471  + diff-no-index: rename read_directory()
473  Will merge to 'master'.
476 * bg/rebase-off-of-previous-branch (2014-03-19) 1 commit
477   (merged to 'next' on 2014-03-21 at 916b759)
478  + rebase: allow "-" short-hand for the previous branch
480  Will merge to 'master'.
483 * dt/tests-with-env-not-subshell (2014-03-19) 1 commit
484  - tests: use "env" to run commands with temporary env-var settings
485  (this branch is used by jk/tests-cleanup.)
487  Will merge to 'next'.
490 * hs/simplify-bit-setting-in-fsck-tree (2014-03-20) 1 commit
491  - fsck: use bitwise-or assignment operator to set flag
493  Will merge to 'next'.
496 * mm/status-porcelain-format-i18n-fix (2014-03-20) 2 commits
497  - SQUASH??? fix decl-after-stmt and simplify
498  - status: disable translation when --porcelain is used
500  Will merge to 'next' after squashing in the fixup.
503 * ss/test-on-mingw-rsync-path-no-absolute (2014-03-19) 1 commit
504   (merged to 'next' on 2014-03-20 at 2b7b95d)
505  + t5510: Do not use $(pwd) when fetching / pushing / pulling via rsync
507  Will merge to 'master'.
510 * ap/remote-hg-skip-null-bookmarks (2014-03-21) 2 commits
511  - SQUASH???
512  - remote-hg: do not fail on invalid bookmarks
514  Will merge to 'next' after squashing in the fix.
515  Thanks Torsten for testing.
518 * mh/remove-subtree-long-pathname-fix (2014-03-13) 2 commits
519   (merged to 'next' on 2014-03-17 at 68cc994)
520  + entry.c: fix possible buffer overflow in remove_subtree()
521  + checkout_entry(): use the strbuf throughout the function
523  Will merge to 'master'.
526 * nd/indent-fix-connect-c (2014-03-13) 1 commit
527   (merged to 'next' on 2014-03-17 at a109efc)
528  + connect.c: SP after "}", not TAB
530  Will merge to 'master'.
533 * ys/fsck-commit-parsing (2014-03-19) 2 commits
534   (merged to 'next' on 2014-03-21 at 2728983)
535  + fsck.c:fsck_commit(): use skip_prefix() to verify and skip constant
536  + fsck.c:fsck_ident(): ident points at a const string
538  Will merge to 'master'.
541 * jk/warn-on-object-refname-ambiguity (2014-03-13) 4 commits
542   (merged to 'next' on 2014-03-17 at 3f8e98e)
543  + rev-list: disable object/refname ambiguity check with --stdin
544  + cat-file: restore warn_on_object_refname_ambiguity flag
545  + cat-file: fix a minor memory leak in batch_objects
546  + cat-file: refactor error handling of batch_objects
548  Will merge to 'master'.
551 * bp/commit-p-editor (2014-03-18) 7 commits
552   (merged to 'next' on 2014-03-21 at 23b6b06)
553  + run-command: mark run_hook_with_custom_index as deprecated
554  + merge hook tests: fix and update tests
555  + merge: fix GIT_EDITOR override for commit hook
556  + commit: fix patch hunk editing with "commit -p -m"
557  + test patch hunk editing with "commit -p -m"
558  + merge hook tests: use 'test_must_fail' instead of '!'
559  + merge hook tests: fix missing '&&' in test
561  When it is not necessary to edit a commit log message (e.g. "git
562  commit -m" is given a message without specifying "-e"), we used to
563  disable the spawning of the editor by overriding GIT_EDITOR, but
564  this means all the uses of the editor, other than to edit the
565  commit log message, are also affected.
567  Will merge to 'master'.
570 * cp/am-patch-format-doc (2014-03-17) 2 commits
571   (merged to 'next' on 2014-03-17 at 7437c77)
572  + Documentation/git-am: typofix
573   (merged to 'next' on 2014-03-12 at 17c3ada)
574  + Documentation/git-am: Document supported --patch-format options
576  Will merge to 'master'.
579 * dm/configure-iconv-locale-charset (2014-03-11) 1 commit
580   (merged to 'next' on 2014-03-20 at 4443bfd)
581  + configure.ac: link with -liconv for locale_charset()
583  Will merge to 'master'.
586 * jk/mv-submodules-fix (2014-03-17) 2 commits
587   (merged to 'next' on 2014-03-17 at 7cae3b1)
588  + mv: prevent mismatched data when ignoring errors.
589  + builtin/mv: fix out of bounds write
591  Will merge to 'master'.
594 * cn/fetch-prune-overlapping-destination (2014-03-24) 3 commits
595  - SQUASH??? style and leak fix
596  - fetch: handle overlaping refspecs on --prune
597  - fetch: add a failing test for prunning with overlapping refspecs
599  Protect refs in a hierarchy that can come from more than one remote
600  hierarcies from incorrect removal by "git fetch --prune".
602  Since I didn't get any responses to my earlier "Comments?", I ended
603  up reading it myself again and found a small leak.
605  Hoping to be able to merge a fix for this issue soonish.
608 * nd/commit-editor-cleanup (2014-02-25) 3 commits
609   (merged to 'next' on 2014-03-17 at 986605d)
610  + commit: add --cleanup=scissors
611  + wt-status.c: move cut-line print code out to wt_status_add_cut_line
612  + wt-status.c: make cut_line[] const to shrink .data section a bit
614  "git commit --cleanup=<mode>" learned a new mode, scissors.
616  Will merge to 'master'.
619 * nd/multiple-work-trees (2014-03-17) 28 commits
620  - count-objects: report unused files in $GIT_DIR/repos/...
621  - gc: support prune --repos
622  - gc: style change -- no SP before closing bracket
623  - prune: strategies for linked checkouts
624  - checkout: detach if the branch is already checked out elsewhere
625  - checkout: clean up half-prepared directories in --to mode
626  - checkout: support checking out into a new working directory
627  - use new wrapper write_file() for simple file writing
628  - wrapper.c: wrapper to open a file, fprintf then close
629  - setup.c: support multi-checkout repo setup
630  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
631  - setup.c: convert check_repository_format_gently to use strbuf
632  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
633  - setup.c: convert is_git_directory() to use strbuf
634  - git-stash: avoid hardcoding $GIT_DIR/logs/....
635  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
636  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
637  - $GIT_COMMON_DIR: a new environment variable
638  - commit: use SEQ_DIR instead of hardcoding "sequencer"
639  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
640  - reflog: avoid constructing .lock path with git_path
641  - *.sh: respect $GIT_INDEX_FILE
642  - git_path(): be aware of file relocation in $GIT_DIR
643  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
644  - path.c: rename vsnpath() to do_git_path()
645  - git_snpath(): retire and replace with strbuf_git_path()
646  - path.c: make get_pathname() call sites return const char *
647  - path.c: make get_pathname() return strbuf instead of static buffer
649  A replacement for contrib/workdir/git-new-workdir that does not
650  rely on symbolic links and make sharing of objects and refs safer
651  by making the borrowee and borrowers aware of each other.
653  Reported to break on a worktree whose leading path component has a
654  symbolic link in it ($gmane/244822).
657 * ks/tree-diff-nway (2014-03-20) 19 commits
658  - combine-diff: speed it up, by using multiparent diff tree-walker directly
659  - tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
660  - Portable alloca for Git
661  - tree-diff: reuse base str(buf) memory on sub-tree recursion
662  - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
663  - tree-diff: rework diff_tree interface to be sha1 based
664  - tree-diff: diff_tree() should now be static
665  - tree-diff: remove special-case diff-emitting code for empty-tree cases
666  - tree-diff: simplify tree_entry_pathcmp
667  - tree-diff: show_path prototype is not needed anymore
668  - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
669  - tree-diff: move all action-taking code out of compare_tree_entry()
670  - tree-diff: don't assume compare_tree_entry() returns -1,0,1
671   (merged to 'next' on 2014-03-21 at d872679)
672  + tree-diff: consolidate code for emitting diffs and recursion in one place
673  + tree-diff: show_tree() is not needed
674  + tree-diff: no need to pass match to skip_uninteresting()
675  + tree-diff: no need to manually verify that there is no mode change for a path
676  + combine-diff: move changed-paths scanning logic into its own function
677  + combine-diff: move show_log_first logic/action out of paths scanning
679  Instead of running N pair-wise diff-trees when inspecting a
680  N-parent merge, find the set of paths that were touched by walking
681  N+1 trees in parallel.  These set of paths can then be turned into
682  N pair-wise diff-tree results to be processed through rename
683  detections and such.  And N=2 case nicely degenerates to the usual
684  2-way diff-tree, which is very nice.
687 * nd/log-show-linear-break (2014-03-20) 2 commits
688  - log: add --show-linear-break to help see non-linear history
689  - object.h: centralize object flag allocation
691  Attempts to show where a single-strand-of-pearls break in "git log"
692  output.
694  The implementation seems to have got worse compared to the previous
695  round.  Will hold.
698 * tr/remerge-diff (2014-02-26) 5 commits
699  . log --remerge-diff: show what the conflict resolution changed
700  . name-hash: allow dir hashing even when !ignore_case
701  . merge-recursive: allow storing conflict hunks in index
702  . revision: fold all merge diff variants into an enum merge_diff_mode
703  . combine-diff: do not pass revs->dense_combined_merges redundantly
704  (this branch uses tr/merge-recursive-index-only.)
706  "log -p" output learns a new way to let users inspect a merge
707  commit by showing the differences between the automerged result
708  with conflicts the person who recorded the merge would have seen
709  and the final conflict resolution that was recorded in the merge.
711  RFC.  This latest round clashes with the kb/fast-hashmap topic in
712  'master'.
715 * cc/interpret-trailers (2014-03-07) 11 commits
716  - Documentation: add documentation for 'git interpret-trailers'
717  - trailer: add tests for commands in config file
718  - trailer: execute command from 'trailer.<name>.command'
719  - trailer: add tests for "git interpret-trailers"
720  - trailer: add interpret-trailers command
721  - trailer: put all the processing together and print
722  - trailer: parse trailers from stdin
723  - trailer: process command line trailer arguments
724  - trailer: read and process config information
725  - trailer: process trailers from stdin and arguments
726  - trailers: add data structures and basic functions
728  A new filter to programatically edit the tail end of the commit log
729  messages.
732 * tr/merge-recursive-index-only (2014-02-05) 3 commits
733  - merge-recursive: -Xindex-only to leave worktree unchanged
734  - merge-recursive: internal flag to avoid touching the worktree
735  - merge-recursive: remove dead conditional in update_stages()
736  (this branch is used by tr/remerge-diff.)
738  Will hold.
740 --------------------------------------------------
741 [Discarded]
743 * jk/diff-funcname-cpp-regex (2014-03-05) 1 commit
744  . diff: simplify cpp funcname regex
746  Superceded.
749 * pw/branch-config-message (2014-03-13) 1 commit
750  . install_branch_config(): simplify verbose messages logic
752  Among the many attempts to microproject #8, this seemed to be the
753  most "done" among the table based ones; I however tend to think
754  that the original with minimum refactoring would be easier to read.
756  an/branch-config-message supersedes this topic.