Meta/Announce: code.google.com no longer accepts new downloads
[git/jrn.git] / whats-cooking.txt
blobe3783dbaad1fafcce14c30f2dd7d84dc0251db95
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Apr 2014, #05; Thu, 17)
4 X-master-at: 3f0c02a1c018ddaced5c97b58f550b2ad17dd0a9
5 X-next-at: fab3363ed5bd07db28d6fcb0637f15275ad77226
7 What's cooking in git.git (Apr 2014, #05; Thu, 17)
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 Hopefully we can merge a few more topics slated for 'master' before
15 cutting an early preview release -rc0 tomorrow.  Many of the topics
16 that are in 'next' have sizable impact on the codebase and I'd feel
17 safer to keep them cooking for the remainder of the cycle.
19 Also I am still waiting for acks for a few topics before merging
20 them to 'next'.  I would feel it would be good if we can merge them
21 early to 'next' for wider and longer exposure and some of them may
22 even deserve to be in -rc1, but as none of them is a regression fix,
23 it is also OK to wait until 2.0 final.
25 You can find the changes described here in the integration branches
26 of the repositories listed at
28     http://git-blame.blogspot.com/p/git-public-repositories.html
30 --------------------------------------------------
31 [Graduated to "master"]
33 * km/avoid-bs-in-shell-glob (2014-04-11) 1 commit
34   (merged to 'next' on 2014-04-14 at a3d9a58)
35  + test: fix t5560 on FreeBSD
37  Portability fix.
38  May want to merge to 'maint' later.
41 * km/avoid-cp-a (2014-04-11) 1 commit
42   (merged to 'next' on 2014-04-14 at be661c4)
43  + test: fix t7001 cp to use POSIX options
45  Portability fix.
46  May want to merge to 'maint' later.
49 * mh/multimail (2014-04-07) 1 commit
50   (merged to 'next' on 2014-04-15 at eaba915)
51  + git-multimail: update to version 1.0.0
54 * tb/unicode-6.3-zero-width (2014-04-09) 1 commit
55   (merged to 'next' on 2014-04-14 at 72ce72a)
56  + utf8.c: partially update to version 6.3
58  Teach our display-column-counting logic about decomposed umlauts
59  and friends.
61 --------------------------------------------------
62 [New Topics]
64 * jl/git-gui-show-added-submodule-changes (2014-04-15) 1 commit
65  - git-gui: show staged submodules regardless of ignore config
67  Tentatively queued what I expect to receive via Pat Thoyts.
70 * jl/gitk-show-added-submodule-changes (2014-04-15) 3 commits
71  - gitk: show staged submodules regardless of ignore config
72  - gitk: Merge branch 'new' of https://github.com/vnwildman/gitk
73  - l10n: Init Vietnamese translation
75  Tentatively queued what I expect to receive via Paul Mackerras.
78 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
79  - git-rebase: print name of rev when using shorthand
81  Teach "git rebase -" to report the concrete name of the branch
82  (i.e. the previous one).
84  But it stops short and does not do the same for "git rebase @{-1}".
87 * ef/send-email-absolute-path-to-the-command (2014-04-16) 1 commit
88  - send-email: recognize absolute path on Windows
91 * jk/config-die-bad-number-noreturn (2014-04-16) 1 commit
92   (merged to 'next' on 2014-04-16 at 4d49036)
93  + config.c: mark die_bad_number as NORETURN
95  Squelch a false compiler warning from older gcc.
97  Will merge to 'master'.
100 * ep/shell-command-substitution (2014-04-17) 14 commits
101  - t9362-mw-to-git-utf8.sh: use the $( ... ) construct for command substitution
102  - t9360-mw-to-git-clone.sh: use the $( ... ) construct for command substitution
103  - git-tag.sh: use the $( ... ) construct for command substitution
104  - git-revert.sh: use the $( ... ) construct for command substitution
105  - git-resolve.sh: use the $( ... ) construct for command substitution
106  - git-repack.sh: use the $( ... ) construct for command substitution
107  - git-merge.sh: use the $( ... ) construct for command substitution
108  - git-ls-remote.sh: use the $( ... ) construct for command substitution
109  - git-fetch.sh: use the $( ... ) construct for command substitution
110  - git-commit.sh: use the $( ... ) construct for command substitution
111  - git-clone.sh: use the $( ... ) construct for command substitution
112  - git-checkout.sh: use the $( ... ) construct for command substitution
113  - install-webdoc.sh: use the $( ... ) construct for command substitution
114  - howto-index.sh: use the $( ... ) construct for command substitution
116  Will merge to 'next' and perhaps to 'master'.
119 * jh/submodule-tests (2014-04-17) 1 commit
120  - t7410: 210 tests for various 'git submodule update' scenarios
123 * jx/i18n (2014-04-17) 3 commits
124  - i18n: only extract comments marked with "TRANSLATORS:"
125  - i18n: remove obsolete comments for translators in diffstat generation
126  - i18n: fix uncatchable comments for translators in date.c
128  The tip one is somewhat unfortunate to force us deviate from our
129  multi-line comment formatting convention when writing comments for
130  translators.
133 * rs/ref-update-check-errors-early (2014-04-17) 2 commits
134  - commit.c: check for lock error and return early
135  - sequencer.c: check for lock failure and bail early in fast_forward_to
138 * sk/svn-parse-datestamp (2014-04-17) 1 commit
139  - SVN.pm::parse_svn_date: allow timestamps with a single-digit hour
141 --------------------------------------------------
142 [Stalled]
144 * fc/publish-vs-upstream (2014-04-11) 8 commits
145  - sha1_name: add support for @{publish} marks
146  - sha1_name: simplify track finding
147  - sha1_name: cleanup interpret_branch_name()
148  - branch: display publish branch
149  - push: add --set-publish option
150  - branch: add --set-publish-to option
151  - Add concept of 'publish' branch
152  - t5516 (fetch-push): fix test restoration
154  Add branch@{publish}; it seems that this is somewhat different from
155  Ram and Peff started working on.  There are still many discussion
156  messages going back and forth but not updates to the patches.
158  Seems to have some interactions to break t5516 when merged to 'pu'.
161 * tr/merge-recursive-index-only (2014-02-05) 3 commits
162  - merge-recursive: -Xindex-only to leave worktree unchanged
163  - merge-recursive: internal flag to avoid touching the worktree
164  - merge-recursive: remove dead conditional in update_stages()
165  (this branch is used by tr/remerge-diff.)
167  Will hold.
170 * tr/remerge-diff (2014-02-26) 5 commits
171  . log --remerge-diff: show what the conflict resolution changed
172  . name-hash: allow dir hashing even when !ignore_case
173  . merge-recursive: allow storing conflict hunks in index
174  . revision: fold all merge diff variants into an enum merge_diff_mode
175  . combine-diff: do not pass revs->dense_combined_merges redundantly
176  (this branch uses tr/merge-recursive-index-only.)
178  "log -p" output learns a new way to let users inspect a merge
179  commit by showing the differences between the automerged result
180  with conflicts the person who recorded the merge would have seen
181  and the final conflict resolution that was recorded in the merge.
183  Needs to be rebased, now kb/fast-hashmap topic is in.
186 * bc/blame-crlf-test (2014-02-18) 1 commit
187  - blame: add a failing test for a CRLF issue.
189  I have a feeling that a fix for this should be fairly isolated and
190  trivial (it should be just the matter of paying attention to the
191  crlf settings when synthesizing the fake commit)---perhaps somebody
192  can squash in a fix to this?
195 * jk/makefile (2014-02-05) 16 commits
196  - FIXUP
197  - move LESS/LV pager environment to Makefile
198  - Makefile: teach scripts to include make variables
199  - FIXUP
200  - Makefile: auto-build C strings from make variables
201  - Makefile: drop *_SQ variables
202  - FIXUP
203  - Makefile: add c-quote helper function
204  - Makefile: introduce sq function for shell-quoting
205  - Makefile: always create files via make-var
206  - Makefile: store GIT-* sentinel files in MAKE/
207  - Makefile: prefer printf to echo for GIT-*
208  - Makefile: use tempfile/mv strategy for GIT-*
209  - Makefile: introduce make-var helper function
210  - Makefile: fix git-instaweb dependency on gitweb
211  - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
213  Simplify the Makefile rules and macros that exist primarily for
214  quoting purposes, and make it easier to robustly express the
215  dependency rules.
217  Expecting a reroll.
220 * po/everyday-doc (2014-01-27) 1 commit
221  - Make 'git help everyday' work
223  This may make the said command to emit something, but the source is
224  not meant to be formatted into a manual pages to begin with, and
225  also its contents are a bit stale.  It may be a good first step in
226  the right direction, but needs more work to at least get the
227  mark-up right before public consumption.
229  Will hold.
232 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
233  . t1507 (rev-parse-upstream): fix typo in test title
234  . implement @{publish} shorthand
235  . branch_get: provide per-branch pushremote pointers
236  . branch_get: return early on error
237  . sha1_name: refactor upstream_mark
239  Give an easier access to the tracking branches from "other" side in
240  a triangular workflow by introducing B@{publish} that works in a
241  similar way to how B@{upstream} does.
243  Meant to be used as a basis for whatever Ram wants to build on.
245  Ejected from 'pu' to make room for fc/publish-vs-upstream topic.
248 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
249  - merge: drop unused arg from abort_commit method signature
250  - merge: make prepare_to_commit responsible for write_merge_state
251  - t7505: ensure cleanup after hook blocks merge
252  - t7505: add missing &&
254  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
255  run during "git merge".  The log message stresses too much on one
256  hook, prepare-commit-msg, but it would equally apply to other hooks
257  like post-merge, I think.
259  Waiting for a reroll.
262 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
263  - Teach checkout to recursively checkout submodules
264  - submodule: teach unpack_trees() to update submodules
265  - submodule: teach unpack_trees() to repopulate submodules
266  - submodule: teach unpack_trees() to remove submodule contents
267  - submodule: prepare for recursive checkout of submodules
269  An RFCv2 exists ($gmane/241455) with sizable review comments.
270  Expecting a reroll.
273 * jc/graph-post-root-gap (2013-12-30) 3 commits
274  - WIP: document what we want at the end
275  - graph: remove unused code a bit
276  - graph: stuff the current commit into graph->columns[]
278  This was primarily a RFH ($gmane/239580).
281 * np/pack-v4 (2013-09-18) 90 commits
282  . packv4-parse.c: add tree offset caching
283  . t1050: replace one instance of show-index with verify-pack
284  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
285  . unpack-objects: decode v4 trees
286  . unpack-objects: allow to save processed bytes to a buffer
287  - ...
289  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
290  primarily for wider distribution of the preview edition.
292  Needs to be rebased, now the pack-bitmap series is in.
295 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
296  - perf-lib: add test_perf_cleanup target
297  - perf-lib: split starting the test from the execution
299  Add test_perf_cleanup shell function to the perf suite, that allows
300  the script writers to define a test with a clean-up action.
302  Will hold.
305 * jc/format-patch (2013-04-22) 2 commits
306  - format-patch: --inline-single
307  - format-patch: rename "no_inline" field
309  A new option to send a single patch to the standard output to be
310  appended at the bottom of a message.  I personally have no need for
311  this, but it was easy enough to cobble together.  Tests, docs and
312  stripping out more MIMEy stuff are left as exercises to interested
313  parties.
316 * jc/show-branch (2014-03-24) 5 commits
317  - show-branch: use commit slab to represent bitflags of arbitrary width
318  - show-branch.c: remove "all_mask"
319  - show-branch.c: abstract out "flags" operation
320  - show-branch.c: lift all_mask/all_revs to a global static
321  - show-branch.c: update comment style
323  Waiting for the final step to lift the hard-limit before sending it out.
325 --------------------------------------------------
326 [Cooking]
328 * fc/prompt-zsh-read-from-file (2014-04-14) 1 commit
329   (merged to 'next' on 2014-04-16 at 0e5fec0)
330  + prompt: fix missing file errors in zsh
332  Will merge to 'master'.
335 * fc/transport-helper-sync-error-fix (2014-04-14) 5 commits
336  - transport-helper: fix sync issue on crashes
337  - transport-helper: trivial cleanup
338  - transport-helper: propagate recvline() error pushing
339  - remote-helpers: make recvline return an error
340  - transport-helper: remove barely used xchgline()
342  Make sure the marks are not written out when the transport helper
343  did not finish happily, to avoid marks file that is out of sync
344  with the reality.
346  As I had to resolve some conflicts with the recent code, will wait
347  until getting an OK from Felipe on the conflict resolution and then
348  hopefully can be merged to 'next' and then later to 'master'.
351 * km/avoid-non-function-return-in-rebase (2014-04-17) 2 commits
352  - Revert "rebase: fix run_specific_rebase's use of "return" on FreeBSD"
353  - rebase: avoid non-function use of "return" on FreeBSD
355  Work around /bin/sh that does not like "return" at the top-level
356  of a file that is dot-sourced from inside a function definition.
358  Will merge to 'next' after the discussion on in-code comment settles.
360  We may want to merge it to 'master' by -rc1 if no regressions are
361  reported.
364 * db/make-with-curl (2014-04-15) 2 commits
365   (merged to 'next' on 2014-04-16 at b9c8527)
366  + Makefile: allow static linking against libcurl
367  + Makefile: use curl-config to determine curl flags
369  Ask curl-config how to link with the curl library, instead of
370  having only a limited configurability knobs in the Makefile.
372  Will merge to 'master' by -rc1 if no regressions are reported.
375 * nd/index-pack-one-fd-per-thread (2014-04-16) 1 commit
376   (merged to 'next' on 2014-04-16 at b38d5a9)
377  + index-pack: work around thread-unsafe pread()
379  Enable threaded index-pack on platforms without thread-unsafe
380  pread() emulation.
382  Will keep in 'next' for the remainder of the cycle.
385 * fc/complete-aliased-push (2014-04-09) 1 commit
386   (merged to 'next' on 2014-04-16 at ab798d1)
387  + completion: fix completing args of aliased "push", "fetch", etc.
389  Will merge to 'master'.
392 * fc/remote-helper-fixes (2014-04-14) 5 commits
393   (merged to 'next' on 2014-04-16 at 180482e)
394  + remote-bzr: trivial test fix
395  + remote-bzr: include authors field in pushed commits
396  + remote-bzr: add support for older versions
397  + remote-hg: always normalize paths
398  + remote-helpers: allow all tests running from any dir
400  Will merge to 'master'.
403 * ym/fix-opportunistic-index-update-race (2014-04-10) 2 commits
404   (merged to 'next' on 2014-04-16 at cb92f4f)
405  + read-cache.c: verify index file before we opportunistically update it
406  + wrapper.c: add xpread() similar to xread()
408  Read-only operations such as "git status" that internally refreshes
409  the index write out the refreshed index to the disk to optimize
410  future accesses to the working tree, but this could race with a
411  "read-write" operation that modify the index while it is running.
412  Detect such a race and avoid overwriting the index.
414  Duy raised a good point that we may need to do the same for the
415  normal writeout codepath, not just the "opportunistic" update
416  codepath.  While that is true, nobody sane would be running two
417  simultaneous operations that are clearly write-oriented competing
418  with each other against the same index file.  So in that sense that
419  can be done as a less urgent follow-up for this topic.
421  Will keep in 'next' for the remainder of the cycle.
424 * jl/status-added-submodule-is-never-ignored (2014-04-07) 2 commits
425  - commit -m: commit staged submodules regardless of ignore config
426  - status/commit: show staged submodules regardless of ignore config
428  There also are a few patches Ronald Weiss and Jens are working on
429  polishing around this topic, and a patch from Jens each for gitk
430  and git-gui.
432  Waiting for the dust to settle until picking them up all.
435 * mh/lockfile (2014-04-15) 25 commits
436  - trim_last_path_elm(): replace last_path_elm()
437  - resolve_symlink(): take a strbuf parameter
438  - resolve_symlink(): use a strbuf for internal scratch space
439  - change lock_file::filename into a strbuf
440  - commit_lock_file(): use a strbuf to manage temporary space
441  - try_merge_strategy(): use a statically-allocated lock_file object
442  - try_merge_strategy(): remove redundant lock_file allocation
443  - struct lock_file: declare some fields volatile
444  - lockfile: avoid transitory invalid states
445  - commit_lock_file(): die() if called for unlocked lockfile object
446  - commit_lock_file(): inline temporary variable
447  - remove_lock_file(): call rollback_lock_file()
448  - lock_file(): exit early if lockfile cannot be opened
449  - write_packed_entry_fn(): convert cb_data into a (const int *)
450  - prepare_index(): declare return value to be (const char *)
451  - delete_ref_loose(): don't muck around in the lock_file's filename
452  - cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
453  - lockfile.c: document the various states of lock_file objects
454  - lock_file(): always add lock_file object to lock_file_list
455  - hold_lock_file_for_append(): release lock on errors
456  - lockfile: unlock file if lockfile permissions cannot be adjusted
457  - rollback_lock_file(): set fd to -1
458  - rollback_lock_file(): do not clear filename redundantly
459  - api-lockfile: expand the documentation
460  - unable_to_lock_die(): rename function from unable_to_lock_index_die()
462  Refactor and fix corner-case bugs in the lockfile API, all looked
463  sensible.
465  Expecting a reroll.
468 * mt/patch-id-stable (2014-03-31) 3 commits
469   (merged to 'next' on 2014-04-08 at 0188d44)
470  + patch-id-test: test --stable and --unstable flags
471  + patch-id: document new behaviour
472  + patch-id: make it stable against hunk reordering
474  Introduce a new way to compute patch-id for a patch that is not
475  affected by the order of the paths that appear in the input.
477  This changes the generated patch-id unless the users add an extra
478  option to their command lines, but I deliberately queued the series
479  to 'next' without reverting that compatibility breakage to see if
480  people complain.  It could be that we do not have to worry about
481  the default flipping at all.  We'll see.
483  Will keep in 'next' for the remainder of the cycle.
486 * mh/ref-transaction (2014-04-07) 27 commits
487   (merged to 'next' on 2014-04-16 at a99f84d)
488  + ref_transaction_commit(): work with transaction->updates in place
489  + struct ref_update: add a type field
490  + struct ref_update: add a lock field
491  + ref_transaction_commit(): simplify code using temporary variables
492  + struct ref_update: store refname as a FLEX_ARRAY
493  + struct ref_update: rename field "ref_name" to "refname"
494  + refs: remove API function update_refs()
495  + update-ref --stdin: reimplement using reference transactions
496  + refs: add a concept of a reference transaction
497  + update-ref --stdin: harmonize error messages
498  + update-ref --stdin: improve the error message for unexpected EOF
499  + t1400: test one mistake at a time
500  + update-ref --stdin -z: deprecate interpreting the empty string as zeros
501  + update-ref.c: extract a new function, parse_next_sha1()
502  + t1400: test that stdin -z update treats empty <newvalue> as zeros
503  + update-ref --stdin: simplify error messages for missing oldvalues
504  + update-ref --stdin: make error messages more consistent
505  + update-ref --stdin: improve error messages for invalid values
506  + update-ref.c: extract a new function, parse_refname()
507  + parse_cmd_verify(): copy old_sha1 instead of evaluating <oldvalue> twice
508  + update-ref --stdin: read the whole input at once
509  + update_refs(): fix constness
510  + refs.h: rename the action_on_err constants
511  + t1400: add some more tests involving quoted arguments
512  + parse_arg(): really test that argument is properly terminated
513  + t1400: provide more usual input to the command
514  + t1400: fix name and expected result of one test
516  Update "update-ref --stdin [-z]" and then introduce a transactional
517  support for (multi-)reference updates.
519  Will keep in 'next' for the remainder of the cycle.
522 * jc/apply-ignore-whitespace (2014-03-26) 1 commit
523   (merged to 'next' on 2014-04-04 at 53779a7)
524  + apply --ignore-space-change: lines with and without leading whitespaces do not match
526  "--ignore-space-change" option of "git apply" ignored the
527  spaces at the beginning of line too aggressively, which is
528  inconsistent with the option of the same name "diff" and "git diff"
529  have.
531  Will keep in 'next' for the remainder of the cycle.
534 * as/grep-fullname-config (2014-03-20) 1 commit
535   (merged to 'next' on 2014-03-28 at 810a076)
536  + grep: add grep.fullName config variable
538  Add a configuration variable to force --full-name to be default for
539  "git grep".
541  This may cause regressions on scripted users that do not expect
542  this new behaviour.
544  Will keep in 'next' for the remainder of the cycle.
547 * nd/multiple-work-trees (2014-03-25) 28 commits
548  - count-objects: report unused files in $GIT_DIR/repos/...
549  - gc: support prune --repos
550  - gc: style change -- no SP before closing bracket
551  - prune: strategies for linked checkouts
552  - checkout: detach if the branch is already checked out elsewhere
553  - checkout: clean up half-prepared directories in --to mode
554  - checkout: support checking out into a new working directory
555  - use new wrapper write_file() for simple file writing
556  - wrapper.c: wrapper to open a file, fprintf then close
557  - setup.c: support multi-checkout repo setup
558  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
559  - setup.c: convert check_repository_format_gently to use strbuf
560  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
561  - setup.c: convert is_git_directory() to use strbuf
562  - git-stash: avoid hardcoding $GIT_DIR/logs/....
563  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
564  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
565  - $GIT_COMMON_DIR: a new environment variable
566  - commit: use SEQ_DIR instead of hardcoding "sequencer"
567  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
568  - reflog: avoid constructing .lock path with git_path
569  - *.sh: respect $GIT_INDEX_FILE
570  - git_path(): be aware of file relocation in $GIT_DIR
571  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
572  - path.c: rename vsnpath() to do_git_path()
573  - git_snpath(): retire and replace with strbuf_git_path()
574  - path.c: make get_pathname() call sites return const char *
575  - path.c: make get_pathname() return strbuf instead of static buffer
577  A replacement for contrib/workdir/git-new-workdir that does not
578  rely on symbolic links and make sharing of objects and refs safer
579  by making the borrowee and borrowers aware of each other.
581  Will hold.
584 * ks/tree-diff-nway (2014-04-09) 20 commits
585   (merged to 'next' on 2014-04-09 at c17228e)
586  + mingw: activate alloca
587   (merged to 'next' on 2014-04-08 at 6b74773)
588  + combine-diff: speed it up, by using multiparent diff tree-walker directly
589  + tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
590  + Portable alloca for Git
591   (merged to 'next' on 2014-03-31 at 16a7bd4)
592  + tree-diff: reuse base str(buf) memory on sub-tree recursion
593  + tree-diff: no need to call "full" diff_tree_sha1 from show_path()
594  + tree-diff: rework diff_tree interface to be sha1 based
595  + tree-diff: diff_tree() should now be static
596  + tree-diff: remove special-case diff-emitting code for empty-tree cases
597   (merged to 'next' on 2014-03-25 at cfcbdac)
598  + tree-diff: simplify tree_entry_pathcmp
599  + tree-diff: show_path prototype is not needed anymore
600  + tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
601  + tree-diff: move all action-taking code out of compare_tree_entry()
602  + tree-diff: don't assume compare_tree_entry() returns -1,0,1
603   (merged to 'next' on 2014-03-21 at d872679)
604  + tree-diff: consolidate code for emitting diffs and recursion in one place
605  + tree-diff: show_tree() is not needed
606  + tree-diff: no need to pass match to skip_uninteresting()
607  + tree-diff: no need to manually verify that there is no mode change for a path
608  + combine-diff: move changed-paths scanning logic into its own function
609  + combine-diff: move show_log_first logic/action out of paths scanning
611  Instead of running N pair-wise diff-trees when inspecting a
612  N-parent merge, find the set of paths that were touched by walking
613  N+1 trees in parallel.  These set of paths can then be turned into
614  N pair-wise diff-tree results to be processed through rename
615  detections and such.  And N=2 case nicely degenerates to the usual
616  2-way diff-tree, which is very nice.
618  Will keep in 'next' for the remainder of the cycle.
621 * cc/interpret-trailers (2014-04-07) 12 commits
622  - trailer: add blank line before the trailers if needed
623  - Documentation: add documentation for 'git interpret-trailers'
624  - trailer: add tests for commands in config file
625  - trailer: execute command from 'trailer.<name>.command'
626  - trailer: add tests for "git interpret-trailers"
627  - trailer: add interpret-trailers command
628  - trailer: put all the processing together and print
629  - trailer: parse trailers from stdin
630  - trailer: process command line trailer arguments
631  - trailer: read and process config information
632  - trailer: process trailers from stdin and arguments
633  - trailer: add data structures and basic functions
635  A new filter to programatically edit the tail end of the commit log
636  messages.
638  I was planning to merge it to 'next' and keep it there for the
639  remainder of the cycle, but it appears that there still will be
640  another round of reroll, at least for the documentation?