What's cooking (2014/05 #01)
[git/jrn.git] / whats-cooking.txt
blob474e3101cae99c59e04641f497234c08b04400e8
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (May 2014, #01; Tue, 6)
4 X-master-at: b4f86a4ce85e4e370a67455de6586a02f158a789
5 X-next-at: cfa251bb0195ab6f98c8c86125e8419cea21247d
7 What's cooking in git.git (May 2014, #01; Tue, 6)
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 has passed v2.0.0-rc1.  Last minute
15 fixes to newly added code keep flowing in, which is good.  I've
16 picked up some topics that will not be part of the upcoming release
17 to 'pu' not to lose them, but I didn't have time to give them a deep
18 reading.
20 You can find the changes described here in the integration branches
21 of the repositories listed at
23     http://git-blame.blogspot.com/p/git-public-repositories.html
25 --------------------------------------------------
26 [Graduated to "master"]
28 * km/git-svn-workaround-older-getopt-long (2014-04-23) 1 commit
29   (merged to 'next' on 2014-04-23 at 3f35586)
30  + t9117: use --prefix "" instead of --prefix=""
32  Finishing touches to a change that is already in 'master'.
35 * mk/doc-git-gui-display-untracked (2014-04-21) 1 commit
36   (merged to 'next' on 2014-04-22 at 385d39a)
37  + Documentation: git-gui: describe gui.displayuntracked
40 * mw/symlinks (2014-04-24) 1 commit
41   (merged to 'next' on 2014-04-25 at 20b2af6)
42  + setup: fix windows path buffer over-stepping
44  A finishing touch fix to a new change already in 'master'.
47 * rh/prompt-pcmode-avoid-eval-on-refname (2014-04-22) 1 commit
48   (merged to 'next' on 2014-04-22 at 3a1506f)
49  + git-prompt.sh: don't put unsanitized branch names in $PS1
51 --------------------------------------------------
52 [New Topics]
54 * bg/strbuf-trim (2014-04-30) 2 commits
55  - api-strbuf.txt: Add docs for _trim and _ltrim
56  - strbuf: Use _rtrim and _ltrim in strbuf_trim
58  Will merge to 'next'.
61 * cb/byte-order (2014-05-02) 2 commits
62  - compat/bswap.h: restore preference __BIG_ENDIAN over BIG_ENDIAN
63  - compat/bswap.h: detect endianness on more platforms that don't use BYTE_ORDER
65  Will merge to 'next'.
68 * dt/api-doc-setup-gently (2014-04-30) 1 commit
69  - docs: document RUN_SETUP_GENTLY and clarify RUN_SETUP
71  Will merge to 'next'.
74 * dt/merge-recursive-case-insensitive (2014-05-06) 1 commit
75  - merge-recursive.c: Fix case-changing merge bug
78 * ew/config-protect-mode (2014-05-06) 1 commit
79  - config: preserve config file permissions on edits
81  Will merge to 'next'.
84 * fc/rerere-conflict-style (2014-04-30) 1 commit
85  - rerere: fix for merge.conflictstyle
87  Will merge to 'next'.
90 * jc/coding-guidelines (2014-05-02) 8 commits
91  - CodingGuidelines: on splitting a long line
92  - CodingGuidelines: on comparison
93  - CodingGuidelines: do not call the conditional statement "if()"
94  - CodingGuidelines: give an example for shell function preamble
95  - CodingGuidelines: give an example for control statements
96  - CodingGuidelines: give an example for redirection
97  - CodingGuidelines: give an example for case/esac statement
98  - CodingGuidelines: once it is in, it is not worth the code churn
100  Needs to be rerolled.
103 * jd/subtree (2014-05-06) 5 commits
104  - contrib/subtree/Makefile: clean rule cleanup
105  - contrib/subtree/Makefile: Doc-gen rules cleanup
106  - contrib/subtree/Makefile: s/libexecdir/gitexecdir
107  - contrib/subtree/Makefile: Use GIT-VERSION-FILE
108  - contrib/subtree/Makefile: scrap unused $(gitdir)
110  Will merge to 'next'.
113 * jk/commit-date-approxidate (2014-05-02) 4 commits
114  - commit: accept more date formats for "--date"
115  - commit: print "Date" line when the user has set date
116  - pretty: make show_ident_date public
117  - commit: use split_ident_line to compare author/committer
119  Will merge to 'next'.
122 * mm/pager-less-sans-S (2014-04-30) 1 commit
123  - pager: remove 'S' from $LESS by default
125  Will merge to 'next'.
128 * sk/msvc-dynlink-crt (2014-05-06) 1 commit
129  - MSVC: link dynamically to the CRT
131  Will merge to 'next'.
133 --------------------------------------------------
134 [Stalled]
136 * tr/merge-recursive-index-only (2014-02-05) 3 commits
137  - merge-recursive: -Xindex-only to leave worktree unchanged
138  - merge-recursive: internal flag to avoid touching the worktree
139  - merge-recursive: remove dead conditional in update_stages()
140  (this branch is used by tr/remerge-diff.)
142  Will hold.
145 * tr/remerge-diff (2014-02-26) 5 commits
146  . log --remerge-diff: show what the conflict resolution changed
147  . name-hash: allow dir hashing even when !ignore_case
148  . merge-recursive: allow storing conflict hunks in index
149  . revision: fold all merge diff variants into an enum merge_diff_mode
150  . combine-diff: do not pass revs->dense_combined_merges redundantly
151  (this branch uses tr/merge-recursive-index-only.)
153  "log -p" output learns a new way to let users inspect a merge
154  commit by showing the differences between the automerged result
155  with conflicts the person who recorded the merge would have seen
156  and the final conflict resolution that was recorded in the merge.
158  Needs to be rebased, now kb/fast-hashmap topic is in.
161 * jk/makefile (2014-02-05) 16 commits
162  - FIXUP
163  - move LESS/LV pager environment to Makefile
164  - Makefile: teach scripts to include make variables
165  - FIXUP
166  - Makefile: auto-build C strings from make variables
167  - Makefile: drop *_SQ variables
168  - FIXUP
169  - Makefile: add c-quote helper function
170  - Makefile: introduce sq function for shell-quoting
171  - Makefile: always create files via make-var
172  - Makefile: store GIT-* sentinel files in MAKE/
173  - Makefile: prefer printf to echo for GIT-*
174  - Makefile: use tempfile/mv strategy for GIT-*
175  - Makefile: introduce make-var helper function
176  - Makefile: fix git-instaweb dependency on gitweb
177  - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
179  Simplify the Makefile rules and macros that exist primarily for
180  quoting purposes, and make it easier to robustly express the
181  dependency rules.
183  Expecting a reroll.
186 * po/everyday-doc (2014-01-27) 1 commit
187  - Make 'git help everyday' work
189  This may make the said command to emit something, but the source is
190  not meant to be formatted into a manual pages to begin with, and
191  also its contents are a bit stale.  It may be a good first step in
192  the right direction, but needs more work to at least get the
193  mark-up right before public consumption.
195  Will hold.
198 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
199  . t1507 (rev-parse-upstream): fix typo in test title
200  . implement @{publish} shorthand
201  . branch_get: provide per-branch pushremote pointers
202  . branch_get: return early on error
203  . sha1_name: refactor upstream_mark
205  Give an easier access to the tracking branches from "other" side in
206  a triangular workflow by introducing B@{publish} that works in a
207  similar way to how B@{upstream} does.
209  Meant to be used as a basis for whatever Ram wants to build on.
211  Ejected from 'pu' to make room for fc/publish-vs-upstream topic.
214 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
215  - merge: drop unused arg from abort_commit method signature
216  - merge: make prepare_to_commit responsible for write_merge_state
217  - t7505: ensure cleanup after hook blocks merge
218  - t7505: add missing &&
220  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
221  run during "git merge".  The log message stresses too much on one
222  hook, prepare-commit-msg, but it would equally apply to other hooks
223  like post-merge, I think.
225  Waiting for a reroll.
228 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
229  - Teach checkout to recursively checkout submodules
230  - submodule: teach unpack_trees() to update submodules
231  - submodule: teach unpack_trees() to repopulate submodules
232  - submodule: teach unpack_trees() to remove submodule contents
233  - submodule: prepare for recursive checkout of submodules
235  An RFCv2 exists ($gmane/241455) with sizable review comments.
236  Expecting a reroll.
239 * jc/graph-post-root-gap (2013-12-30) 3 commits
240  - WIP: document what we want at the end
241  - graph: remove unused code a bit
242  - graph: stuff the current commit into graph->columns[]
244  This was primarily a RFH ($gmane/239580).
247 * np/pack-v4 (2013-09-18) 90 commits
248  . packv4-parse.c: add tree offset caching
249  . t1050: replace one instance of show-index with verify-pack
250  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
251  . unpack-objects: decode v4 trees
252  . unpack-objects: allow to save processed bytes to a buffer
253  - ...
255  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
256  primarily for wider distribution of the preview edition.
258  Needs to be rebased, now the pack-bitmap series is in.
261 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
262  - perf-lib: add test_perf_cleanup target
263  - perf-lib: split starting the test from the execution
265  Add test_perf_cleanup shell function to the perf suite, that allows
266  the script writers to define a test with a clean-up action.
268  Will hold.
271 * jc/show-branch (2014-03-24) 5 commits
272  - show-branch: use commit slab to represent bitflags of arbitrary width
273  - show-branch.c: remove "all_mask"
274  - show-branch.c: abstract out "flags" operation
275  - show-branch.c: lift all_mask/all_revs to a global static
276  - show-branch.c: update comment style
278  Waiting for the final step to lift the hard-limit before sending it out.
280 --------------------------------------------------
281 [Cooking]
283 * cc/replace-edit (2014-04-29) 4 commits
284  - replace: add --edit option
285  - replace: factor object resolution out of replace_object
286  - replace: use OPT_CMDMODE to handle modes
287  - replace: refactor command-mode determination
290 * da/imap-send-use-credential-helper (2014-04-29) 1 commit
291  - imap-send: use git-credential
294 * dk/blame-reorg (2014-04-28) 1 commit
295  - blame: large-scale performance rewrite
298 * je/pager-do-not-recurse (2014-04-28) 1 commit
299  - pager: do allow spawning pager recursively
302 * jk/commit-C-pick-empty (2014-04-28) 1 commit
303  - commit: do not complain of empty messages from -C
306 * jk/utf8-switch-between-nfd-and-nfc (2014-04-29) 1 commit
307  - t3910: show failure of core.precomposeunicode with decomposed filenames
310 * mt/send-email-cover-to-cc (2014-04-29) 2 commits
311  - test/send-email: to-cover, cc-cover tests
312  - git-send-email: two new options: to-cover, cc-cover
315 * nd/split-index (2014-04-29) 33 commits
316  - SQUASH???
317  - t1700: new tests for split-index mode
318  - t2104: make sure split index mode is off for the version test
319  - read-cache: force split index mode with GIT_TEST_SPLIT_INDEX
320  - read-tree: note about dropping split-index mode or index version
321  - read-tree: force split-index mode off on --index-output
322  - rev-parse: add --shared-index-path to get shared index path
323  - update-index --split-index: do not split if $GIT_DIR is read only
324  - update-index: new options to enable/disable split index mode
325  - split-index: strip pathname of on-disk replaced entries
326  - split-index: do not invalidate cache-tree at read time
327  - split-index: the reading part
328  - split-index: the writing part
329  - read-cache: mark updated entries for split index
330  - read-cache: save deleted entries in split index
331  - read-cache: mark new entries for split index
332  - read-cache: split-index mode
333  - read-cache: save index SHA-1 after reading
334  - entry.c: update cache_changed if refresh_cache is set in checkout_entry()
335  - cache-tree: mark istate->cache_changed on prime_cache_tree()
336  - cache-tree: mark istate->cache_changed on cache tree update
337  - cache-tree: mark istate->cache_changed on cache tree invalidation
338  - unpack-trees: be specific what part of the index has changed
339  - resolve-undo: be specific what part of the index has changed
340  - update-index: be specific what part of the index has changed
341  - read-cache: be specific what part of the index has changed
342  - read-cache: be strict about "changed" in remove_marked_cache_entries()
343  - read-cache: store in-memory flags in the first 12 bits of ce_flags
344  - read-cache: relocate and unexport commit_locked_index()
345  - read-cache: new API write_locked_index instead of write_index/write_cache
346  - sequencer: do not update/refresh index if the lock cannot be held
347  - ewah: delete unused ewah_read_mmap_native declaration
348  - ewah: fix constness of ewah_read_mmap
351 * tl/relax-in-poll-emulation (2014-04-29) 1 commit
352  - compat/poll: sleep 1 millisecond to avoid busy wait
355 * bc/blame-crlf-test (2014-04-28) 1 commit
356  - blame: correctly handle files regardless of autocrlf.
359 * rs/ref-transaction (2014-04-29) 27 commits
360  - refs.c: make lock_ref_sha1 static
361  - refs.c: make write_ref_sha1 static
362  - walker.c: use ref transaction for ref updates
363  - fast-import.c: use a ref transaction when dumping tags
364  - receive-pack.c: use a reference transaction for updating the refs
365  - fetch.c: use a single ref transaction for all ref updates
366  - fetch.c: change s_update_ref to use a ref transaction
367  - fetch.c: clear errno before calling functions that might set it
368  - refs.c: ref_transaction_commit should not free the transaction
369  - refs.c: free the transaction before returning when number of updates is 0
370  - refs.c: change update_ref to use a transaction
371  - branch.c: use ref transaction for all ref updates
372  - fast-import.c: change update_branch to use ref transactions
373  - sequencer.c: use ref transactions for all ref updates
374  - commit.c: use ref transactions for updates
375  - replace.c: use the ref transaction functions for updates
376  - tag.c: use ref transactions when doing updates
377  - refs.c: ref_transaction_delete to check for error and return status
378  - refs.c: change ref_transaction_create to do error checking and return status
379  - refs.c: change ref_transaction_update() to do error checking and return status
380  - refs.c: remove the onerr argument to ref_transaction_commit
381  - refs.c: make update_ref_write update a strbuf on failure
382  - update-ref.c: log transaction error from the update_ref
383  - refs.c: make ref_update_reject_duplicates take a strbuf argument for errors
384  - refs.c: add a strbuf argument to ref_transaction_commit for error logging
385  - refs.c: allow passing NULL to ref_transaction_free
386  - refs.c: constify the sha arguments for ref_transaction_create|delete|update
387  (this branch uses mh/ref-transaction.)
389  Updates most of the callsites to write_sha1_ref(), the low-level
390  mechanism to update a ref, to use the ref-transaction API.
392  Expecting a reroll.
395 * ep/shell-command-substitution (2014-04-30) 41 commits
396  - t5000-tar-tree.sh: use the $( ... ) construct for command substitution
397  - t4204-patch-id.sh: use the $( ... ) construct for command substitution
398  - t4119-apply-config.sh: use the $( ... ) construct for command substitution
399  - t4116-apply-reverse.sh: use the $( ... ) construct for command substitution
400  - t4057-diff-combined-paths.sh: use the $( ... ) construct for command substitution
401  - t4038-diff-combined.sh: use the $( ... ) construct for command substitution
402  - t4036-format-patch-signer-mime.sh: use the $( ... ) construct for command substitution
403  - t4014-format-patch.sh: use the $( ... ) construct for command substitution
404  - t4013-diff-various.sh: use the $( ... ) construct for command substitution
405  - t4012-diff-binary.sh: use the $( ... ) construct for command substitution
406  - t4010-diff-pathspec.sh: use the $( ... ) construct for command substitution
407  - t4006-diff-mode.sh: use the $( ... ) construct for command substitution
408  - t3910-mac-os-precompose.sh: use the $( ... ) construct for command substitution
409  - t3905-stash-include-untracked.sh: use the $( ... ) construct for command substitution
410  - t1050-large.sh: use the $( ... ) construct for command substitution
411  - t1020-subdirectory.sh: use the $( ... ) construct for command substitution
412  - t1004-read-tree-m-u-wf.sh: use the $( ... ) construct for command substitution
413  - t1003-read-tree-prefix.sh: use the $( ... ) construct for command substitution
414  - t1002-read-tree-m-u-2way.sh: use the $( ... ) construct for command substitution
415  - t1001-read-tree-m-2way.sh: use the $( ... ) construct for command substitution
416  - t1000-read-tree-m-3way.sh: use the $( ... ) construct for command substitution
417  - t0300-credentials.sh: use the $( ... ) construct for command substitution
418  - t0030-stripspace.sh: use the $( ... ) construct for command substitution
419  - t0026-eol-config.sh: use the $( ... ) construct for command substitution
420  - t0025-crlf-auto.sh: use the $( ... ) construct for command substitution
421  - t0020-crlf.sh: use the $( ... ) construct for command substitution
422  - t0010-racy-git.sh: use the $( ... ) construct for command substitution
423  - t0001-init.sh: use the $( ... ) construct for command substitution
424  - p5302-pack-index.sh: use the $( ... ) construct for command substitution
425  - lib-gpg.sh: use the $( ... ) construct for command substitution
426  - lib-cvs.sh: use the $( ... ) construct for command substitution
427  - lib-credential.sh: use the $( ... ) construct for command substitution
428  - git-web--browse.sh: use the $( ... ) construct for command substitution
429  - git-stash.sh: use the $( ... ) construct for command substitution
430  - git-rebase.sh: use the $( ... ) construct for command substitution
431  - git-rebase--merge.sh: use the $( ... ) construct for command substitution
432  - git-pull.sh: use the $( ... ) construct for command substitution
433  - appp.sh: use the $( ... ) construct for command substitution
434  - t7900-subtree.sh: use the $( ... ) construct for command substitution
435  - test-gitmw-lib.sh: use the $( ... ) construct for command substitution
436  - t9365-continuing-queries.sh: use the $( ... ) construct for command substitution
438  Adjust shell scripts to use $(cmd) instead of `cmd`.
440  Will merge to 'next' and keep it there for the remainder of the cycle.
443 * ib/test-selectively-run (2014-05-06) 3 commits
444  - test-lib: '--run' to run only specific tests
445  - test-lib: tests skipped by GIT_SKIP_TESTS say so
446  - test-lib: Document short options in t/README
448  Allow specifying only certain individual test pieces to be run
449  using a range notation (e.g. "t1234-test.sh --run='1-4 6 8 9-'").
452 * mm/mediawiki-encoding-fix (2014-04-23) 2 commits
453   (merged to 'next' on 2014-05-02 at 7744361)
454  + git-remote-mediawiki: fix encoding issue for UTF-8 media files
455  + git-remote-mediawiki: allow stop/start-ing the test server
457  Will keep in 'next' for the remainder of the cycle.
460 * sk/tag-contains-wo-recursion (2014-04-25) 1 commit
461   (merged to 'next' on 2014-04-25 at f320750)
462  + git tag --contains: avoid stack overflow
464  Will keep in 'next' for the remainder of the cycle.
467 * fc/remote-helpers-hg-bzr-graduation (2014-04-29) 11 commits
468  - remote-hg: trivial cleanups
469  - remote-hg: make sure we omit multiple heads
470  - git-remote-hg: use internal clone's hgrc
471  - t: remote-hg: split into setup test
472  - remote-hg: properly detect missing contexts
473  - remote-{hg,bzr}: store marks only on success
474  - remote-hg: update to 'public' phase when pushing
475  - remote-hg: fix parsing of custom committer
476   (merged to 'next' on 2014-04-22 at fed170a)
477  + remote-helpers: move tests out of contrib
478  + remote-helpers: move out of contrib
479  + remote-helpers: squelch python import exceptions
481  Move remote-hg and remote-bzr out of contrib/.  There were some
482  suggestions on the follow-up fix patches still not in 'next', which
483  may result in a reroll.
485  I tend to agree with John Keeping that remote helpers that are
486  actively maintained can and should aim to graduate from my tree and
487  given to the user directly.
489  Will hold.
492 * fc/remote-helper-refmap (2014-04-21) 8 commits
493   (merged to 'next' on 2014-04-22 at fb5a4c2)
494  + transport-helper: remove unnecessary strbuf resets
495  + transport-helper: add support to delete branches
496  + fast-export: add support to delete refs
497  + fast-import: add support to delete refs
498  + transport-helper: add support to push symbolic refs
499  + transport-helper: add support for old:new refspec
500  + fast-export: add new --refspec option
501  + fast-export: improve argument parsing
503  Allow remote-helper/fast-import based transport to rename the refs
504  while transferring the history.
506  Will keep in 'next' for the remainder of the cycle.
509 * jk/external-diff-use-argv-array (2014-04-21) 5 commits
510   (merged to 'next' on 2014-04-22 at e6d92d7)
511  + run_external_diff: refactor cmdline setup logic
512  + run_external_diff: hoist common bits out of conditional
513  + run_external_diff: drop fflush(NULL)
514  + run_external_diff: clean up error handling
515  + run_external_diff: use an argv_array for the environment
517  Code clean-up (and a bugfix which has been merged for 2.0).
519  Will keep in 'next' for the remainder of the cycle.
522 * jx/blame-align-relative-time (2014-04-23) 2 commits
523   (merged to 'next' on 2014-04-23 at 858df39)
524  + blame: dynamic blame_date_width for different locales
525  + blame: fix broken time_buf paddings in relative timestamp
527  "git blame" miscounted number of columns needed to show localized
528  timestamps, resulting in jaggy left-side-edge of the source code
529  lines in its output.
531  Will keep in 'next' for the remainder of the cycle.
534 * fc/merge-default-to-upstream (2014-04-22) 1 commit
535   (merged to 'next' on 2014-04-22 at 4f98483)
536  + merge: enable defaulttoupstream by default
538  "git merge" without argument, even when there is an upstream
539  defined for the current branch, refused to run until
540  merge.defaultToUpstream is set to true. Flip the default of that
541  configuration variable to true.
543  Will keep in 'next' for the remainder of the cycle.
546 * fc/mergetool-prompt (2014-04-24) 2 commits
547   (merged to 'next' on 2014-05-02 at a554691)
548  + mergetool: document the default for --[no-]prompt
549   (merged to 'next' on 2014-04-22 at dcaec94)
550  + mergetool: run prompt only if guessed tool
552  mergetool.prompt used to default to 'true', always causing a confirmation
553  "do you really want to run the tool on this path" to be shown.
555  Among the two purposes the prompt serves, ignore the use case to
556  confirm that the user wants to view particular path with the named
557  tool, and make the prompt only to confirm the choice of the tool
558  made by autodetection and defaulting.  For those who configured the
559  tool explicitly, the prompt shown for the latter purpose is simply
560  annoying.
562  Strictly speaking, this is a backward incompatible change and the
563  users need to explicitly set the variable to 'true' if they want to
564  resurrect the now-ignored use case.
566  Will keep in 'next' for the remainder of the cycle.
569 * fc/mergetools-vimdiff3 (2014-04-22) 1 commit
570   (merged to 'next' on 2014-04-22 at d843e75)
571  + mergetools: add vimdiff3 mode
573  Will keep in 'next' for the remainder of the cycle.
576 * lr/git-run-setup-gently (2014-04-22) 1 commit
577   (merged to 'next' on 2014-04-22 at 5c2523f)
578  + git.c: treat RUN_SETUP_GENTLY and RUN_SETUP as mutually exclusive
580  Will keep in 'next' for the remainder of the cycle.
583 * fc/publish-vs-upstream (2014-04-21) 8 commits
584  - sha1_name: add support for @{publish} marks
585  - sha1_name: simplify track finding
586  - sha1_name: cleanup interpret_branch_name()
587  - branch: display publish branch
588  - push: add --set-publish option
589  - branch: add --set-publish-to option
590  - Add concept of 'publish' branch
591  - t5516 (fetch-push): fix test restoration
593  Add branch@{publish}; it seems that this is somewhat different from
594  Ram and Peff started working on.  There were many discussion
595  messages going back and forth but it does not appear that the
596  design issues have been worked out among participants yet.
599 * jl/git-gui-show-added-submodule-changes (2014-04-15) 1 commit
600  - git-gui: show staged submodules regardless of ignore config
602  Tentatively queued what I expect to receive via Pat Thoyts.
605 * jl/gitk-show-added-submodule-changes (2014-04-15) 3 commits
606  - gitk: show staged submodules regardless of ignore config
607  - gitk: Merge branch 'new' of https://github.com/vnwildman/gitk
608  - l10n: Init Vietnamese translation
610  Tentatively queued what I expect to receive via Paul Mackerras.
613 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
614  - git-rebase: print name of rev when using shorthand
616  Teach "git rebase -" to report the concrete name of the branch
617  (i.e. the previous one).
619  But it stops short and does not do the same for "git rebase @{-1}".
620  Expecting a reroll.
623 * ef/send-email-absolute-path-to-the-command (2014-04-23) 2 commits
624   (merged to 'next' on 2014-04-23 at a657e5e)
625  + send-email: windows drive prefix (e.g. C:) appears only at the beginning
626   (merged to 'next' on 2014-04-21 at 43bebb5)
627  + send-email: recognize absolute path on Windows
629  Will keep in 'next' for the remainder of the cycle.
632 * jh/submodule-tests (2014-04-17) 1 commit
633  - t7410: 210 tests for various 'git submodule update' scenarios
636 * rs/ref-update-check-errors-early (2014-04-17) 2 commits
637   (merged to 'next' on 2014-04-21 at acc62aa)
638  + commit.c: check for lock error and return early
639  + sequencer.c: check for lock failure and bail early in fast_forward_to
641  Will keep in 'next' for the remainder of the cycle.
644 * sk/svn-parse-datestamp (2014-04-17) 1 commit
645   (merged to 'next' on 2014-04-21 at 5ff519f)
646  + SVN.pm::parse_svn_date: allow timestamps with a single-digit hour
648  Will keep in 'next' for the remainder of the cycle.
651 * nd/index-pack-one-fd-per-thread (2014-04-16) 1 commit
652   (merged to 'next' on 2014-04-16 at b38d5a9)
653  + index-pack: work around thread-unsafe pread()
655  Enable threaded index-pack on platforms without thread-unsafe
656  pread() emulation.
658  Will keep in 'next' for the remainder of the cycle.
661 * ym/fix-opportunistic-index-update-race (2014-04-10) 2 commits
662   (merged to 'next' on 2014-04-16 at cb92f4f)
663  + read-cache.c: verify index file before we opportunistically update it
664  + wrapper.c: add xpread() similar to xread()
666  Read-only operations such as "git status" that internally refreshes
667  the index write out the refreshed index to the disk to optimize
668  future accesses to the working tree, but this could race with a
669  "read-write" operation that modify the index while it is running.
670  Detect such a race and avoid overwriting the index.
672  Duy raised a good point that we may need to do the same for the
673  normal writeout codepath, not just the "opportunistic" update
674  codepath.  While that is true, nobody sane would be running two
675  simultaneous operations that are clearly write-oriented competing
676  with each other against the same index file.  So in that sense that
677  can be done as a less urgent follow-up for this topic.
679  Will keep in 'next' for the remainder of the cycle.
682 * jl/status-added-submodule-is-never-ignored (2014-04-07) 2 commits
683  - commit -m: commit staged submodules regardless of ignore config
684  - status/commit: show staged submodules regardless of ignore config
686  There also are a few patches Ronald Weiss and Jens are working on
687  polishing around this topic, and a patch from Jens each for gitk
688  and git-gui.
690  Waiting for the dust to settle until picking them up all.
693 * mh/lockfile (2014-04-15) 25 commits
694  - trim_last_path_elm(): replace last_path_elm()
695  - resolve_symlink(): take a strbuf parameter
696  - resolve_symlink(): use a strbuf for internal scratch space
697  - change lock_file::filename into a strbuf
698  - commit_lock_file(): use a strbuf to manage temporary space
699  - try_merge_strategy(): use a statically-allocated lock_file object
700  - try_merge_strategy(): remove redundant lock_file allocation
701  - struct lock_file: declare some fields volatile
702  - lockfile: avoid transitory invalid states
703  - commit_lock_file(): die() if called for unlocked lockfile object
704  - commit_lock_file(): inline temporary variable
705  - remove_lock_file(): call rollback_lock_file()
706  - lock_file(): exit early if lockfile cannot be opened
707  - write_packed_entry_fn(): convert cb_data into a (const int *)
708  - prepare_index(): declare return value to be (const char *)
709  - delete_ref_loose(): don't muck around in the lock_file's filename
710  - cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
711  - lockfile.c: document the various states of lock_file objects
712  - lock_file(): always add lock_file object to lock_file_list
713  - hold_lock_file_for_append(): release lock on errors
714  - lockfile: unlock file if lockfile permissions cannot be adjusted
715  - rollback_lock_file(): set fd to -1
716  - rollback_lock_file(): do not clear filename redundantly
717  - api-lockfile: expand the documentation
718  - unable_to_lock_die(): rename function from unable_to_lock_index_die()
720  Refactor and fix corner-case bugs in the lockfile API, all looked
721  sensible.
723  Expecting a reroll.
726 * mt/patch-id-stable (2014-05-06) 6 commits
727  - test doc: test_write_lines does not split its arguments
728   (merged to 'next' on 2014-05-02 at cfa251b)
729  + t4204-patch-id.sh: default is now stable
730  + patch-id: change default to stable
731   (merged to 'next' on 2014-05-02 at b69326a)
732  + patch-id-test: test stable and unstable behaviour
733  + test: add test_write_lines helper
734  + patch-id: make it stable against hunk reordering
736  Introduce a new way to compute patch-id for a patch that is not
737  affected by the order of the paths that appear in the input.
739  Will merge to 'next' and keep it there for the remainder of the cycle.
742 * mh/ref-transaction (2014-04-07) 27 commits
743   (merged to 'next' on 2014-04-16 at a99f84d)
744  + ref_transaction_commit(): work with transaction->updates in place
745  + struct ref_update: add a type field
746  + struct ref_update: add a lock field
747  + ref_transaction_commit(): simplify code using temporary variables
748  + struct ref_update: store refname as a FLEX_ARRAY
749  + struct ref_update: rename field "ref_name" to "refname"
750  + refs: remove API function update_refs()
751  + update-ref --stdin: reimplement using reference transactions
752  + refs: add a concept of a reference transaction
753  + update-ref --stdin: harmonize error messages
754  + update-ref --stdin: improve the error message for unexpected EOF
755  + t1400: test one mistake at a time
756  + update-ref --stdin -z: deprecate interpreting the empty string as zeros
757  + update-ref.c: extract a new function, parse_next_sha1()
758  + t1400: test that stdin -z update treats empty <newvalue> as zeros
759  + update-ref --stdin: simplify error messages for missing oldvalues
760  + update-ref --stdin: make error messages more consistent
761  + update-ref --stdin: improve error messages for invalid values
762  + update-ref.c: extract a new function, parse_refname()
763  + parse_cmd_verify(): copy old_sha1 instead of evaluating <oldvalue> twice
764  + update-ref --stdin: read the whole input at once
765  + update_refs(): fix constness
766  + refs.h: rename the action_on_err constants
767  + t1400: add some more tests involving quoted arguments
768  + parse_arg(): really test that argument is properly terminated
769  + t1400: provide more usual input to the command
770  + t1400: fix name and expected result of one test
771  (this branch is used by rs/ref-transaction.)
773  Update "update-ref --stdin [-z]" and then introduce a transactional
774  support for (multi-)reference updates.
776  Will keep in 'next' for the remainder of the cycle.
779 * jc/apply-ignore-whitespace (2014-03-26) 1 commit
780   (merged to 'next' on 2014-04-04 at 53779a7)
781  + apply --ignore-space-change: lines with and without leading whitespaces do not match
783  "--ignore-space-change" option of "git apply" ignored the
784  spaces at the beginning of line too aggressively, which is
785  inconsistent with the option of the same name "diff" and "git diff"
786  have.
788  Will keep in 'next' for the remainder of the cycle.
791 * as/grep-fullname-config (2014-03-20) 1 commit
792   (merged to 'next' on 2014-03-28 at 810a076)
793  + grep: add grep.fullName config variable
795  Add a configuration variable to force --full-name to be default for
796  "git grep".
798  This may cause regressions on scripted users that do not expect
799  this new behaviour.
801  Will keep in 'next' for the remainder of the cycle.
804 * nd/multiple-work-trees (2014-03-25) 28 commits
805  - count-objects: report unused files in $GIT_DIR/repos/...
806  - gc: support prune --repos
807  - gc: style change -- no SP before closing bracket
808  - prune: strategies for linked checkouts
809  - checkout: detach if the branch is already checked out elsewhere
810  - checkout: clean up half-prepared directories in --to mode
811  - checkout: support checking out into a new working directory
812  - use new wrapper write_file() for simple file writing
813  - wrapper.c: wrapper to open a file, fprintf then close
814  - setup.c: support multi-checkout repo setup
815  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
816  - setup.c: convert check_repository_format_gently to use strbuf
817  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
818  - setup.c: convert is_git_directory() to use strbuf
819  - git-stash: avoid hardcoding $GIT_DIR/logs/....
820  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
821  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
822  - $GIT_COMMON_DIR: a new environment variable
823  - commit: use SEQ_DIR instead of hardcoding "sequencer"
824  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
825  - reflog: avoid constructing .lock path with git_path
826  - *.sh: respect $GIT_INDEX_FILE
827  - git_path(): be aware of file relocation in $GIT_DIR
828  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
829  - path.c: rename vsnpath() to do_git_path()
830  - git_snpath(): retire and replace with strbuf_git_path()
831  - path.c: make get_pathname() call sites return const char *
832  - path.c: make get_pathname() return strbuf instead of static buffer
834  A replacement for contrib/workdir/git-new-workdir that does not
835  rely on symbolic links and make sharing of objects and refs safer
836  by making the borrowee and borrowers aware of each other.
838  Will hold.
841 * ks/tree-diff-nway (2014-04-09) 20 commits
842   (merged to 'next' on 2014-04-09 at c17228e)
843  + mingw: activate alloca
844   (merged to 'next' on 2014-04-08 at 6b74773)
845  + combine-diff: speed it up, by using multiparent diff tree-walker directly
846  + tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
847  + Portable alloca for Git
848   (merged to 'next' on 2014-03-31 at 16a7bd4)
849  + tree-diff: reuse base str(buf) memory on sub-tree recursion
850  + tree-diff: no need to call "full" diff_tree_sha1 from show_path()
851  + tree-diff: rework diff_tree interface to be sha1 based
852  + tree-diff: diff_tree() should now be static
853  + tree-diff: remove special-case diff-emitting code for empty-tree cases
854   (merged to 'next' on 2014-03-25 at cfcbdac)
855  + tree-diff: simplify tree_entry_pathcmp
856  + tree-diff: show_path prototype is not needed anymore
857  + tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
858  + tree-diff: move all action-taking code out of compare_tree_entry()
859  + tree-diff: don't assume compare_tree_entry() returns -1,0,1
860   (merged to 'next' on 2014-03-21 at d872679)
861  + tree-diff: consolidate code for emitting diffs and recursion in one place
862  + tree-diff: show_tree() is not needed
863  + tree-diff: no need to pass match to skip_uninteresting()
864  + tree-diff: no need to manually verify that there is no mode change for a path
865  + combine-diff: move changed-paths scanning logic into its own function
866  + combine-diff: move show_log_first logic/action out of paths scanning
868  Instead of running N pair-wise diff-trees when inspecting a
869  N-parent merge, find the set of paths that were touched by walking
870  N+1 trees in parallel.  These set of paths can then be turned into
871  N pair-wise diff-tree results to be processed through rename
872  detections and such.  And N=2 case nicely degenerates to the usual
873  2-way diff-tree, which is very nice.
875  Will keep in 'next' for the remainder of the cycle.
878 * cc/interpret-trailers (2014-04-29) 11 commits
879  - Documentation: add documentation for 'git interpret-trailers'
880  - trailer: add tests for commands in config file
881  - trailer: execute command from 'trailer.<name>.command'
882  - trailer: add tests for "git interpret-trailers"
883  - trailer: add interpret-trailers command
884  - trailer: put all the processing together and print
885  - trailer: parse trailers from file or stdin
886  - trailer: process command line trailer arguments
887  - trailer: read and process config information
888  - trailer: process trailers from input message and arguments
889  - trailer: add data structures and basic functions
891  A new filter to programatically edit the tail end of the commit log
892  messages.
895 --------------------------------------------------
896 [Discarded]
898 * jc/format-patch (2013-04-22) 2 commits
899  . format-patch: --inline-single
900  . format-patch: rename "no_inline" field
902  A new option to send a single patch to the standard output to be
903  appended at the bottom of a message.  I personally have no need for
904  this, but it was easy enough to cobble together.  Tests, docs and
905  stripping out more MIMEy stuff are left as exercises to interested
906  parties.