What's cooking (2014/05 #03)
[git.git] / whats-cooking.txt
blobd769487266372699e198975c06c2d1cf64b359c3
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (May 2014, #03; Tue, 13)
4 X-master-at: 6308767f0bb58116cb405e1f4f77f5dfc1589920
5 X-next-at: 7b9918a45049db8fa9b101e28a314928c31e0b5f
7 What's cooking in git.git (May 2014, #03; Tue, 13)
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-rc3, which is in sync
15 with v1.9.3 with respect to bugfixes that was also tagged today.
16 Hopefully we can tag v2.0.0 final late next week.
18 You can find the changes described here in the integration branches
19 of the repositories listed at
21     http://git-blame.blogspot.com/p/git-public-repositories.html
23 --------------------------------------------------
24 [New Topics]
26 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
27  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
28  - git-add--interactive: Preserve diff heading when splitting hunks
30  Waiting for a reroll.
33 * jk/do-not-run-httpd-tests-as-root (2014-05-12) 1 commit
34  - t/lib-httpd: require SANITY prereq
36  Will merge to 'next' and keep it there for the rest of this cycle.
39 * jk/index-pack-report-missing (2014-05-12) 1 commit
40  - index-pack: distinguish missing objects from type errors
42  Will merge to 'next' and keep it there for the rest of this cycle.
45 * tb/unicode-6.3-zero-width (2014-05-12) 2 commits
46  - utf8: make it easier to auto-update git_wcwidth()
47  - utf8.c: use a table for double_width
49  Update the logic to compute the display width needed for utf8
50  strings and allow us to more easily maintain the tables used in
51  that logic.
53  We may want to let the users choose if codepoints with ambiguous
54  widths are treated as a double or single width in a follow-up patch.
56  Will merge to 'next' and keep it there for the rest of this cycle.
59 * mk/show-s-no-extra-blank-line-for-merges (2014-05-13) 3 commits
60  - fixup! git-show: fix 'git show -s' to not add extra terminator after merge commit
61  - t: git-show: adapt tests to fixed 'git show'
62  - git-show: fix 'git show -s' to not add extra terminator after merge commit
64  Waiting for a reroll.
67 * wk/doc-clarify-upstream (2014-05-13) 1 commit
68  - Documentation: mention config sources for @{upstream}
70  Will merge to 'next' and keep it there for the rest of this cycle.
72 --------------------------------------------------
73 [Stalled]
75 * tr/merge-recursive-index-only (2014-02-05) 3 commits
76  - merge-recursive: -Xindex-only to leave worktree unchanged
77  - merge-recursive: internal flag to avoid touching the worktree
78  - merge-recursive: remove dead conditional in update_stages()
79  (this branch is used by tr/remerge-diff.)
81  Will hold.
84 * tr/remerge-diff (2014-02-26) 5 commits
85  . log --remerge-diff: show what the conflict resolution changed
86  . name-hash: allow dir hashing even when !ignore_case
87  . merge-recursive: allow storing conflict hunks in index
88  . revision: fold all merge diff variants into an enum merge_diff_mode
89  . combine-diff: do not pass revs->dense_combined_merges redundantly
90  (this branch uses tr/merge-recursive-index-only.)
92  "log -p" output learns a new way to let users inspect a merge
93  commit by showing the differences between the automerged result
94  with conflicts the person who recorded the merge would have seen
95  and the final conflict resolution that was recorded in the merge.
97  Needs to be rebased, now kb/fast-hashmap topic is in.
100 * jk/makefile (2014-02-05) 16 commits
101  - FIXUP
102  - move LESS/LV pager environment to Makefile
103  - Makefile: teach scripts to include make variables
104  - FIXUP
105  - Makefile: auto-build C strings from make variables
106  - Makefile: drop *_SQ variables
107  - FIXUP
108  - Makefile: add c-quote helper function
109  - Makefile: introduce sq function for shell-quoting
110  - Makefile: always create files via make-var
111  - Makefile: store GIT-* sentinel files in MAKE/
112  - Makefile: prefer printf to echo for GIT-*
113  - Makefile: use tempfile/mv strategy for GIT-*
114  - Makefile: introduce make-var helper function
115  - Makefile: fix git-instaweb dependency on gitweb
116  - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
118  Simplify the Makefile rules and macros that exist primarily for
119  quoting purposes, and make it easier to robustly express the
120  dependency rules.
122  Expecting a reroll.
125 * po/everyday-doc (2014-01-27) 1 commit
126  - Make 'git help everyday' work
128  This may make the said command to emit something, but the source is
129  not meant to be formatted into a manual pages to begin with, and
130  also its contents are a bit stale.  It may be a good first step in
131  the right direction, but needs more work to at least get the
132  mark-up right before public consumption.
134  Will hold.
137 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
138  . t1507 (rev-parse-upstream): fix typo in test title
139  . implement @{publish} shorthand
140  . branch_get: provide per-branch pushremote pointers
141  . branch_get: return early on error
142  . sha1_name: refactor upstream_mark
144  Give an easier access to the tracking branches from "other" side in
145  a triangular workflow by introducing B@{publish} that works in a
146  similar way to how B@{upstream} does.
148  Meant to be used as a basis for whatever Ram wants to build on.
150  Ejected from 'pu' to make room for fc/publish-vs-upstream topic.
153 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
154  - merge: drop unused arg from abort_commit method signature
155  - merge: make prepare_to_commit responsible for write_merge_state
156  - t7505: ensure cleanup after hook blocks merge
157  - t7505: add missing &&
159  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
160  run during "git merge".  The log message stresses too much on one
161  hook, prepare-commit-msg, but it would equally apply to other hooks
162  like post-merge, I think.
164  Waiting for a reroll.
167 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
168  - Teach checkout to recursively checkout submodules
169  - submodule: teach unpack_trees() to update submodules
170  - submodule: teach unpack_trees() to repopulate submodules
171  - submodule: teach unpack_trees() to remove submodule contents
172  - submodule: prepare for recursive checkout of submodules
174  An RFCv2 exists ($gmane/241455) with sizable review comments.
175  Expecting a reroll.
178 * jc/graph-post-root-gap (2013-12-30) 3 commits
179  - WIP: document what we want at the end
180  - graph: remove unused code a bit
181  - graph: stuff the current commit into graph->columns[]
183  This was primarily a RFH ($gmane/239580).
186 * np/pack-v4 (2013-09-18) 90 commits
187  . packv4-parse.c: add tree offset caching
188  . t1050: replace one instance of show-index with verify-pack
189  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
190  . unpack-objects: decode v4 trees
191  . unpack-objects: allow to save processed bytes to a buffer
192  - ...
194  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
195  primarily for wider distribution of the preview edition.
197  Needs to be rebased, now the pack-bitmap series is in.
200 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
201  - perf-lib: add test_perf_cleanup target
202  - perf-lib: split starting the test from the execution
204  Add test_perf_cleanup shell function to the perf suite, that allows
205  the script writers to define a test with a clean-up action.
207  Will hold.
210 * jc/show-branch (2014-03-24) 5 commits
211  - show-branch: use commit slab to represent bitflags of arbitrary width
212  - show-branch.c: remove "all_mask"
213  - show-branch.c: abstract out "flags" operation
214  - show-branch.c: lift all_mask/all_revs to a global static
215  - show-branch.c: update comment style
217  Waiting for the final step to lift the hard-limit before sending it out.
219 --------------------------------------------------
220 [Cooking]
222 * dk/raise-core-deltabasecachelimit (2014-05-06) 1 commit
223   (merged to 'next' on 2014-05-12 at 97ec92a)
224  + Bump core.deltaBaseCacheLimit to 96m
226  The original 16 MiB limit for the in-core delta-base-cache
227  introduced in 18bdec11 (Limit the size of the new delta_base_cache,
228  2007-03-19) is turning too small.
230  Will keep in 'next' for the remainder of the cycle.
233 * fc/remote-hg-fixes-for-hg-3.0 (2014-05-08) 5 commits
234  - [DONTMERGE-not signed-off] remote-hg: work with older versions of mercurial
235  - remote-hg: add support for hg v3.0
236  - t: remote-hg: trivial cleanups and fixes
237  - t: remote-hg: add file operation tests
238  - remote-hg: add more tests
240  Update remote-hg helper to work with newer versions of Mercurial,
241  and fixes an incompatibility with older versions triggered by new
242  tests.
245 * fc/status-printf-squelch-format-zero-length-warnings (2014-05-07) 1 commit
246   (merged to 'next' on 2014-05-12 at 6b04e23)
247  + silence a bunch of format-zero-length warnings
249  Will keep in 'next' for the remainder of the cycle.
252 * jk/grep-tell-run-command-to-cd-when-running-pager (2014-05-07) 1 commit
253   (merged to 'next' on 2014-05-12 at 065cb22)
254  + grep: use run-command's "dir" option for --open-files-in-pager
256  Will keep in 'next' for the remainder of the cycle.
259 * jk/squelch-compiler-warning-from-funny-error-macro (2014-05-06) 2 commits
260   (merged to 'next' on 2014-05-12 at d9daf8d)
261  + let clang use the constant-return error() macro
262  + inline constant return from error() function
264  Will keep in 'next' for the remainder of the cycle.
267 * rs/reflog-exists (2014-05-08) 2 commits
268   (merged to 'next' on 2014-05-12 at 24a1d01)
269  + checkout.c: use ref_exists instead of file_exist
270  + refs.c: add new functions reflog_exists and delete_reflog
272  Will keep in 'next' for the remainder of the cycle.
275 * tg/tag-state-tag-name-in-editor-hints (2014-05-07) 1 commit
276   (merged to 'next' on 2014-05-12 at 0b7db32)
277  + builtin/tag.c: show tag name to hint in the message editor
279  Will keep in 'next' for the remainder of the cycle.
282 * sk/submodules-absolute-path-on-windows (2014-05-08) 1 commit
283  - Revert "submodules: fix ambiguous absolute paths under Windows"
285  Will merge to 'next' and keep it there for the rest of this cycle.
288 * jn/contrib-remove-diffall (2014-05-09) 1 commit
289   (merged to 'next' on 2014-05-12 at 416009e)
290  + contrib: remove git-diffall
292  Spring cleaning of contrib/.
294  Will keep in 'next' for the remainder of the cycle.
297 * jn/contrib-remove-vim (2014-05-09) 1 commit
298   (merged to 'next' on 2014-05-12 at 9e727c8)
299  + contrib: remove vim support instructions
301  Spring cleaning of contrib/.
303  Will keep in 'next' for the remainder of the cycle.
306 * ss/howto-manage-trunk (2014-05-09) 8 commits
307  - SQUASH describe what the picture shows
308  - SQUASH minor typographic fix
309  - SQUASH clarify the informal description of 'trunk'
310  - SQUASH typeset literal commands with `git command`
311  - SQUASH use a better URL
312  - SQUASH mark-up fix
313  - SQUASH typofix
314  - How to keep a project's canonical history correct.
317 * wg/svn-fe-style-fixes (2014-05-12) 1 commit
318   (merged to 'next' on 2014-05-12 at 88c0e0d)
319  + svn-fe: conform to pep8
321  Will keep in 'next' for the remainder of the cycle.
324 * bg/strbuf-trim (2014-05-06) 2 commits
325   (merged to 'next' on 2014-05-07 at 978f378)
326  + api-strbuf.txt: add docs for _trim and _ltrim
327  + strbuf: use _rtrim and _ltrim in strbuf_trim
329  Will keep in 'next' for the remainder of the cycle.
332 * cb/byte-order (2014-05-02) 2 commits
333   (merged to 'next' on 2014-05-07 at f55c040)
334  + compat/bswap.h: restore preference __BIG_ENDIAN over BIG_ENDIAN
335  + compat/bswap.h: detect endianness on more platforms that don't use BYTE_ORDER
337  Compatibility enhancement for Solaris.
339  Will keep in 'next' for the remainder of the cycle.
342 * dt/api-doc-setup-gently (2014-04-30) 1 commit
343   (merged to 'next' on 2014-05-07 at 6054b08)
344  + docs: document RUN_SETUP_GENTLY and clarify RUN_SETUP
346  Will keep in 'next' for the remainder of the cycle.
349 * dt/merge-recursive-case-insensitive (2014-05-08) 2 commits
350   (merged to 'next' on 2014-05-12 at 820d524)
351  + mv: allow renaming to fix case on case insensitive filesystems
352  + merge-recursive.c: fix case-changing merge bug
354  On a case insensitive filesystem, merge-recursive incorrectly
355  deleted the file that is to be renamed to a name that is the same
356  except for case differences.
358  Will keep in 'next' for the remainder of the cycle.
361 * ew/config-protect-mode (2014-05-06) 1 commit
362   (merged to 'next' on 2014-05-07 at 8443093)
363  + config: preserve config file permissions on edits
365  Will keep in 'next' for the remainder of the cycle.
368 * fc/rerere-conflict-style (2014-04-30) 1 commit
369   (merged to 'next' on 2014-05-07 at bde7fd0)
370  + rerere: fix for merge.conflictstyle
372  Will keep in 'next' for the remainder of the cycle.
375 * jc/coding-guidelines (2014-05-02) 8 commits
376   (merged to 'next' on 2014-05-12 at e1fcf62)
377  + CodingGuidelines: on splitting a long line
378  + CodingGuidelines: on comparison
379  + CodingGuidelines: do not call the conditional statement "if()"
380  + CodingGuidelines: give an example for shell function preamble
381  + CodingGuidelines: give an example for control statements
382  + CodingGuidelines: give an example for redirection
383  + CodingGuidelines: give an example for case/esac statement
384  + CodingGuidelines: once it is in, it is not worth the code churn
386  Will keep in 'next' for the remainder of the cycle.
389 * jd/subtree (2014-05-13) 6 commits
390  - contrib/subtree: allow adding an annotated tag
391   (merged to 'next' on 2014-05-07 at 81b375d)
392  + contrib/subtree/Makefile: clean up rule for "clean"
393  + contrib/subtree/Makefile: clean up rules to generate documentation
394  + contrib/subtree/Makefile: s/libexecdir/gitexecdir/
395  + contrib/subtree/Makefile: use GIT-VERSION-FILE
396  + contrib/subtree/Makefile: scrap unused $(gitdir)
398  Will keep in 'next' for the remainder of the cycle.
401 * jk/commit-date-approxidate (2014-05-02) 4 commits
402   (merged to 'next' on 2014-05-07 at 7ec8f7d)
403  + commit: accept more date formats for "--date"
404  + commit: print "Date" line when the user has set date
405  + pretty: make show_ident_date public
406  + commit: use split_ident_line to compare author/committer
408  Will keep in 'next' for the remainder of the cycle.
411 * mm/pager-less-sans-S (2014-05-07) 1 commit
412   (merged to 'next' on 2014-05-07 at 66ce999)
413  + pager: remove 'S' from $LESS by default
415  Will keep in 'next' for the remainder of the cycle.
418 * sk/msvc-dynlink-crt (2014-05-06) 1 commit
419   (merged to 'next' on 2014-05-07 at 20f4839)
420  + MSVC: link dynamically to the CRT
422  Will keep in 'next' for the remainder of the cycle.
425 * cc/replace-edit (2014-04-29) 4 commits
426   (merged to 'next' on 2014-05-12 at 71449bf)
427  + replace: add --edit option
428  + replace: factor object resolution out of replace_object
429  + replace: use OPT_CMDMODE to handle modes
430  + replace: refactor command-mode determination
432  "git replace" learns a new "--edit" option.
434  Will keep in 'next' for the remainder of the cycle.
437 * da/imap-send-use-credential-helper (2014-04-29) 1 commit
438   (merged to 'next' on 2014-05-12 at b0698a5)
439  + imap-send: use git-credential
441  "git imap-send" learns to ask the credential helper for
442  authentication material.
444  Will keep in 'next' for the remainder of the cycle.
447 * dk/blame-reorg (2014-04-28) 1 commit
448  - blame: large-scale performance rewrite
450  Will merge to 'next' and keep it there for the rest of this cycle.
453 * je/pager-do-not-recurse (2014-04-28) 1 commit
454   (merged to 'next' on 2014-05-12 at 32de470)
455  + pager: do allow spawning pager recursively
457  We used to unconditionally disabled the pager in the pager process
458  we spawn to feed out output, but that prevents people who want to
459  run less within less from doing so.
461  Will keep in 'next' for the remainder of the cycle.
464 * jk/commit-C-pick-empty (2014-04-28) 1 commit
465   (merged to 'next' on 2014-05-12 at c187e1e)
466  + commit: do not complain of empty messages from -C
468  "git commit --allow-empty-message -C $commit" did not work when the
469  commit did not have any log message.
471  Will keep in 'next' for the remainder of the cycle.
474 * jk/utf8-switch-between-nfd-and-nfc (2014-04-29) 1 commit
475   (merged to 'next' on 2014-05-12 at 948823c)
476  + t3910: show failure of core.precomposeunicode with decomposed filenames
478  Document a known breakage with a test.
480  Will keep in 'next' for the remainder of the cycle.
483 * mt/send-email-cover-to-cc (2014-04-29) 2 commits
484   (merged to 'next' on 2014-05-12 at b696006)
485  + test/send-email: to-cover, cc-cover tests
486  + git-send-email: two new options: to-cover, cc-cover
488  Will keep in 'next' for the remainder of the cycle.
491 * nd/split-index (2014-04-29) 33 commits
492  - SQUASH???
493  - t1700: new tests for split-index mode
494  - t2104: make sure split index mode is off for the version test
495  - read-cache: force split index mode with GIT_TEST_SPLIT_INDEX
496  - read-tree: note about dropping split-index mode or index version
497  - read-tree: force split-index mode off on --index-output
498  - rev-parse: add --shared-index-path to get shared index path
499  - update-index --split-index: do not split if $GIT_DIR is read only
500  - update-index: new options to enable/disable split index mode
501  - split-index: strip pathname of on-disk replaced entries
502  - split-index: do not invalidate cache-tree at read time
503  - split-index: the reading part
504  - split-index: the writing part
505  - read-cache: mark updated entries for split index
506  - read-cache: save deleted entries in split index
507  - read-cache: mark new entries for split index
508  - read-cache: split-index mode
509  - read-cache: save index SHA-1 after reading
510  - entry.c: update cache_changed if refresh_cache is set in checkout_entry()
511  - cache-tree: mark istate->cache_changed on prime_cache_tree()
512  - cache-tree: mark istate->cache_changed on cache tree update
513  - cache-tree: mark istate->cache_changed on cache tree invalidation
514  - unpack-trees: be specific what part of the index has changed
515  - resolve-undo: be specific what part of the index has changed
516  - update-index: be specific what part of the index has changed
517  - read-cache: be specific what part of the index has changed
518  - read-cache: be strict about "changed" in remove_marked_cache_entries()
519  - read-cache: store in-memory flags in the first 12 bits of ce_flags
520  - read-cache: relocate and unexport commit_locked_index()
521  - read-cache: new API write_locked_index instead of write_index/write_cache
522  - sequencer: do not update/refresh index if the lock cannot be held
523  - ewah: delete unused ewah_read_mmap_native declaration
524  - ewah: fix constness of ewah_read_mmap
526  The tip one is a reminder that needs to be squashed to squelch
527  a "may be unused" compilation warning that is a false positive.
530 * tl/relax-in-poll-emulation (2014-04-29) 1 commit
531   (merged to 'next' on 2014-05-12 at 9369b08)
532  + compat/poll: sleep 1 millisecond to avoid busy wait
534  Will keep in 'next' for the remainder of the cycle.
537 * bc/blame-crlf-test (2014-05-08) 1 commit
538  - blame: correctly handle files regardless of autocrlf
540  If a file contained CRLF line endings in a repository with
541  core.autocrlf=input, then blame always marked lines as "Not
542  Committed Yet", even if they were unmodified.
544  Will merge to 'next' and keep it there for the rest of this cycle.
547 * rs/ref-transaction (2014-04-29) 27 commits
548  - refs.c: make lock_ref_sha1 static
549  - refs.c: make write_ref_sha1 static
550  - walker.c: use ref transaction for ref updates
551  - fast-import.c: use a ref transaction when dumping tags
552  - receive-pack.c: use a reference transaction for updating the refs
553  - fetch.c: use a single ref transaction for all ref updates
554  - fetch.c: change s_update_ref to use a ref transaction
555  - fetch.c: clear errno before calling functions that might set it
556  - refs.c: ref_transaction_commit should not free the transaction
557  - refs.c: free the transaction before returning when number of updates is 0
558  - refs.c: change update_ref to use a transaction
559  - branch.c: use ref transaction for all ref updates
560  - fast-import.c: change update_branch to use ref transactions
561  - sequencer.c: use ref transactions for all ref updates
562  - commit.c: use ref transactions for updates
563  - replace.c: use the ref transaction functions for updates
564  - tag.c: use ref transactions when doing updates
565  - refs.c: ref_transaction_delete to check for error and return status
566  - refs.c: change ref_transaction_create to do error checking and return status
567  - refs.c: change ref_transaction_update() to do error checking and return status
568  - refs.c: remove the onerr argument to ref_transaction_commit
569  - refs.c: make update_ref_write update a strbuf on failure
570  - update-ref.c: log transaction error from the update_ref
571  - refs.c: make ref_update_reject_duplicates take a strbuf argument for errors
572  - refs.c: add a strbuf argument to ref_transaction_commit for error logging
573  - refs.c: allow passing NULL to ref_transaction_free
574  - refs.c: constify the sha arguments for ref_transaction_create|delete|update
575  (this branch uses mh/ref-transaction.)
577  Updates most of the callsites to write_sha1_ref(), the low-level
578  mechanism to update a ref, to use the ref-transaction API.
580  Expecting a reroll.
583 * ep/shell-command-substitution (2014-04-30) 41 commits
584   (merged to 'next' on 2014-05-07 at e9952c7)
585  + t5000-tar-tree.sh: use the $( ... ) construct for command substitution
586  + t4204-patch-id.sh: use the $( ... ) construct for command substitution
587  + t4119-apply-config.sh: use the $( ... ) construct for command substitution
588  + t4116-apply-reverse.sh: use the $( ... ) construct for command substitution
589  + t4057-diff-combined-paths.sh: use the $( ... ) construct for command substitution
590  + t4038-diff-combined.sh: use the $( ... ) construct for command substitution
591  + t4036-format-patch-signer-mime.sh: use the $( ... ) construct for command substitution
592  + t4014-format-patch.sh: use the $( ... ) construct for command substitution
593  + t4013-diff-various.sh: use the $( ... ) construct for command substitution
594  + t4012-diff-binary.sh: use the $( ... ) construct for command substitution
595  + t4010-diff-pathspec.sh: use the $( ... ) construct for command substitution
596  + t4006-diff-mode.sh: use the $( ... ) construct for command substitution
597  + t3910-mac-os-precompose.sh: use the $( ... ) construct for command substitution
598  + t3905-stash-include-untracked.sh: use the $( ... ) construct for command substitution
599  + t1050-large.sh: use the $( ... ) construct for command substitution
600  + t1020-subdirectory.sh: use the $( ... ) construct for command substitution
601  + t1004-read-tree-m-u-wf.sh: use the $( ... ) construct for command substitution
602  + t1003-read-tree-prefix.sh: use the $( ... ) construct for command substitution
603  + t1002-read-tree-m-u-2way.sh: use the $( ... ) construct for command substitution
604  + t1001-read-tree-m-2way.sh: use the $( ... ) construct for command substitution
605  + t1000-read-tree-m-3way.sh: use the $( ... ) construct for command substitution
606  + t0300-credentials.sh: use the $( ... ) construct for command substitution
607  + t0030-stripspace.sh: use the $( ... ) construct for command substitution
608  + t0026-eol-config.sh: use the $( ... ) construct for command substitution
609  + t0025-crlf-auto.sh: use the $( ... ) construct for command substitution
610  + t0020-crlf.sh: use the $( ... ) construct for command substitution
611  + t0010-racy-git.sh: use the $( ... ) construct for command substitution
612  + t0001-init.sh: use the $( ... ) construct for command substitution
613  + p5302-pack-index.sh: use the $( ... ) construct for command substitution
614  + lib-gpg.sh: use the $( ... ) construct for command substitution
615  + lib-cvs.sh: use the $( ... ) construct for command substitution
616  + lib-credential.sh: use the $( ... ) construct for command substitution
617  + git-web--browse.sh: use the $( ... ) construct for command substitution
618  + git-stash.sh: use the $( ... ) construct for command substitution
619  + git-rebase.sh: use the $( ... ) construct for command substitution
620  + git-rebase--merge.sh: use the $( ... ) construct for command substitution
621  + git-pull.sh: use the $( ... ) construct for command substitution
622  + appp.sh: use the $( ... ) construct for command substitution
623  + t7900-subtree.sh: use the $( ... ) construct for command substitution
624  + test-gitmw-lib.sh: use the $( ... ) construct for command substitution
625  + t9365-continuing-queries.sh: use the $( ... ) construct for command substitution
627  Adjust shell scripts to use $(cmd) instead of `cmd`.
629  Will keep in 'next' for the remainder of the cycle.
632 * ib/test-selectively-run (2014-05-06) 3 commits
633  - test-lib: '--run' to run only specific tests
634  - test-lib: tests skipped by GIT_SKIP_TESTS say so
635  - test-lib: Document short options in t/README
637  Allow specifying only certain individual test pieces to be run
638  using a range notation (e.g. "t1234-test.sh --run='1-4 6 8 9-'").
641 * mm/mediawiki-encoding-fix (2014-04-23) 2 commits
642   (merged to 'next' on 2014-05-02 at 7744361)
643  + git-remote-mediawiki: fix encoding issue for UTF-8 media files
644  + git-remote-mediawiki: allow stop/start-ing the test server
646  Will keep in 'next' for the remainder of the cycle.
649 * sk/tag-contains-wo-recursion (2014-04-25) 1 commit
650   (merged to 'next' on 2014-04-25 at f320750)
651  + git tag --contains: avoid stack overflow
653  Will keep in 'next' for the remainder of the cycle.
656 * fc/remote-helpers-hg-bzr-graduation (2014-04-29) 11 commits
657  - remote-hg: trivial cleanups
658  - remote-hg: make sure we omit multiple heads
659  - git-remote-hg: use internal clone's hgrc
660  - t: remote-hg: split into setup test
661  - remote-hg: properly detect missing contexts
662  - remote-{hg,bzr}: store marks only on success
663  - remote-hg: update to 'public' phase when pushing
664  - remote-hg: fix parsing of custom committer
665   (merged to 'next' on 2014-04-22 at fed170a)
666  + remote-helpers: move tests out of contrib
667  + remote-helpers: move out of contrib
668  + remote-helpers: squelch python import exceptions
670  As there were announcements for these two to be maintained as
671  independent third-party projects ($gmane/248561, $gmane/248583),
672  this topic would need to be discarded after 2.0 final, and copies
673  in contrib/remote-helpers/ may need to be replaced with a README
674  with pointers to their canonical repository.
677 * fc/remote-helper-refmap (2014-04-21) 8 commits
678   (merged to 'next' on 2014-04-22 at fb5a4c2)
679  + transport-helper: remove unnecessary strbuf resets
680  + transport-helper: add support to delete branches
681  + fast-export: add support to delete refs
682  + fast-import: add support to delete refs
683  + transport-helper: add support to push symbolic refs
684  + transport-helper: add support for old:new refspec
685  + fast-export: add new --refspec option
686  + fast-export: improve argument parsing
688  Allow remote-helper/fast-import based transport to rename the refs
689  while transferring the history.
691  Will keep in 'next' for the remainder of the cycle.
694 * jk/external-diff-use-argv-array (2014-04-21) 5 commits
695   (merged to 'next' on 2014-04-22 at e6d92d7)
696  + run_external_diff: refactor cmdline setup logic
697  + run_external_diff: hoist common bits out of conditional
698  + run_external_diff: drop fflush(NULL)
699  + run_external_diff: clean up error handling
700  + run_external_diff: use an argv_array for the environment
702  Code clean-up (and a bugfix which has been merged for 2.0).
704  Will keep in 'next' for the remainder of the cycle.
707 * jx/blame-align-relative-time (2014-04-23) 2 commits
708   (merged to 'next' on 2014-04-23 at 858df39)
709  + blame: dynamic blame_date_width for different locales
710  + blame: fix broken time_buf paddings in relative timestamp
712  "git blame" miscounted number of columns needed to show localized
713  timestamps, resulting in jaggy left-side-edge of the source code
714  lines in its output.
716  Will keep in 'next' for the remainder of the cycle.
719 * fc/merge-default-to-upstream (2014-04-22) 1 commit
720   (merged to 'next' on 2014-04-22 at 4f98483)
721  + merge: enable defaulttoupstream by default
723  "git merge" without argument, even when there is an upstream
724  defined for the current branch, refused to run until
725  merge.defaultToUpstream is set to true. Flip the default of that
726  configuration variable to true.
728  Will keep in 'next' for the remainder of the cycle.
731 * fc/mergetool-prompt (2014-04-24) 2 commits
732   (merged to 'next' on 2014-05-02 at a554691)
733  + mergetool: document the default for --[no-]prompt
734   (merged to 'next' on 2014-04-22 at dcaec94)
735  + mergetool: run prompt only if guessed tool
737  mergetool.prompt used to default to 'true', always causing a confirmation
738  "do you really want to run the tool on this path" to be shown.
740  Among the two purposes the prompt serves, ignore the use case to
741  confirm that the user wants to view particular path with the named
742  tool, and make the prompt only to confirm the choice of the tool
743  made by autodetection and defaulting.  For those who configured the
744  tool explicitly, the prompt shown for the latter purpose is simply
745  annoying.
747  Strictly speaking, this is a backward incompatible change and the
748  users need to explicitly set the variable to 'true' if they want to
749  resurrect the now-ignored use case.
751  Will keep in 'next' for the remainder of the cycle.
754 * fc/mergetools-vimdiff3 (2014-04-22) 1 commit
755   (merged to 'next' on 2014-04-22 at d843e75)
756  + mergetools: add vimdiff3 mode
758  Will keep in 'next' for the remainder of the cycle.
761 * lr/git-run-setup-gently (2014-04-22) 1 commit
762   (merged to 'next' on 2014-04-22 at 5c2523f)
763  + git.c: treat RUN_SETUP_GENTLY and RUN_SETUP as mutually exclusive
765  Will keep in 'next' for the remainder of the cycle.
768 * fc/publish-vs-upstream (2014-04-21) 8 commits
769  - sha1_name: add support for @{publish} marks
770  - sha1_name: simplify track finding
771  - sha1_name: cleanup interpret_branch_name()
772  - branch: display publish branch
773  - push: add --set-publish option
774  - branch: add --set-publish-to option
775  - Add concept of 'publish' branch
776  - t5516 (fetch-push): fix test restoration
778  Add branch@{publish}; it seems that this is somewhat different from
779  Ram and Peff started working on.  There were many discussion
780  messages going back and forth but it does not appear that the
781  design issues have been worked out among participants yet.
784 * jl/git-gui-show-added-submodule-changes (2014-04-15) 1 commit
785  - git-gui: show staged submodules regardless of ignore config
787  Tentatively queued what I expect to receive via Pat Thoyts.
790 * jl/gitk-show-added-submodule-changes (2014-04-15) 3 commits
791  - gitk: show staged submodules regardless of ignore config
792  - gitk: Merge branch 'new' of https://github.com/vnwildman/gitk
793  - l10n: Init Vietnamese translation
795  Tentatively queued what I expect to receive via Paul Mackerras.
798 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
799  - git-rebase: print name of rev when using shorthand
801  Teach "git rebase -" to report the concrete name of the branch
802  (i.e. the previous one).
804  But it stops short and does not do the same for "git rebase @{-1}".
805  Expecting a reroll.
808 * ef/send-email-absolute-path-to-the-command (2014-04-23) 2 commits
809   (merged to 'next' on 2014-04-23 at a657e5e)
810  + send-email: windows drive prefix (e.g. C:) appears only at the beginning
811   (merged to 'next' on 2014-04-21 at 43bebb5)
812  + send-email: recognize absolute path on Windows
814  Will keep in 'next' for the remainder of the cycle.
817 * jh/submodule-tests (2014-04-17) 1 commit
818  - t7410: 210 tests for various 'git submodule update' scenarios
821 * rs/ref-update-check-errors-early (2014-04-17) 2 commits
822   (merged to 'next' on 2014-04-21 at acc62aa)
823  + commit.c: check for lock error and return early
824  + sequencer.c: check for lock failure and bail early in fast_forward_to
826  Will keep in 'next' for the remainder of the cycle.
829 * sk/svn-parse-datestamp (2014-04-17) 1 commit
830   (merged to 'next' on 2014-04-21 at 5ff519f)
831  + SVN.pm::parse_svn_date: allow timestamps with a single-digit hour
833  Will keep in 'next' for the remainder of the cycle.
836 * nd/index-pack-one-fd-per-thread (2014-04-16) 1 commit
837   (merged to 'next' on 2014-04-16 at b38d5a9)
838  + index-pack: work around thread-unsafe pread()
840  Enable threaded index-pack on platforms without thread-unsafe
841  pread() emulation.
843  Will keep in 'next' for the remainder of the cycle.
846 * ym/fix-opportunistic-index-update-race (2014-04-10) 2 commits
847   (merged to 'next' on 2014-04-16 at cb92f4f)
848  + read-cache.c: verify index file before we opportunistically update it
849  + wrapper.c: add xpread() similar to xread()
851  Read-only operations such as "git status" that internally refreshes
852  the index write out the refreshed index to the disk to optimize
853  future accesses to the working tree, but this could race with a
854  "read-write" operation that modify the index while it is running.
855  Detect such a race and avoid overwriting the index.
857  Duy raised a good point that we may need to do the same for the
858  normal writeout codepath, not just the "opportunistic" update
859  codepath.  While that is true, nobody sane would be running two
860  simultaneous operations that are clearly write-oriented competing
861  with each other against the same index file.  So in that sense that
862  can be done as a less urgent follow-up for this topic.
864  Will keep in 'next' for the remainder of the cycle.
867 * jl/status-added-submodule-is-never-ignored (2014-04-07) 2 commits
868  - commit -m: commit staged submodules regardless of ignore config
869  - status/commit: show staged submodules regardless of ignore config
871  There also are a few patches Ronald Weiss and Jens are working on
872  polishing around this topic, and a patch from Jens each for gitk
873  and git-gui.
875  Waiting for the dust to settle until picking them up all.
878 * mh/lockfile (2014-04-15) 25 commits
879  - trim_last_path_elm(): replace last_path_elm()
880  - resolve_symlink(): take a strbuf parameter
881  - resolve_symlink(): use a strbuf for internal scratch space
882  - change lock_file::filename into a strbuf
883  - commit_lock_file(): use a strbuf to manage temporary space
884  - try_merge_strategy(): use a statically-allocated lock_file object
885  - try_merge_strategy(): remove redundant lock_file allocation
886  - struct lock_file: declare some fields volatile
887  - lockfile: avoid transitory invalid states
888  - commit_lock_file(): die() if called for unlocked lockfile object
889  - commit_lock_file(): inline temporary variable
890  - remove_lock_file(): call rollback_lock_file()
891  - lock_file(): exit early if lockfile cannot be opened
892  - write_packed_entry_fn(): convert cb_data into a (const int *)
893  - prepare_index(): declare return value to be (const char *)
894  - delete_ref_loose(): don't muck around in the lock_file's filename
895  - cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
896  - lockfile.c: document the various states of lock_file objects
897  - lock_file(): always add lock_file object to lock_file_list
898  - hold_lock_file_for_append(): release lock on errors
899  - lockfile: unlock file if lockfile permissions cannot be adjusted
900  - rollback_lock_file(): set fd to -1
901  - rollback_lock_file(): do not clear filename redundantly
902  - api-lockfile: expand the documentation
903  - unable_to_lock_die(): rename function from unable_to_lock_index_die()
905  Refactor and fix corner-case bugs in the lockfile API, all looked
906  sensible.
908  Expecting a reroll.
911 * mt/patch-id-stable (2014-05-06) 6 commits
912   (merged to 'next' on 2014-05-07 at 6ade68e)
913  + test doc: test_write_lines does not split its arguments
914   (merged to 'next' on 2014-05-02 at cfa251b)
915  + t4204-patch-id.sh: default is now stable
916  + patch-id: change default to stable
917   (merged to 'next' on 2014-05-02 at b69326a)
918  + patch-id-test: test stable and unstable behaviour
919  + test: add test_write_lines helper
920  + patch-id: make it stable against hunk reordering
922  Introduce a new way to compute patch-id for a patch that is not
923  affected by the order of the paths that appear in the input.
925  Will keep in 'next' for the remainder of the cycle.
928 * mh/ref-transaction (2014-04-07) 27 commits
929   (merged to 'next' on 2014-04-16 at a99f84d)
930  + ref_transaction_commit(): work with transaction->updates in place
931  + struct ref_update: add a type field
932  + struct ref_update: add a lock field
933  + ref_transaction_commit(): simplify code using temporary variables
934  + struct ref_update: store refname as a FLEX_ARRAY
935  + struct ref_update: rename field "ref_name" to "refname"
936  + refs: remove API function update_refs()
937  + update-ref --stdin: reimplement using reference transactions
938  + refs: add a concept of a reference transaction
939  + update-ref --stdin: harmonize error messages
940  + update-ref --stdin: improve the error message for unexpected EOF
941  + t1400: test one mistake at a time
942  + update-ref --stdin -z: deprecate interpreting the empty string as zeros
943  + update-ref.c: extract a new function, parse_next_sha1()
944  + t1400: test that stdin -z update treats empty <newvalue> as zeros
945  + update-ref --stdin: simplify error messages for missing oldvalues
946  + update-ref --stdin: make error messages more consistent
947  + update-ref --stdin: improve error messages for invalid values
948  + update-ref.c: extract a new function, parse_refname()
949  + parse_cmd_verify(): copy old_sha1 instead of evaluating <oldvalue> twice
950  + update-ref --stdin: read the whole input at once
951  + update_refs(): fix constness
952  + refs.h: rename the action_on_err constants
953  + t1400: add some more tests involving quoted arguments
954  + parse_arg(): really test that argument is properly terminated
955  + t1400: provide more usual input to the command
956  + t1400: fix name and expected result of one test
957  (this branch is used by rs/ref-transaction.)
959  Update "update-ref --stdin [-z]" and then introduce a transactional
960  support for (multi-)reference updates.
962  Will keep in 'next' for the remainder of the cycle.
965 * jc/apply-ignore-whitespace (2014-03-26) 1 commit
966   (merged to 'next' on 2014-04-04 at 53779a7)
967  + apply --ignore-space-change: lines with and without leading whitespaces do not match
969  "--ignore-space-change" option of "git apply" ignored the
970  spaces at the beginning of line too aggressively, which is
971  inconsistent with the option of the same name "diff" and "git diff"
972  have.
974  Will keep in 'next' for the remainder of the cycle.
977 * as/grep-fullname-config (2014-03-20) 1 commit
978   (merged to 'next' on 2014-03-28 at 810a076)
979  + grep: add grep.fullName config variable
981  Add a configuration variable to force --full-name to be default for
982  "git grep".
984  This may cause regressions on scripted users that do not expect
985  this new behaviour.
987  Will keep in 'next' for the remainder of the cycle.
990 * nd/multiple-work-trees (2014-03-25) 28 commits
991  - count-objects: report unused files in $GIT_DIR/repos/...
992  - gc: support prune --repos
993  - gc: style change -- no SP before closing bracket
994  - prune: strategies for linked checkouts
995  - checkout: detach if the branch is already checked out elsewhere
996  - checkout: clean up half-prepared directories in --to mode
997  - checkout: support checking out into a new working directory
998  - use new wrapper write_file() for simple file writing
999  - wrapper.c: wrapper to open a file, fprintf then close
1000  - setup.c: support multi-checkout repo setup
1001  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
1002  - setup.c: convert check_repository_format_gently to use strbuf
1003  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
1004  - setup.c: convert is_git_directory() to use strbuf
1005  - git-stash: avoid hardcoding $GIT_DIR/logs/....
1006  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
1007  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
1008  - $GIT_COMMON_DIR: a new environment variable
1009  - commit: use SEQ_DIR instead of hardcoding "sequencer"
1010  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
1011  - reflog: avoid constructing .lock path with git_path
1012  - *.sh: respect $GIT_INDEX_FILE
1013  - git_path(): be aware of file relocation in $GIT_DIR
1014  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
1015  - path.c: rename vsnpath() to do_git_path()
1016  - git_snpath(): retire and replace with strbuf_git_path()
1017  - path.c: make get_pathname() call sites return const char *
1018  - path.c: make get_pathname() return strbuf instead of static buffer
1020  A replacement for contrib/workdir/git-new-workdir that does not
1021  rely on symbolic links and make sharing of objects and refs safer
1022  by making the borrowee and borrowers aware of each other.
1024  Will hold.
1027 * ks/tree-diff-nway (2014-04-09) 20 commits
1028   (merged to 'next' on 2014-04-09 at c17228e)
1029  + mingw: activate alloca
1030   (merged to 'next' on 2014-04-08 at 6b74773)
1031  + combine-diff: speed it up, by using multiparent diff tree-walker directly
1032  + tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
1033  + Portable alloca for Git
1034   (merged to 'next' on 2014-03-31 at 16a7bd4)
1035  + tree-diff: reuse base str(buf) memory on sub-tree recursion
1036  + tree-diff: no need to call "full" diff_tree_sha1 from show_path()
1037  + tree-diff: rework diff_tree interface to be sha1 based
1038  + tree-diff: diff_tree() should now be static
1039  + tree-diff: remove special-case diff-emitting code for empty-tree cases
1040   (merged to 'next' on 2014-03-25 at cfcbdac)
1041  + tree-diff: simplify tree_entry_pathcmp
1042  + tree-diff: show_path prototype is not needed anymore
1043  + tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
1044  + tree-diff: move all action-taking code out of compare_tree_entry()
1045  + tree-diff: don't assume compare_tree_entry() returns -1,0,1
1046   (merged to 'next' on 2014-03-21 at d872679)
1047  + tree-diff: consolidate code for emitting diffs and recursion in one place
1048  + tree-diff: show_tree() is not needed
1049  + tree-diff: no need to pass match to skip_uninteresting()
1050  + tree-diff: no need to manually verify that there is no mode change for a path
1051  + combine-diff: move changed-paths scanning logic into its own function
1052  + combine-diff: move show_log_first logic/action out of paths scanning
1054  Instead of running N pair-wise diff-trees when inspecting a
1055  N-parent merge, find the set of paths that were touched by walking
1056  N+1 trees in parallel.  These set of paths can then be turned into
1057  N pair-wise diff-tree results to be processed through rename
1058  detections and such.  And N=2 case nicely degenerates to the usual
1059  2-way diff-tree, which is very nice.
1061  Will keep in 'next' for the remainder of the cycle.
1064 * cc/interpret-trailers (2014-04-29) 11 commits
1065  - Documentation: add documentation for 'git interpret-trailers'
1066  - trailer: add tests for commands in config file
1067  - trailer: execute command from 'trailer.<name>.command'
1068  - trailer: add tests for "git interpret-trailers"
1069  - trailer: add interpret-trailers command
1070  - trailer: put all the processing together and print
1071  - trailer: parse trailers from file or stdin
1072  - trailer: process command line trailer arguments
1073  - trailer: read and process config information
1074  - trailer: process trailers from input message and arguments
1075  - trailer: add data structures and basic functions
1077  A new filter to programatically edit the tail end of the commit log
1078  messages.
1080 --------------------------------------------------
1081 [Discarded]
1083 * jc/format-patch (2013-04-22) 2 commits
1084  . format-patch: --inline-single
1085  . format-patch: rename "no_inline" field
1087  A new option to send a single patch to the standard output to be
1088  appended at the bottom of a message.  I personally have no need for
1089  this, but it was easy enough to cobble together.  Tests, docs and
1090  stripping out more MIMEy stuff are left as exercises to interested
1091  parties.