Meta/Dothem: fix typo that prevented ramdisk testpen from getting used
[git.git] / whats-cooking.txt
blobc6d4f495cc3c621d127fc8b46077a224cb8ae7eb
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Sep 2014, #05; Fri, 19)
4 X-master-at: 97b8860c071898d9e162678ea1035a8ced2f8b1f
5 X-next-at: 7a54a76ab8dddf4a52b3453b206ed4b8f4200891
7 What's cooking in git.git (Sep 2014, #05; Fri, 19)
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 Many topics that have been cooking in 'next' are now in 'master'.
16 For some unknown reason, we ended up seeing that multiple people
17 simultaneously cooking topics that are all on the larger side
18 (i.e. dozen patches or more).  Inevitably larger topics tend to need
19 more rerolls, and they haven't really hit my tree quite yet, even
20 though many have been receiving and responding to reviews quite
21 actively.  Hopefully some may be able to hit 'next' by the end of
22 6th week of this cycle (i.e. early to mid October), or they would
23 have to wait until the next cycle.
25 On the 'maint' front, the first maintenance release for v2.1.x
26 series is out, downmerging the fixes that are already on 'master'
27 accumulated since v2.1.0.
29 You can find the changes described here in the integration branches
30 of the repositories listed at
32     http://git-blame.blogspot.com/p/git-public-repositories.html
34 --------------------------------------------------
35 [Graduated to "master"]
37 * ah/grammofix (2014-09-02) 1 commit
38   (merged to 'next' on 2014-09-12 at 58fbb44)
39  + grammofix in user-facing messages
42 * as/calloc-takes-nmemb-then-size (2014-09-03) 1 commit
43   (merged to 'next' on 2014-09-12 at a287484)
44  + calloc() and xcalloc() takes nmemb and then size
46  Code clean-up.
49 * bb/date-iso-strict (2014-08-29) 1 commit
50   (merged to 'next' on 2014-09-12 at c9d415d)
51  + pretty: provide a strict ISO 8601 date format
53  "log --date=iso" uses a slight variant of ISO 8601 format that is
54  made more human readable.  A new "--date=iso-strict" option gives
55  datetime output that is more strictly conformant.
58 * da/styles (2014-09-02) 1 commit
59   (merged to 'next' on 2014-09-12 at a22322e)
60  + stylefix: asterisks stick to the variable, not the type
63 * ir/makefile-typofix (2014-09-15) 1 commit
64   (merged to 'next' on 2014-09-18 at bc1c273)
65  + Makefile: fix some typos in the preamble
68 * jc/parseopt-verify-short-name (2014-09-04) 1 commit
69   (merged to 'next' on 2014-09-12 at 43dba24)
70  + parse-options: detect attempt to add a duplicate short option name
72  Add checks for a common programming mistake to assign the same
73  short option name to two separate options to help developers.
76 * jk/commit-author-parsing (2014-08-29) 6 commits
77   (merged to 'next' on 2014-09-12 at cfbb6b6)
78  + determine_author_info(): copy getenv output
79  + determine_author_info(): reuse parsing functions
80  + date: use strbufs in date-formatting functions
81  + record_author_date(): use find_commit_header()
82  + record_author_date(): fix memory leak on malformed commit
83  + commit: provide a function to find a header in a buffer
85  Code clean-up.
88 * jk/fast-export-anonymize (2014-08-28) 2 commits
89   (merged to 'next' on 2014-09-12 at 0af10fa)
90  + docs/fast-export: explain --anonymize more completely
91  + teach fast-export an --anonymize option
93  Sometimes users want to report a bug they experience on their
94  repository, but they are not at liberty to share the contents of
95  the repository.  "fast-export" was taught an "--anonymize" option
96  to replace blob contents, names of people and paths and log
97  messages with bland and simple strings to help them.
100 * jk/fsck-exit-code-fix (2014-09-12) 2 commits
101   (merged to 'next' on 2014-09-18 at 34c696f)
102  + fsck: return non-zero status on missing ref tips
103  + fsck: exit with non-zero status upon error from fsck_obj()
105  "git fsck" failed to report that it found corrupt objects via its
106  exit status in some cases.
109 * jk/index-pack-threading-races (2014-08-29) 1 commit
110   (merged to 'next' on 2014-09-12 at 9241312)
111  + index-pack: fix race condition with duplicate bases
113  When receiving an invalid pack stream that records the same object
114  twice, multiple threads got confused due to a race.  We should
115  reject or correct such a stream upon receiving, but that will be a
116  larger change.
119 * jk/send-pack-many-refspecs (2014-08-26) 1 commit
120   (merged to 'next' on 2014-09-12 at 7f4ae4e)
121  + send-pack: take refspecs over stdin
123  The number of refs that can be pushed at once over smart HTTP was
124  limited by the command line length.  The limitation has been lifted
125  by passing these refs from the standard input of send-pack.
128 * jp/index-with-corrupt-stages (2014-08-29) 2 commits
129   (merged to 'next' on 2014-09-12 at 54016d5)
130  + read_index_unmerged(): remove unnecessary loop index adjustment
131  + read_index_from(): catch out of order entries when reading an index file
133  A broken reimplementation of Git could write an invalid index that
134  records both stage #0 and higher stage entries for the same path.
135  Notice and reject such an index, as there is no sensible fallback
136  (we do not know if the broken tool wanted to resolve and forgot to
137  remove higher stage entries, or if it wanted to unresolve and
138  forgot to remove the stage#0 entry).
141 * js/no-test-cmp-for-binaries (2014-09-12) 1 commit
142   (merged to 'next' on 2014-09-15 at c5609e9)
143  + t9300: use test_cmp_bin instead of test_cmp to compare binary files
146 * kb/perf-trace (2014-09-08) 1 commit
147   (merged to 'next' on 2014-09-12 at 371df71)
148  + trace: correct trace_strbuf() parameter type for !HAVE_VARIADIC_MACROS
150  Compilation fix for some compilers.
153 * mb/build-contrib-svn-fe (2014-08-28) 1 commit
154   (merged to 'next' on 2014-09-12 at acb252b)
155  + contrib/svn-fe: fix Makefile
158 * mb/fast-import-delete-root (2014-08-29) 2 commits
159   (merged to 'next' on 2014-09-12 at d0fda49)
160  + fast-import: fix segfault in store_tree()
161  + t9300: test filedelete command
163  An attempt to remove the entire tree in the "git fast-import" input
164  stream caused it to misbehave.
167 * mk/reachable-protect-detached-head (2014-09-03) 1 commit
168   (merged to 'next' on 2014-09-12 at de2b50b)
169  + reachable.c: add HEAD to reachability starting commits
172 * mr/mark-i18n-log-rerere (2014-09-15) 2 commits
173   (merged to 'next' on 2014-09-15 at ba35eb3)
174  + builtin/log.c: mark strings for translation
175  + rerere.h: mark string for translation
178 * rs/export-strbuf-addchars (2014-09-08) 2 commits
179   (merged to 'next' on 2014-09-12 at 8b25fe0)
180  + strbuf: use strbuf_addchars() for adding a char multiple times
181  + strbuf: export strbuf_addchars()
183  Code clean-up.
186 * rs/merge-tree-simplify (2014-09-02) 1 commit
187   (merged to 'next' on 2014-09-12 at 5b4c349)
188  + merge-tree: remove unused df_conflict arguments
190  Code clean-up.
193 * rs/more-uses-of-skip-prefix (2014-09-02) 2 commits
194   (merged to 'next' on 2014-09-12 at 156a436)
195  + pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt()
196  + connect: simplify check_ref() using skip_prefix() and starts_with()
198  Code clean-up.
201 * rs/simplify-config-include (2014-09-02) 1 commit
202   (merged to 'next' on 2014-09-12 at e4ffd6d)
203  + config: simplify git_config_include()
205  Code clean-up.
208 * rs/simplify-http-walker (2014-09-02) 1 commit
209   (merged to 'next' on 2014-09-12 at b5178d2)
210  + http-walker: simplify process_alternates_response() using strbuf
212  Code clean-up.
215 * so/rebase-doc (2014-09-16) 1 commit
216   (merged to 'next' on 2014-09-18 at cce521d)
217  + Documentation/git-rebase.txt: <upstream> must be given to specify <branch>
220 * sp/doc-update-index-cacheinfo (2014-09-11) 1 commit
221   (merged to 'next' on 2014-09-15 at 11ec716)
222  + Documentation: use single-parameter --cacheinfo in example
225 * ss/compat-default-source-for-newer-gnu (2014-09-15) 1 commit
226   (merged to 'next' on 2014-09-15 at 0e87594)
227  + compat-util: add _DEFAULT_SOURCE define
230 * ta/config-add-to-empty-or-true-fix (2014-09-11) 2 commits
231   (merged to 'next' on 2014-09-15 at af779a7)
232  + config: avoid a funny sentinel value "a^"
233   (merged to 'next' on 2014-08-29 at d219212)
234  + make config --add behave correctly for empty and NULL values
236  "git config --add section.var val" used to lose existing
237  section.var whose value was an empty string.
240 * tb/complete-diff-ignore-blank-lines (2014-09-03) 1 commit
241   (merged to 'next' on 2014-09-12 at 1b7d259)
242  + completion: Add --ignore-blank-lines for diff
245 * tb/crlf-tests (2014-09-02) 3 commits
246   (merged to 'next' on 2014-09-12 at 2c950af)
247  + MinGW: update tests to handle a native eol of crlf
248  + Makefile: propagate NATIVE_CRLF to C
249  + t0027: Tests for core.eol=native, eol=lf, eol=crlf
252 * wk/pre-push-sample-hook (2014-09-11) 1 commit
253   (merged to 'next' on 2014-09-18 at 6f8c9d7)
254  + pre-push.sample: Write error message to stderr
256 --------------------------------------------------
257 [Stalled]
259 * rs/ref-transaction (2014-09-12) 20 commits
260  . remote rm/prune: print a message when writing packed-refs fails
261  . ref_transaction_commit: bail out on failure to remove a ref
262  . lockfile: remove unable_to_lock_error
263  . refs.c: do not permit err == NULL
264  . for-each-ref.c: improve message before aborting on broken ref
265  . refs.c: fix handling of badly named refs
266  . branch -d: avoid repeated symref resolution
267  . refs.c: change resolve_ref_unsafe reading argument to be a flags field
268  . refs.c: make write_ref_sha1 static
269  . fetch.c: change s_update_ref to use a ref transaction
270  . refs.c: ref_transaction_commit: distinguish name conflicts from other errors
271  . refs.c: pass a skip list to name_conflict_fn
272  . refs.c: call lock_ref_sha1_basic directly from commit
273  . refs.c: move the check for valid refname to lock_ref_sha1_basic
274  . rename_ref: don't ask read_ref_full where the ref came from
275  . refs.c: pass the ref log message to _create/delete/update instead of _commit
276  . refs.c: add an err argument to delete_ref_loose
277  . wrapper.c: add a new function unlink_or_msg
278  . wrapper.c: remove/unlink_or_warn: simplify, treat ENOENT as success
279  . mv test: recreate mod/ directory instead of relying on stale copy
281  Rerolled and was asked to wait.  Seems to break HEAD reflog
282  upon "checkout HEAD^0".
284  Expecting another reroll.
287 * tr/remerge-diff (2014-09-08) 8 commits
288  - log --remerge-diff: show what the conflict resolution changed
289  - name-hash: allow dir hashing even when !ignore_case
290  - merge-recursive: allow storing conflict hunks in index
291  - merge_diff_mode: fold all merge diff variants into an enum
292  - combine-diff: do not pass revs->dense_combined_merges redundantly
293  - merge-recursive: -Xindex-only to leave worktree unchanged
294  - merge-recursive: internal flag to avoid touching the worktree
295  - merge-recursive: remove dead conditional in update_stages()
297  "log -p" output learns a new way to let users inspect a merge
298  commit by showing the differences between the automerged result
299  with conflicts the person who recorded the merge would have seen
300  and the final conflict resolution that was recorded in the merge.
302  Review comments sent.
305 * hv/submodule-config (2014-06-30) 4 commits
306  - do not die on error of parsing fetchrecursesubmodules option
307  - use new config API for worktree configurations of submodules
308  - extract functions for submodule config set and lookup
309  - implement submodule config cache for lookup of submodule names
311  Kicked back to 'pu' per request ($gmane/255610).
314 * jt/timer-settime (2014-08-29) 9 commits
315  - use timer_settime() for new platforms
316  - autoconf: check for timer_settime()
317  - autoconf: check for struct itimerspec
318  - autoconf: check for struct sigevent
319  - autoconf: check for struct timespec
320  - autoconf: check for timer_t
321  - autoconf: check for setitimer()
322  - autoconf: check for struct itimerval
323  - git-compat-util.h: add missing semicolon after struct itimerval
325  Reviewed, discussed and wanting for a reroll.
328 * jk/pack-bitmap (2014-08-04) 1 commit
329  - pack-bitmap: do not use gcc packed attribute
331  Hold, waiting for Karsten's replacement.
334 * cb/mergetool-difftool (2014-07-21) 2 commits
335  - difftool: don't assume that default sh is sane
336  - mergetool: don't require a work tree for --tool-help
338  Update the way the "difftool --help" shows the help message that is
339  shared with the "mergetool" to reduce one shell dependency.
341  Will be rerolled.
344 * rr/mergetool-temporary-filename-tweak (2014-08-21) 1 commit
345  - Allow the user to change the temporary file name for mergetool
347  Needs rerolling (new paragraph in doc seems to be in a wrong place)
350 * jk/tag-contains (2014-06-30) 8 commits
351  . perf: add tests for tag --contains
352  . tag: use commit_contains
353  . commit: provide a fast multi-tip contains function
354  . string-list: add pos to iterator callback
355  . add functions for memory-efficient bitmaps
356  . paint_down_to_common: use prio_queue
357  . tag: factor out decision to stream tags
358  . tag: allow --sort with -n
360  Expecting a reroll.
363 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
364  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
365  - git-add--interactive: Preserve diff heading when splitting hunks
367  Waiting for a reroll.
370 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
371  - gitweb: Harden UTF-8 handling in generated links
373  $gmane/250758?
376 * rh/prompt-tests (2014-06-05) 11 commits
377  - t9904: new __git_ps1 tests for Zsh
378  - test-lib: make it possible to override how test code is eval'd
379  - lib-prompt-tests.sh: add variable for string that encodes percent in PS1
380  - lib-prompt-tests.sh: put all tests inside a function
381  - t9903: move prompt tests to a new lib-prompt-tests.sh file
382  - t9903: move PS1 color code variable definitions to lib-bash.sh
383  - t9903: include "Bash" in test names via new $shellname var
384  - t9903: run pc mode tests again with PS1 expansion disabled
385  - t9903: move test name prefix to a separate variable
386  - t9903: put the Bash pc mode prompt test cases in a function
387  - t9903: remove Zsh test from the suite of Bash prompt tests
389  Expecting a reroll to limit the damage to test_eval_; also reported
390  to be broken with older zsh that are still in the field ($gmane/251231).
393 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
394  - userdiff: support Java try keyword
395  - userdiff: support C# async methods and correct C# keywords
397  Reviews sent; waiting for a response.
400 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
401  - git-rebase: print name of rev when using shorthand
403  Teach "git rebase -" to report the concrete name of the branch
404  (i.e. the previous one).
406  But it stops short and does not do the same for "git rebase @{-1}".
407  Expecting a reroll.
410 * jk/makefile (2014-02-05) 16 commits
411  . FIXUP
412  . move LESS/LV pager environment to Makefile
413  . Makefile: teach scripts to include make variables
414  . FIXUP
415  . Makefile: auto-build C strings from make variables
416  . Makefile: drop *_SQ variables
417  . FIXUP
418  . Makefile: add c-quote helper function
419  . Makefile: introduce sq function for shell-quoting
420  . Makefile: always create files via make-var
421  . Makefile: store GIT-* sentinel files in MAKE/
422  . Makefile: prefer printf to echo for GIT-*
423  . Makefile: use tempfile/mv strategy for GIT-*
424  . Makefile: introduce make-var helper function
425  . Makefile: fix git-instaweb dependency on gitweb
426  . Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
428  Simplify the Makefile rules and macros that exist primarily for
429  quoting purposes, and make it easier to robustly express the
430  dependency rules.
432  Expecting a reroll.
435 * po/everyday-doc (2014-01-27) 1 commit
436  - Make 'git help everyday' work
438  This may make the said command to emit something, but the source is
439  not meant to be formatted into a manual pages to begin with, and
440  also its contents are a bit stale.  It may be a good first step in
441  the right direction, but needs more work to at least get the
442  mark-up right before public consumption.
444  Waiting for a reroll (thread ending at $gmane/254746)
447 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
448  - merge: drop unused arg from abort_commit method signature
449  - merge: make prepare_to_commit responsible for write_merge_state
450  - t7505: ensure cleanup after hook blocks merge
451  - t7505: add missing &&
453  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
454  run during "git merge".  The log message stresses too much on one
455  hook, prepare-commit-msg, but it would equally apply to other hooks
456  like post-merge, I think.
458  Waiting for a reroll.
461 * jc/graph-post-root-gap (2013-12-30) 3 commits
462  - WIP: document what we want at the end
463  - graph: remove unused code a bit
464  - graph: stuff the current commit into graph->columns[]
466  This was primarily a RFH ($gmane/239580).
469 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
470  - perf-lib: add test_perf_cleanup target
471  - perf-lib: split starting the test from the execution
473  Add test_perf_cleanup shell function to the perf suite, that allows
474  the script writers to define a test with a clean-up action.
476  Will hold.
479 * jc/show-branch (2014-03-24) 5 commits
480  - show-branch: use commit slab to represent bitflags of arbitrary width
481  - show-branch.c: remove "all_mask"
482  - show-branch.c: abstract out "flags" operation
483  - show-branch.c: lift all_mask/all_revs to a global static
484  - show-branch.c: update comment style
486  Waiting for the final step to lift the hard-limit before sending it out.
488 --------------------------------------------------
489 [Cooking]
491 * jk/faster-name-conflicts (2014-09-12) 1 commit
492   (merged to 'next' on 2014-09-19 at 34d2840)
493  + refs: speed up is_refname_available
495  Optimize the check to see if a ref $F can be created by making sure
496  no existing ref has $F/ as its prefix, which especially matters in
497  a repository with a large number of existing refs.
499  Will merge to 'master'.
502 * jk/write-packed-refs-via-stdio (2014-09-10) 1 commit
503   (merged to 'next' on 2014-09-19 at f1e94fb)
504  + refs: write packed_refs file using stdio
506  Optimize the code path to write out the packed-refs file, which
507  especially matters in a repository with a large number of refs.
509  Will merge to 'master'.
512 * da/include-compat-util-first-in-c (2014-09-15) 4 commits
513  - SQUASH???
514  - check-headers: add header usage checks for .c files
515  - Makefile: add check-headers target
516  - cleanups: ensure that git-compat-util.h is included first
519 * da/rev-parse-verify-quiet (2014-09-19) 4 commits
520  - stash: prefer --quiet over shell redirection of the standard error stream
521  - refs: make rev-parse --quiet actually quiet
522  - t1503: use test_must_be_empty
523  - Documentation: a note about stdout for git rev-parse --verify --quiet
525  "rev-parse --verify --quiet $name" is meant to quietly exit with a
526  non-zero status when $name is not a valid object name, but still
527  gave error messages in some cases.
529  Will merge to 'next'.
532 * hj/pretty-naked-decoration (2014-09-18) 1 commit
533  - pretty: add %D format specifier
535  Will merge to 'next'.
538 * jc/ignore-sigpipe-while-running-hooks (2014-09-16) 1 commit
539   (merged to 'next' on 2014-09-19 at 7abf293)
540  + receive-pack: allow hooks to ignore its standard input stream
542  pre- and post-receive hooks are no longer required to read all
543  their inputs.
545  Will merge to 'master'.
548 * jk/close-stderr-of-credential-cache-deamon (2014-09-16) 1 commit
549   (merged to 'next' on 2014-09-19 at 51ba3be)
550  + credential-cache: close stderr in daemon process
552  Plug fd leaks.
554  Will merge to 'master'.
557 * jk/mbox-from-line (2014-09-16) 1 commit
558   (merged to 'next' on 2014-09-19 at 314af77)
559  + mailinfo: make ">From" in-body header check more robust
561  Some MUAs mangled a line in a message that begins with "From " to
562  ">From " when writing to a mailbox file and feeding such an input
563  to "git am" used to lose such a line.
565  Will merge to 'master'.
568 * jk/prune-packed-server-info (2014-09-15) 4 commits
569   (merged to 'next' on 2014-09-19 at 5e6c398)
570  + repack: call prune_packed_objects() and update_server_info() directly
571  + server-info: clean up after writing info/packs
572  + make update-server-info more robust
573  + prune-packed: fix minor memory leak
575  Code cleanup.
577  Will merge to 'master'.
580 * pr/use-default-sigpipe-setting (2014-09-18) 1 commit
581  - unblock and unignore SIGPIPE
583  We used to get confused when a process called us with SIGPIPE
584  ignored; we do want to die with SIGPIPE when the output is not
585  read by default, and do ignore the signal when appropriate.
587  Will merge to 'next'.
590 * rs/realloc-array (2014-09-18) 2 commits
591  - use REALLOC_ARRAY for changing the allocation size of arrays
592  - add macro REALLOC_ARRAY
594  Code cleanup.
596  Will merge to 'next'.
599 * jk/branch-verbose-merged (2014-09-18) 1 commit
600  - branch: clean up commit flags after merge-filter walk
602  The "--verbose" option no longer breaks "git branch --merged $it".
604  Will merge to 'next'.
607 * sb/help-unknown-command-sort-fix (2014-09-18) 1 commit
608  - help: fix the size passed to qsort
610  Code cleanup.
612  Will merge to 'next'.
615 * jc/hash-object (2014-09-11) 3 commits
616   (merged to 'next' on 2014-09-19 at ea6ac62)
617  + hash-object: add --literally option
618  + hash-object: pass 'write_object' as a flag
619  + hash-object: reduce file-scope statics
620  (this branch is used by jc/hash-object-fsck-tag.)
622  "hash-object" learned a new "--literally" option to hash any random
623  garbage into a loose object, to allow us to create a test data for
624  mechanisms to catch corrupt objects.
626  Will merge to 'next'.
629 * jc/hash-object-fsck-tag (2014-09-12) 2 commits
630   (merged to 'next' on 2014-09-19 at f14a7fe)
631  + t1450: make sure fsck detects a malformed tagger line
632  + Merge branch 'js/fsck-tag-validation' into HEAD
633  (this branch uses jc/hash-object and js/fsck-tag-validation.)
635  Using "hash-object --literally", test one of the new breakages
636  js/fsck-tag-validation topic teaches "fsck" to catch is caught.
638  Will merge to 'next'.
641 * js/fsck-tag-validation (2014-09-12) 6 commits
642   (merged to 'next' on 2014-09-19 at 4a62182)
643  + Make sure that index-pack --strict checks tag objects
644  + Add regression tests for stricter tag fsck'ing
645  + fsck: check tag objects' headers
646  + Make sure fsck_commit_buffer() does not run out of the buffer
647  + fsck_object(): allow passing object data separately from the object itself
648  + Refactor type_from_string() to allow continuing after detecting an error
649  (this branch is used by jc/hash-object-fsck-tag.)
651  Teach "git fsck" to inspect the contents of annotated tag objects.
653  Will merge to 'next'.
656 * mh/lockfile (2014-09-16) 35 commits
657  - get_locked_file_path(): new function
658  - lockfile.c: rename static functions
659  - lockfile: rename LOCK_NODEREF to LOCK_NO_DEREF
660  - commit_locked_index(): extract a function commit_lock_file_to()
661  - trim_last_path_component(): replace last_path_elm()
662  - resolve_symlink(): take a strbuf parameter
663  - resolve_symlink(): use a strbuf for internal scratch space
664  - struct lock_file: change the filename member into a strbuf
665  - commit_lock_file(): use a strbuf to manage temporary space
666  - try_merge_strategy(): use a statically-allocated lock_file object
667  - try_merge_strategy(): remove redundant lock_file allocation
668  - struct lock_file: declare some fields volatile
669  - lockfile: avoid transitory invalid states
670  - git_config_set_multivar_in_file(): avoid call to rollback_lock_file()
671  - dump_marks(): remove a redundant call to rollback_lock_file()
672  - api-lockfile: document edge cases
673  - commit_lock_file(): rollback lock file on failure to rename
674  - commit_lock_file(): if close fails, roll back
675  - commit_lock_file(): die() if called for unlocked lockfile object
676  - commit_lock_file(): inline temporary variable
677  - remove_lock_file(): call rollback_lock_file()
678  - lock_file(): exit early if lockfile cannot be opened
679  - write_packed_entry_fn(): convert cb_data into a (const int *)
680  - prepare_index(): declare return value to be (const char *)
681  - delete_ref_loose(): don't muck around in the lock_file's filename
682  - cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
683  - lockfile.c: document the various states of lock_file objects
684  - lock_file(): always add lock_file object to lock_file_list
685  - hold_lock_file_for_append(): release lock on errors
686  - lockfile: unlock file if lockfile permissions cannot be adjusted
687  - rollback_lock_file(): set fd to -1
688  - rollback_lock_file(): exit early if lock is not active
689  - rollback_lock_file(): do not clear filename redundantly
690  - api-lockfile: expand the documentation
691  - unable_to_lock_die(): rename function from unable_to_lock_index_die()
693  Rerolled, reviews in progress; it seems that we will see another reroll?
696 * nd/multiple-work-trees (2014-09-16) 32 commits
697  - t2025: add a test to make sure grafts is working from a linked checkout
698  - checkout: don't require a work tree when checking out into a new one
699  - git_path(): keep "info/sparse-checkout" per work-tree
700  - count-objects: report unused files in $GIT_DIR/worktrees/...
701  - gc: support prune --worktrees
702  - gc: factor out gc.pruneexpire parsing code
703  - gc: style change -- no SP before closing parenthesis
704  - checkout: clean up half-prepared directories in --to mode
705  - checkout: reject if the branch is already checked out elsewhere
706  - prune: strategies for linked checkouts
707  - checkout: support checking out into a new working directory
708  - use new wrapper write_file() for simple file writing
709  - wrapper.c: wrapper to open a file, fprintf then close
710  - setup.c: support multi-checkout repo setup
711  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
712  - setup.c: convert check_repository_format_gently to use strbuf
713  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
714  - setup.c: convert is_git_directory() to use strbuf
715  - git-stash: avoid hardcoding $GIT_DIR/logs/....
716  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
717  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
718  - $GIT_COMMON_DIR: a new environment variable
719  - commit: use SEQ_DIR instead of hardcoding "sequencer"
720  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
721  - reflog: avoid constructing .lock path with git_path
722  - *.sh: respect $GIT_INDEX_FILE
723  - git_path(): be aware of file relocation in $GIT_DIR
724  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
725  - path.c: rename vsnpath() to do_git_path()
726  - git_snpath(): retire and replace with strbuf_git_path()
727  - path.c: make get_pathname() call sites return const char *
728  - path.c: make get_pathname() return strbuf instead of static buffer
730  A replacement for contrib/workdir/git-new-workdir that does not
731  rely on symbolic links and make sharing of objects and refs safer
732  by making the borrowee and borrowers aware of each other.
734  Rerolled, reviews in progress; it seems that we will see another reroll?
737 * cc/interpret-trailers (2014-09-15) 11 commits
738  - Documentation: add documentation for 'git interpret-trailers'
739  - trailer: add tests for commands in config file
740  - trailer: execute command from 'trailer.<name>.command'
741  - trailer: add tests for "git interpret-trailers"
742  - trailer: add interpret-trailers command
743  - trailer: put all the processing together and print
744  - trailer: parse trailers from file or stdin
745  - trailer: process command line trailer arguments
746  - trailer: read and process config information
747  - trailer: process trailers from input message and arguments
748  - trailer: add data structures and basic functions
750  A new filter to programatically edit the tail end of the commit log
751  messages.
753  Rerolled, with some review comments but not much; it seems that we
754  will see another reroll?
757 * sp/stream-clean-filter (2014-08-28) 6 commits
758  - convert: stream from fd to required clean filter to reduce used address space
759  - copy_fd(): do not close the input file descriptor
760  - mmap_limit: introduce GIT_MMAP_LIMIT to allow testing expected mmap size
761  - memory_limit: use git_env_ulong() to parse GIT_ALLOC_LIMIT
762  - config.c: add git_env_ulong() to parse environment variable
763  - convert: drop arguments other than 'path' from would_convert_to_git()
765  Rerolled.  Comments & reviews?
768 * jc/push-cert (2014-09-17) 23 commits
769  - signed push: allow stale nonce in stateless mode
770  - signed push: teach smart-HTTP to pass "git push --signed" around
771  - signed push: fortify against replay attacks
772  - signed push: add "pushee" header to push certificate
773  - signed push: remove duplicated protocol info
774  - send-pack: send feature request on push-cert packet
775  - receive-pack: GPG-validate push certificates
776  - push: the beginning of "git push --signed"
777  - pack-protocol doc: typofix for PKT-LINE
778  - gpg-interface: move parse_signature() to where it should be
779  - gpg-interface: move parse_gpg_output() to where it should be
780  - send-pack: clarify that cmds_sent is a boolean
781  - send-pack: refactor inspecting and resetting status and sending commands
782  - send-pack: rename "new_refs" to "need_pack_data"
783  - receive-pack: factor out capability string generation
784  - send-pack: factor out capability string generation
785  - send-pack: always send capabilities
786  - send-pack: refactor decision to send update per ref
787  - send-pack: move REF_STATUS_REJECT_NODELETE logic a bit higher
788  - receive-pack: factor out queueing of command
789  - receive-pack: do not reuse old_sha1[] for other things
790  - receive-pack: parse feature request a bit earlier
791  - receive-pack: do not overallocate command structure
793  Allow "git push" request to be signed, so that it can be verified
794  audited, using the GPG signature of the person who pushed, that the
795  tips of branches at a public repository really point the commits
796  the pusher wanted to, without having to "trust" the server.
798  Will merge to 'next'.
801 * jc/test-lazy-prereq (2014-06-13) 1 commit
802  - tests: drop GIT_*_TIMING_TESTS environment variable support
804  Test-script clean-up.
806  Will merge to 'next'.
809 * mt/patch-id-stable (2014-06-10) 1 commit
810  - patch-id: change default to stable
812  Teaches "git patch-id" to compute the patch ID that does not change
813  when the files in a single patch is reordered. As this new algorithm
814  is backward incompatible, the last bit to flip it to be the default
815  is left out of 'master' for now.
817  Nobody seems to be jumping up & down requesting this last step,
818  which makes the result somewhat backward incompatible.
819  Will perhaps drop.