What's cooking (2014/04 #08)
[alt-git.git] / whats-cooking.txt
blob6b0d7b19eb6a781390871d48cedac6bd48357a2a
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Apr 2014, #08; Fri, 25)
4 X-master-at: 35936f8fc38a214cc7d2595070641d39a541dfb1
5 X-next-at: 6b2797783cb3e61a56a96669ce7848480f49f38f
7 What's cooking in git.git (Apr 2014, #08; Fri, 25)
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 tip of the 'master' branch is at v2.0.0-rc1.  Last minute fixes
15 to newly added code keep flowing in, which is good.
17 You can find the changes described here in the integration branches
18 of the repositories listed at
20     http://git-blame.blogspot.com/p/git-public-repositories.html
22 --------------------------------------------------
23 [Graduated to "master"]
25 * db/make-with-curl (2014-04-15) 2 commits
26   (merged to 'next' on 2014-04-16 at b9c8527)
27  + Makefile: allow static linking against libcurl
28  + Makefile: use curl-config to determine curl flags
30  Ask curl-config how to link with the curl library, instead of
31  having only a limited configurability knobs in the Makefile.
34 * fc/transport-helper-sync-error-fix (2014-04-21) 6 commits
35   (merged to 'next' on 2014-04-21 at f53a08a)
36  + t5801 (remote-helpers): cleanup environment sets
37  + transport-helper: fix sync issue on crashes
38  + transport-helper: trivial cleanup
39  + transport-helper: propagate recvline() error pushing
40  + remote-helpers: make recvline return an error
41  + transport-helper: remove barely used xchgline()
43  Make sure the marks are not written out when the transport helper
44  did not finish happily, to avoid marks file that is out of sync
45  with the reality.
48 * jk/pack-bitmap (2014-04-22) 1 commit
49   (merged to 'next' on 2014-04-22 at ba58737)
50  + ewah_bitmap.c: do not assume size_t and eword_t are the same size
52  A last minute (and hopefully the last) fix to avoid coredumps due
53  to an incorrect pointer arithmetic.
55 --------------------------------------------------
56 [New Topics]
58 * ep/shell-command-substitution (2014-04-23) 13 commits
59  - p5302-pack-index.sh: use the $( ... ) construct for command substitution
60  - lib-gpg.sh: use the $( ... ) construct for command substitution
61  - lib-cvs.sh: use the $( ... ) construct for command substitution
62  - lib-credential.sh: use the $( ... ) construct for command substitution
63  - git-web--browse.sh: use the $( ... ) construct for command substitution
64  - git-stash.sh: use the $( ... ) construct for command substitution
65  - git-rebase.sh: use the $( ... ) construct for command substitution
66  - git-rebase--merge.sh: use the $( ... ) construct for command substitution
67  - git-pull.sh: use the $( ... ) construct for command substitution
68  - appp.sh: use the $( ... ) construct for command substitution
69  - t7900-subtree.sh: use the $( ... ) construct for command substitution
70  - test-gitmw-lib.sh: use the $( ... ) construct for command substitution
71  - t9365-continuing-queries.sh: use the $( ... ) construct for command substitution
73  Adjust shell scripts to use $(cmd) instead of `cmd`.
75  Will merge to 'next' and keep it there for the remainder of the cycle.
78 * ib/test-selectively-run (2014-04-23) 3 commits
79  - test-lib: '--run' to run only specific tests
80  - test-lib: tests skipped by GIT_SKIP_TESTS say so
81  - test-lib: Document short options in t/README
83  Allow specifying only certain individual test pieces to be run
84  using a range notation (e.g. "t1234-test.sh --run='1-4 6 8 9-'").
87 * mm/mediawiki-encoding-fix (2014-04-23) 2 commits
88  - git-remote-mediawiki: fix encoding issue for UTF-8 media files
89  - git-remote-mediawiki: allow stop/start-ing the test server
91  Will merge to 'next' and keep it there for the remainder of the cycle.
94 * mw/symlinks (2014-04-24) 1 commit
95   (merged to 'next' on 2014-04-25 at 20b2af6)
96  + setup: fix windows path buffer over-stepping
98  A finishing touch fix to a new change already in 'master'.
100  Will merge to 'master' by -rc2.
103 * sk/tag-contains-wo-recursion (2014-04-25) 1 commit
104   (merged to 'next' on 2014-04-25 at f320750)
105  + git tag --contains: avoid stack overflow
107  Will keep in 'next' for the remainder of the cycle.
109 --------------------------------------------------
110 [Stalled]
112 * rs/ref-transaction (2014-04-22) 14 commits
113  . SQUASH???
114  . refs.c: change update_ref to use a transaction
115  . walker.c: use ref transaction for ref updates
116  . branch.c: use ref transaction for all ref updates
117  . fast-import.c: change update_branch to use ref transactions
118  . sequencer.c: use ref transactions for all ref updates
119  . commit.c: use ref transactions for updates
120  . replace.c: use the ref transaction functions for updates
121  . tag.c: use ref transactions when doing updates
122  . refs.c: ref_transaction_delete to check for error and return status
123  . refs.c: change ref_transaction_create to do error checking and return status
124  . refs.c: change ref_transaction_update() to do error checking and return status
125  . refs.c: use a single exit path from transaction commit and handle onerr
126  . refs.c: constify the sha arguments for ref_transaction_create|delete|update
127  (this branch uses mh/ref-transaction.)
129  Updates most of the callsites to write_sha1_ref(), the low-level
130  mechanism to update a ref, to use the ref-transaction API.
132  Seems to break the dumb walker test (t5550) when merged to 'pu',
133  possibly due to misconversion of walker.c.  Kept out of 'pu' as I
134  didn't want to resolve conflicts with the other topics only to get
135  a known-broken version.
138 * tr/merge-recursive-index-only (2014-02-05) 3 commits
139  - merge-recursive: -Xindex-only to leave worktree unchanged
140  - merge-recursive: internal flag to avoid touching the worktree
141  - merge-recursive: remove dead conditional in update_stages()
142  (this branch is used by tr/remerge-diff.)
144  Will hold.
147 * tr/remerge-diff (2014-02-26) 5 commits
148  . log --remerge-diff: show what the conflict resolution changed
149  . name-hash: allow dir hashing even when !ignore_case
150  . merge-recursive: allow storing conflict hunks in index
151  . revision: fold all merge diff variants into an enum merge_diff_mode
152  . combine-diff: do not pass revs->dense_combined_merges redundantly
153  (this branch uses tr/merge-recursive-index-only.)
155  "log -p" output learns a new way to let users inspect a merge
156  commit by showing the differences between the automerged result
157  with conflicts the person who recorded the merge would have seen
158  and the final conflict resolution that was recorded in the merge.
160  Needs to be rebased, now kb/fast-hashmap topic is in.
163 * bc/blame-crlf-test (2014-02-18) 1 commit
164  - blame: add a failing test for a CRLF issue.
166  I have a feeling that a fix for this should be fairly isolated and
167  trivial (it should be just the matter of paying attention to the
168  crlf settings when synthesizing the fake commit)---perhaps somebody
169  can squash in a fix to this?
172 * jk/makefile (2014-02-05) 16 commits
173  - FIXUP
174  - move LESS/LV pager environment to Makefile
175  - Makefile: teach scripts to include make variables
176  - FIXUP
177  - Makefile: auto-build C strings from make variables
178  - Makefile: drop *_SQ variables
179  - FIXUP
180  - Makefile: add c-quote helper function
181  - Makefile: introduce sq function for shell-quoting
182  - Makefile: always create files via make-var
183  - Makefile: store GIT-* sentinel files in MAKE/
184  - Makefile: prefer printf to echo for GIT-*
185  - Makefile: use tempfile/mv strategy for GIT-*
186  - Makefile: introduce make-var helper function
187  - Makefile: fix git-instaweb dependency on gitweb
188  - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
190  Simplify the Makefile rules and macros that exist primarily for
191  quoting purposes, and make it easier to robustly express the
192  dependency rules.
194  Expecting a reroll.
197 * po/everyday-doc (2014-01-27) 1 commit
198  - Make 'git help everyday' work
200  This may make the said command to emit something, but the source is
201  not meant to be formatted into a manual pages to begin with, and
202  also its contents are a bit stale.  It may be a good first step in
203  the right direction, but needs more work to at least get the
204  mark-up right before public consumption.
206  Will hold.
209 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
210  . t1507 (rev-parse-upstream): fix typo in test title
211  . implement @{publish} shorthand
212  . branch_get: provide per-branch pushremote pointers
213  . branch_get: return early on error
214  . sha1_name: refactor upstream_mark
216  Give an easier access to the tracking branches from "other" side in
217  a triangular workflow by introducing B@{publish} that works in a
218  similar way to how B@{upstream} does.
220  Meant to be used as a basis for whatever Ram wants to build on.
222  Ejected from 'pu' to make room for fc/publish-vs-upstream topic.
225 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
226  - merge: drop unused arg from abort_commit method signature
227  - merge: make prepare_to_commit responsible for write_merge_state
228  - t7505: ensure cleanup after hook blocks merge
229  - t7505: add missing &&
231  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
232  run during "git merge".  The log message stresses too much on one
233  hook, prepare-commit-msg, but it would equally apply to other hooks
234  like post-merge, I think.
236  Waiting for a reroll.
239 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
240  - Teach checkout to recursively checkout submodules
241  - submodule: teach unpack_trees() to update submodules
242  - submodule: teach unpack_trees() to repopulate submodules
243  - submodule: teach unpack_trees() to remove submodule contents
244  - submodule: prepare for recursive checkout of submodules
246  An RFCv2 exists ($gmane/241455) with sizable review comments.
247  Expecting a reroll.
250 * jc/graph-post-root-gap (2013-12-30) 3 commits
251  - WIP: document what we want at the end
252  - graph: remove unused code a bit
253  - graph: stuff the current commit into graph->columns[]
255  This was primarily a RFH ($gmane/239580).
258 * np/pack-v4 (2013-09-18) 90 commits
259  . packv4-parse.c: add tree offset caching
260  . t1050: replace one instance of show-index with verify-pack
261  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
262  . unpack-objects: decode v4 trees
263  . unpack-objects: allow to save processed bytes to a buffer
264  - ...
266  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
267  primarily for wider distribution of the preview edition.
269  Needs to be rebased, now the pack-bitmap series is in.
272 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
273  - perf-lib: add test_perf_cleanup target
274  - perf-lib: split starting the test from the execution
276  Add test_perf_cleanup shell function to the perf suite, that allows
277  the script writers to define a test with a clean-up action.
279  Will hold.
282 * jc/format-patch (2013-04-22) 2 commits
283  - format-patch: --inline-single
284  - format-patch: rename "no_inline" field
286  A new option to send a single patch to the standard output to be
287  appended at the bottom of a message.  I personally have no need for
288  this, but it was easy enough to cobble together.  Tests, docs and
289  stripping out more MIMEy stuff are left as exercises to interested
290  parties.
293 * jc/show-branch (2014-03-24) 5 commits
294  - show-branch: use commit slab to represent bitflags of arbitrary width
295  - show-branch.c: remove "all_mask"
296  - show-branch.c: abstract out "flags" operation
297  - show-branch.c: lift all_mask/all_revs to a global static
298  - show-branch.c: update comment style
300  Waiting for the final step to lift the hard-limit before sending it out.
302 --------------------------------------------------
303 [Cooking]
305 * fc/remote-helpers-hg-bzr-graduation (2014-04-21) 3 commits
306   (merged to 'next' on 2014-04-22 at fed170a)
307  + remote-helpers: move tests out of contrib
308  + remote-helpers: move out of contrib
309  + remote-helpers: squelch python import exceptions
311  Move remote-hg and remote-bzr out of contrib/.
313  Will keep in 'next' for the remainder of the cycle.
316 * fc/remote-helper-refmap (2014-04-21) 8 commits
317   (merged to 'next' on 2014-04-22 at fb5a4c2)
318  + transport-helper: remove unnecessary strbuf resets
319  + transport-helper: add support to delete branches
320  + fast-export: add support to delete refs
321  + fast-import: add support to delete refs
322  + transport-helper: add support to push symbolic refs
323  + transport-helper: add support for old:new refspec
324  + fast-export: add new --refspec option
325  + fast-export: improve argument parsing
327  Allow remote-helper/fast-import based transport to rename the refs
328  while transferring the history.
330  Will keep in 'next' for the remainder of the cycle.
333 * jk/external-diff-use-argv-array (2014-04-21) 6 commits
334   (merged to 'next' on 2014-04-22 at e6d92d7)
335  + run_external_diff: refactor cmdline setup logic
336  + run_external_diff: hoist common bits out of conditional
337  + run_external_diff: drop fflush(NULL)
338  + run_external_diff: clean up error handling
339  + run_external_diff: use an argv_array for the environment
340  + run_external_diff: use an argv_array for the command line
342  Code clean-up.
344  Will keep in 'next' for the remainder of the cycle.
347 * jx/blame-align-relative-time (2014-04-23) 2 commits
348   (merged to 'next' on 2014-04-23 at 858df39)
349  + blame: dynamic blame_date_width for different locales
350  + blame: fix broken time_buf paddings in relative timestamp
352  "git blame" miscounted number of columns needed to show localized
353  timestamps, resulting in jaggy left-side-edge of the source code
354  lines in its output.
356  Will keep in 'next' for the remainder of the cycle.
359 * fc/merge-default-to-upstream (2014-04-22) 1 commit
360   (merged to 'next' on 2014-04-22 at 4f98483)
361  + merge: enable defaulttoupstream by default
363  "git merge" without argument, even when there is an upstream
364  defined for the current branch, refused to run until
365  merge.defaultToUpstream is set to true. Flip the default of that
366  configuration variable to true.
368  Will keep in 'next' for the remainder of the cycle.
371 * fc/mergetool-prompt (2014-04-24) 2 commits
372  - mergetool: document the default for --[no-]prompt
373   (merged to 'next' on 2014-04-22 at dcaec94)
374  + mergetool: run prompt only if guessed tool
376  mergetool.prompt used to default to 'true', always causing a confirmation
377  "do you really want to run the tool on this path" to be shown.
379  Among the two purposes the prompt serves, ignore the use case to
380  confirm that the user wants to view particular path with the named
381  tool, and make the prompt only to confirm the choice of the tool
382  made by autodetection and defaulting.  For those who configured the
383  tool explicitly, the prompt shown for the latter purpose is simply
384  annoying.
386  Strictly speaking, this is a backward incompatible change and the
387  users need to explicitly set the variable to 'true' if they want to
388  resurrect the now-ignored use case.
390  Will merge to 'next' and keep it there for the remainder of the cycle.
393 * fc/mergetools-vimdiff3 (2014-04-22) 1 commit
394   (merged to 'next' on 2014-04-22 at d843e75)
395  + mergetools: add vimdiff3 mode
397  Will keep in 'next' for the remainder of the cycle.
400 * km/git-svn-workaround-older-getopt-long (2014-04-23) 1 commit
401   (merged to 'next' on 2014-04-23 at 3f35586)
402  + t9117: use --prefix "" instead of --prefix=""
404  Will merge to 'master' by -rc2.
407 * lr/git-run-setup-gently (2014-04-22) 1 commit
408   (merged to 'next' on 2014-04-22 at 5c2523f)
409  + git.c: treat RUN_SETUP_GENTLY and RUN_SETUP as mutually exclusive
411  Will keep in 'next' for the remainder of the cycle.
414 * mk/doc-git-gui-display-untracked (2014-04-21) 1 commit
415   (merged to 'next' on 2014-04-22 at 385d39a)
416  + Documentation: git-gui: describe gui.displayuntracked
418  Will merge to 'master' by -rc2.
421 * rh/prompt-pcmode-avoid-eval-on-refname (2014-04-22) 1 commit
422   (merged to 'next' on 2014-04-22 at 3a1506f)
423  + git-prompt.sh: don't put unsanitized branch names in $PS1
425  Will merge to 'master' by -rc2.
428 * fc/publish-vs-upstream (2014-04-21) 8 commits
429  - sha1_name: add support for @{publish} marks
430  - sha1_name: simplify track finding
431  - sha1_name: cleanup interpret_branch_name()
432  - branch: display publish branch
433  - push: add --set-publish option
434  - branch: add --set-publish-to option
435  - Add concept of 'publish' branch
436  - t5516 (fetch-push): fix test restoration
438  Add branch@{publish}; it seems that this is somewhat different from
439  Ram and Peff started working on.  There were many discussion
440  messages going back and forth but it does not appear that the
441  design issues have been worked out among participants yet.
444 * jl/git-gui-show-added-submodule-changes (2014-04-15) 1 commit
445  - git-gui: show staged submodules regardless of ignore config
447  Tentatively queued what I expect to receive via Pat Thoyts.
450 * jl/gitk-show-added-submodule-changes (2014-04-15) 3 commits
451  - gitk: show staged submodules regardless of ignore config
452  - gitk: Merge branch 'new' of https://github.com/vnwildman/gitk
453  - l10n: Init Vietnamese translation
455  Tentatively queued what I expect to receive via Paul Mackerras.
458 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
459  - git-rebase: print name of rev when using shorthand
461  Teach "git rebase -" to report the concrete name of the branch
462  (i.e. the previous one).
464  But it stops short and does not do the same for "git rebase @{-1}".
465  Expecting a reroll.
468 * ef/send-email-absolute-path-to-the-command (2014-04-23) 2 commits
469   (merged to 'next' on 2014-04-23 at a657e5e)
470  + send-email: windows drive prefix (e.g. C:) appears only at the beginning
471   (merged to 'next' on 2014-04-21 at 43bebb5)
472  + send-email: recognize absolute path on Windows
474  Will keep in 'next' for the remainder of the cycle.
477 * jh/submodule-tests (2014-04-17) 1 commit
478  - t7410: 210 tests for various 'git submodule update' scenarios
481 * rs/ref-update-check-errors-early (2014-04-17) 2 commits
482   (merged to 'next' on 2014-04-21 at acc62aa)
483  + commit.c: check for lock error and return early
484  + sequencer.c: check for lock failure and bail early in fast_forward_to
486  Will keep in 'next' for the remainder of the cycle.
489 * sk/svn-parse-datestamp (2014-04-17) 1 commit
490   (merged to 'next' on 2014-04-21 at 5ff519f)
491  + SVN.pm::parse_svn_date: allow timestamps with a single-digit hour
493  Will keep in 'next' for the remainder of the cycle.
496 * nd/index-pack-one-fd-per-thread (2014-04-16) 1 commit
497   (merged to 'next' on 2014-04-16 at b38d5a9)
498  + index-pack: work around thread-unsafe pread()
500  Enable threaded index-pack on platforms without thread-unsafe
501  pread() emulation.
503  Will keep in 'next' for the remainder of the cycle.
506 * ym/fix-opportunistic-index-update-race (2014-04-10) 2 commits
507   (merged to 'next' on 2014-04-16 at cb92f4f)
508  + read-cache.c: verify index file before we opportunistically update it
509  + wrapper.c: add xpread() similar to xread()
511  Read-only operations such as "git status" that internally refreshes
512  the index write out the refreshed index to the disk to optimize
513  future accesses to the working tree, but this could race with a
514  "read-write" operation that modify the index while it is running.
515  Detect such a race and avoid overwriting the index.
517  Duy raised a good point that we may need to do the same for the
518  normal writeout codepath, not just the "opportunistic" update
519  codepath.  While that is true, nobody sane would be running two
520  simultaneous operations that are clearly write-oriented competing
521  with each other against the same index file.  So in that sense that
522  can be done as a less urgent follow-up for this topic.
524  Will keep in 'next' for the remainder of the cycle.
527 * jl/status-added-submodule-is-never-ignored (2014-04-07) 2 commits
528  - commit -m: commit staged submodules regardless of ignore config
529  - status/commit: show staged submodules regardless of ignore config
531  There also are a few patches Ronald Weiss and Jens are working on
532  polishing around this topic, and a patch from Jens each for gitk
533  and git-gui.
535  Waiting for the dust to settle until picking them up all.
538 * mh/lockfile (2014-04-15) 25 commits
539  - trim_last_path_elm(): replace last_path_elm()
540  - resolve_symlink(): take a strbuf parameter
541  - resolve_symlink(): use a strbuf for internal scratch space
542  - change lock_file::filename into a strbuf
543  - commit_lock_file(): use a strbuf to manage temporary space
544  - try_merge_strategy(): use a statically-allocated lock_file object
545  - try_merge_strategy(): remove redundant lock_file allocation
546  - struct lock_file: declare some fields volatile
547  - lockfile: avoid transitory invalid states
548  - commit_lock_file(): die() if called for unlocked lockfile object
549  - commit_lock_file(): inline temporary variable
550  - remove_lock_file(): call rollback_lock_file()
551  - lock_file(): exit early if lockfile cannot be opened
552  - write_packed_entry_fn(): convert cb_data into a (const int *)
553  - prepare_index(): declare return value to be (const char *)
554  - delete_ref_loose(): don't muck around in the lock_file's filename
555  - cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
556  - lockfile.c: document the various states of lock_file objects
557  - lock_file(): always add lock_file object to lock_file_list
558  - hold_lock_file_for_append(): release lock on errors
559  - lockfile: unlock file if lockfile permissions cannot be adjusted
560  - rollback_lock_file(): set fd to -1
561  - rollback_lock_file(): do not clear filename redundantly
562  - api-lockfile: expand the documentation
563  - unable_to_lock_die(): rename function from unable_to_lock_index_die()
565  Refactor and fix corner-case bugs in the lockfile API, all looked
566  sensible.
568  Expecting a reroll.
571 * mt/patch-id-stable (2014-03-31) 3 commits
572   (merged to 'next' on 2014-04-08 at 0188d44)
573  + patch-id-test: test --stable and --unstable flags
574  + patch-id: document new behaviour
575  + patch-id: make it stable against hunk reordering
577  Introduce a new way to compute patch-id for a patch that is not
578  affected by the order of the paths that appear in the input.
580  This changes the generated patch-id unless the users add an extra
581  option to their command lines, but I deliberately queued the series
582  to 'next' without reverting that compatibility breakage to see if
583  people complain.  It could be that we do not have to worry about
584  the default flipping at all.  We'll see.
586  Will keep in 'next' for the remainder of the cycle.
589 * mh/ref-transaction (2014-04-07) 27 commits
590   (merged to 'next' on 2014-04-16 at a99f84d)
591  + ref_transaction_commit(): work with transaction->updates in place
592  + struct ref_update: add a type field
593  + struct ref_update: add a lock field
594  + ref_transaction_commit(): simplify code using temporary variables
595  + struct ref_update: store refname as a FLEX_ARRAY
596  + struct ref_update: rename field "ref_name" to "refname"
597  + refs: remove API function update_refs()
598  + update-ref --stdin: reimplement using reference transactions
599  + refs: add a concept of a reference transaction
600  + update-ref --stdin: harmonize error messages
601  + update-ref --stdin: improve the error message for unexpected EOF
602  + t1400: test one mistake at a time
603  + update-ref --stdin -z: deprecate interpreting the empty string as zeros
604  + update-ref.c: extract a new function, parse_next_sha1()
605  + t1400: test that stdin -z update treats empty <newvalue> as zeros
606  + update-ref --stdin: simplify error messages for missing oldvalues
607  + update-ref --stdin: make error messages more consistent
608  + update-ref --stdin: improve error messages for invalid values
609  + update-ref.c: extract a new function, parse_refname()
610  + parse_cmd_verify(): copy old_sha1 instead of evaluating <oldvalue> twice
611  + update-ref --stdin: read the whole input at once
612  + update_refs(): fix constness
613  + refs.h: rename the action_on_err constants
614  + t1400: add some more tests involving quoted arguments
615  + parse_arg(): really test that argument is properly terminated
616  + t1400: provide more usual input to the command
617  + t1400: fix name and expected result of one test
618  (this branch is used by rs/ref-transaction.)
620  Update "update-ref --stdin [-z]" and then introduce a transactional
621  support for (multi-)reference updates.
623  Will keep in 'next' for the remainder of the cycle.
626 * jc/apply-ignore-whitespace (2014-03-26) 1 commit
627   (merged to 'next' on 2014-04-04 at 53779a7)
628  + apply --ignore-space-change: lines with and without leading whitespaces do not match
630  "--ignore-space-change" option of "git apply" ignored the
631  spaces at the beginning of line too aggressively, which is
632  inconsistent with the option of the same name "diff" and "git diff"
633  have.
635  Will keep in 'next' for the remainder of the cycle.
638 * as/grep-fullname-config (2014-03-20) 1 commit
639   (merged to 'next' on 2014-03-28 at 810a076)
640  + grep: add grep.fullName config variable
642  Add a configuration variable to force --full-name to be default for
643  "git grep".
645  This may cause regressions on scripted users that do not expect
646  this new behaviour.
648  Will keep in 'next' for the remainder of the cycle.
651 * nd/multiple-work-trees (2014-03-25) 28 commits
652  - count-objects: report unused files in $GIT_DIR/repos/...
653  - gc: support prune --repos
654  - gc: style change -- no SP before closing bracket
655  - prune: strategies for linked checkouts
656  - checkout: detach if the branch is already checked out elsewhere
657  - checkout: clean up half-prepared directories in --to mode
658  - checkout: support checking out into a new working directory
659  - use new wrapper write_file() for simple file writing
660  - wrapper.c: wrapper to open a file, fprintf then close
661  - setup.c: support multi-checkout repo setup
662  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
663  - setup.c: convert check_repository_format_gently to use strbuf
664  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
665  - setup.c: convert is_git_directory() to use strbuf
666  - git-stash: avoid hardcoding $GIT_DIR/logs/....
667  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
668  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
669  - $GIT_COMMON_DIR: a new environment variable
670  - commit: use SEQ_DIR instead of hardcoding "sequencer"
671  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
672  - reflog: avoid constructing .lock path with git_path
673  - *.sh: respect $GIT_INDEX_FILE
674  - git_path(): be aware of file relocation in $GIT_DIR
675  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
676  - path.c: rename vsnpath() to do_git_path()
677  - git_snpath(): retire and replace with strbuf_git_path()
678  - path.c: make get_pathname() call sites return const char *
679  - path.c: make get_pathname() return strbuf instead of static buffer
681  A replacement for contrib/workdir/git-new-workdir that does not
682  rely on symbolic links and make sharing of objects and refs safer
683  by making the borrowee and borrowers aware of each other.
685  Will hold.
688 * ks/tree-diff-nway (2014-04-09) 20 commits
689   (merged to 'next' on 2014-04-09 at c17228e)
690  + mingw: activate alloca
691   (merged to 'next' on 2014-04-08 at 6b74773)
692  + combine-diff: speed it up, by using multiparent diff tree-walker directly
693  + tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
694  + Portable alloca for Git
695   (merged to 'next' on 2014-03-31 at 16a7bd4)
696  + tree-diff: reuse base str(buf) memory on sub-tree recursion
697  + tree-diff: no need to call "full" diff_tree_sha1 from show_path()
698  + tree-diff: rework diff_tree interface to be sha1 based
699  + tree-diff: diff_tree() should now be static
700  + tree-diff: remove special-case diff-emitting code for empty-tree cases
701   (merged to 'next' on 2014-03-25 at cfcbdac)
702  + tree-diff: simplify tree_entry_pathcmp
703  + tree-diff: show_path prototype is not needed anymore
704  + tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
705  + tree-diff: move all action-taking code out of compare_tree_entry()
706  + tree-diff: don't assume compare_tree_entry() returns -1,0,1
707   (merged to 'next' on 2014-03-21 at d872679)
708  + tree-diff: consolidate code for emitting diffs and recursion in one place
709  + tree-diff: show_tree() is not needed
710  + tree-diff: no need to pass match to skip_uninteresting()
711  + tree-diff: no need to manually verify that there is no mode change for a path
712  + combine-diff: move changed-paths scanning logic into its own function
713  + combine-diff: move show_log_first logic/action out of paths scanning
715  Instead of running N pair-wise diff-trees when inspecting a
716  N-parent merge, find the set of paths that were touched by walking
717  N+1 trees in parallel.  These set of paths can then be turned into
718  N pair-wise diff-tree results to be processed through rename
719  detections and such.  And N=2 case nicely degenerates to the usual
720  2-way diff-tree, which is very nice.
722  Will keep in 'next' for the remainder of the cycle.
725 * cc/interpret-trailers (2014-04-07) 12 commits
726  - trailer: add blank line before the trailers if needed
727  - Documentation: add documentation for 'git interpret-trailers'
728  - trailer: add tests for commands in config file
729  - trailer: execute command from 'trailer.<name>.command'
730  - trailer: add tests for "git interpret-trailers"
731  - trailer: add interpret-trailers command
732  - trailer: put all the processing together and print
733  - trailer: parse trailers from stdin
734  - trailer: process command line trailer arguments
735  - trailer: read and process config information
736  - trailer: process trailers from stdin and arguments
737  - trailer: add data structures and basic functions
739  A new filter to programatically edit the tail end of the commit log
740  messages.
742  I was planning to merge it to 'next' and keep it there for the
743  remainder of the cycle, but it appears that there still will be
744  another round of reroll, at least for the documentation?