What's cooking (2015/02 #01)
[alt-git.git] / whats-cooking.txt
blob751ff450f801f8a168396526a11110e1929aec4d
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Feb 2015, #01; Tue, 3)
4 X-master-at: 0d1c285af265459006c012aa4415175c2db961ad
5 X-next-at: 303d43c5ff509a8324ff30a824663dd552b0d231
7 What's cooking in git.git (Feb 2015, #01; Tue, 3)
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 We will see 2.3 final later this week, hopefully.
16 You can find the changes described here in the integration branches
17 of the repositories listed at
19     http://git-blame.blogspot.com/p/git-public-repositories.html
21 --------------------------------------------------
22 [New Topics]
24 * jc/diff-format-doc (2015-01-28) 1 commit
25  - diff-format doc: a score can follow M for rewrite
27  The documentation incorrectly said that C(opy) and R(ename) are the
28  only ones that can be followed by the score number in the output in
29  the --raw format.
31  Will merge to 'next'.
34 * jk/remote-curl-an-array-in-struct-cannot-be-null (2015-01-28) 1 commit
35  - do not check truth value of flex arrays
37  Will merge to 'next'.
40 * jk/status-read-branch-name-fix (2015-01-28) 1 commit
41  - read_and_strip_branch: fix typo'd address-of operator
43  Code to read branch name from various files in .git/ directory
44  would have misbehaved if the code to write them left an empty file.
46  Will merge to 'next'.
49 * ch/new-gpg-drops-rfc-1991 (2015-01-29) 2 commits
50  - t/lib-gpg: sanity-check that we can actually sign
51  - t/lib-gpg: include separate public keys in keyring.gpg
53  Older GnuPG implementation may not correctly import the keyring
54  material we prepare for the tests to use.
56  Will merge to 'next'.
59 * jc/apply-beyond-symlink (2015-02-03) 4 commits
60  - apply: do not touch a file beyond a symbolic link
61  - apply: do not read from beyond a symbolic link
62  - apply: do not read from the filesystem under --index
63  - apply: reject input that touches outside the working area
65  "git apply" was not very careful about reading from, removing,
66  updating and creating paths outside the working tree (under
67  --index/--cached) or the current directory (when used as a
68  replacement for GNU patch).
70  May need to re-review the tests.
73 * jc/diff-b-m (2015-02-01) 1 commit
74  - diff: do not use creation-half of -B as a rename target candidate
76  "git diff -B -M" produced incorrect patch when the postimage of a
77  completely rewritten file is similar to the preimage of a removed
78  file; such a resulting file must not be expressed as a rename from
79  other place.
81  The fix in this patch is broken, unfortunately.
84 * jc/remote-set-url-doc (2015-01-29) 1 commit
85  - Documentation/git-remote.txt: stress that set-url is not for triangular
87  Clarify in the documentation that "remote.<nick>.pushURL" and
88  "remote.<nick>.URL" are there to name the same repository accessed
89  via different transports, not two separate repositories.
91  Will merge to 'next'.
94 * jc/t4122-use-test-write-lines (2015-01-28) 1 commit
95  - t4122: use test_write_lines from test-lib-functions
97  Will merge to 'next'.
100 * jk/pack-bitmap (2015-02-03) 1 commit
101  - [NEEDS SOB] ewah: fix building with gcc < 3.4.0
103  Need to get the S-o-by and Acked-by straightend out.
106 * jk/prune-mtime (2015-02-02) 1 commit
107  - sha1_file: fix iterating loose alternate objects
109  In v2.2.0, we broke "git prune" that runs in a repository that
110  borrows from an alternate object store.
112  Will merge to 'next'.
115 * ps/submodule-sanitize-path-upon-add (2015-02-02) 1 commit
116  - git-submodule.sh: fix '/././' path normalization
118  Will merge to 'next'.
121 * tc/curl-vernum-output-broken-in-7.11 (2015-02-03) 1 commit
122  - Makefile: handle broken curl version number in version check
124  Cope with irregular output of "curl-config --vernum" given by
125  certain older vintages of cURL.
127  Will merge to 'next'.
130 * tc/missing-http-proxyauth (2015-02-03) 1 commit
131  - http: support curl < 7.10.7
133  Will merge to 'next'.
136 * tc/t9001-noxmailer (2015-01-30) 1 commit
137  - t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'
139  Kyle's update to explicitly support --no-option with older
140  Getopt::Long ($gmane/263203) might be a better alternative
141  if we have to support them in the longer term.
143 --------------------------------------------------
144 [Stalled]
146 * jn/doc-api-errors (2014-12-04) 1 commit
147  - doc: document error handling functions and conventions
149  For discussion.
152 * pw/remote-set-url-fetch (2014-11-26) 1 commit
153  - remote: add --fetch and --both options to set-url
155  Expecting a reroll.
158 * ms/submodule-update-config-doc (2014-11-03) 1 commit
159  - submodule: clarify documentation for update subcommand
161  Needs a reroll ($gmane/259037).
164 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
165  - git-quiltimport: flip the default not to allow fuzz
166  - git-quiltimport.sh: allow declining fuzz with --exact option
168  "quiltimport" drove "git apply" always with -C1 option to reduce
169  context of the patch in order to give more chance to somewhat stale
170  patches to apply.  Add an "--exact" option to disable, and also
171  "-C$n" option to customize this behaviour.  The top patch
172  optionally flips the default to "--exact".
174  Tired of waiting for an Ack; will discard.
177 * tr/remerge-diff (2014-11-10) 9 commits
178  - t4213: avoid "|" in sed regexp
179  - log --remerge-diff: show what the conflict resolution changed
180  - name-hash: allow dir hashing even when !ignore_case
181  - merge-recursive: allow storing conflict hunks in index
182  - merge_diff_mode: fold all merge diff variants into an enum
183  - combine-diff: do not pass revs->dense_combined_merges redundantly
184  - merge-recursive: -Xindex-only to leave worktree unchanged
185  - merge-recursive: internal flag to avoid touching the worktree
186  - merge-recursive: remove dead conditional in update_stages()
188  "log -p" output learns a new way to let users inspect a merge
189  commit by showing the differences between the automerged result
190  with conflicts the person who recorded the merge would have seen
191  and the final conflict resolution that was recorded in the merge.
193  Waiting for a reroll ($gmane/256591).
196 * hv/submodule-config (2014-11-11) 4 commits
197  - do not die on error of parsing fetchrecursesubmodules option
198  - use new config API for worktree configurations of submodules
199  - extract functions for submodule config set and lookup
200  - implement submodule config cache for lookup of submodule names
202  Kicked back to 'pu' per request ($gmane/255610).
205 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
206  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
207  - git-add--interactive: Preserve diff heading when splitting hunks
209  Waiting for a reroll.
212 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
213  - gitweb: Harden UTF-8 handling in generated links
215  $gmane/250758?
218 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
219  - userdiff: support Java try keyword
220  - userdiff: support C# async methods and correct C# keywords
222  Reviews sent; waiting for a response.
225 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
226  - git-rebase: print name of rev when using shorthand
228  Teach "git rebase -" to report the concrete name of the branch
229  (i.e. the previous one).
231  But it stops short and does not do the same for "git rebase @{-1}".
232  Expecting a reroll.
235 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
236  - merge: drop unused arg from abort_commit method signature
237  - merge: make prepare_to_commit responsible for write_merge_state
238  - t7505: ensure cleanup after hook blocks merge
239  - t7505: add missing &&
241  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
242  run during "git merge".  The log message stresses too much on one
243  hook, prepare-commit-msg, but it would equally apply to other hooks
244  like post-merge, I think.
246  Waiting for a reroll.
249 * jc/graph-post-root-gap (2013-12-30) 3 commits
250  - WIP: document what we want at the end
251  - graph: remove unused code a bit
252  - graph: stuff the current commit into graph->columns[]
254  This was primarily a RFH ($gmane/239580).
257 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
258  - perf-lib: add test_perf_cleanup target
259  - perf-lib: split starting the test from the execution
261  Add test_perf_cleanup shell function to the perf suite, that allows
262  the script writers to define a test with a clean-up action.
264  Will hold.
267 * jc/show-branch (2014-03-24) 5 commits
268  - show-branch: use commit slab to represent bitflags of arbitrary width
269  - show-branch.c: remove "all_mask"
270  - show-branch.c: abstract out "flags" operation
271  - show-branch.c: lift all_mask/all_revs to a global static
272  - show-branch.c: update comment style
274  Waiting for the final step to lift the hard-limit before sending it out.
276 --------------------------------------------------
277 [Cooking]
279 * jc/apply-ws-fix-expands-report (2015-01-22) 1 commit
280  - apply: detect and mark whitespace errors in context lines when fixing
281  (this branch uses jc/apply-ws-fix-expands.)
283  "git apply --whitespace=fix" fixed whitespace errors in the common
284  context lines but did so without reporting.
286  Will merge to 'next'.
289 * ks/rebase-i-abbrev (2015-01-22) 1 commit
290  - rebase -i: use full object name internally throughout the script
292  The insn sheet "git rebase -i" creates did not fully honor
293  core.abbrev settings.
295  Will merge to 'next'.
298 * mh/deref-symref-over-helper-transport (2015-01-21) 1 commit
299  - transport-helper: do not request symbolic refs to remote helpers
301  "git fetch" over a remote-helper that cannot respond to "list"
302  command could not fetch from a symbolic reference e.g. HEAD.
304  Will merge to 'next'.
307 * ak/add-i-empty-candidates (2015-01-22) 1 commit
308  - add -i: return from list_and_choose if there is no candidate
310  The interactive "show a list and let the user choose from it"
311  interface "add -i" used showed and prompted to the user even when
312  the candidate list was empty, against which the only "choice" the
313  user could have made was to choose nothing.
315  Will merge to 'next'.
318 * av/wincred-with-at-in-username-fix (2015-01-25) 1 commit
319  - wincred: fix get credential if username has "@"
321  Will merge to 'next'.
324 * jc/conf-var-doc (2015-02-02) 3 commits
325  - CodingGuidelines: describe naming rules for configuration variables
326  - config.txt: mark deprecated variables more prominently
327  - config.txt: clarify that add.ignore-errors is deprecated
330 * jc/doc-log-rev-list-options (2015-01-23) 1 commit
331  - Documentation: what does "git log --indexed-objects" even mean?
333  Will merge to 'next'.
336 * jk/dumb-http-idx-fetch-fix (2015-01-27) 1 commit
337  - dumb-http: do not pass NULL path to parse_pack_index
339  Will merge to 'next'.
342 * ld/p4-submit-hint (2015-01-23) 1 commit
343   (merged to 'next' on 2015-01-23 at ed972d3)
344  + git-p4: correct --prepare-p4-only instructions
346  Will merge to 'master' after 2.3 final.
349 * mg/commit-author-no-match-malformed-message (2015-01-26) 1 commit
350  - commit: reword --author error message
352  Will merge to 'next'.
355 * mg/push-repo-option-doc (2015-01-28) 1 commit
356  - git-push.txt: document the behavior of --repo
358  Will merge to 'next'.
361 * ye/http-accept-language (2015-01-28) 1 commit
362  - http: add Accept-Language header if possible
364  Using environment variable LANGUAGE and friends on the client side,
365  send Accept-Language when making HTTP requests.
367  Will merge to 'next'.
370 * ak/typofixes (2015-01-21) 2 commits
371   (merged to 'next' on 2015-01-22 at e36f25a)
372  + t/lib-terminal.sh: fix typo
373  + pack-bitmap: fix typo
375  Will merge to 'master'.
378 * jc/apply-ws-fix-expands (2015-01-22) 3 commits
379  - apply: count the size of postimage correctly
380  - apply: make update_pre_post_images() sanity check the given postlen
381  - apply.c: typofix
382  (this branch is used by jc/apply-ws-fix-expands-report.)
384  "git apply --whitespace=fix" used to under-allocate the memory
385  when the fix resulted in a longer text than the original patch.
387  Will merge to 'next'.
390 * jc/coding-guidelines (2015-01-15) 1 commit
391   (merged to 'next' on 2015-01-22 at 3c96639)
392  + CodingGuidelines: clarify C #include rules
394  Will merge to 'master'.
397 * jc/pretty-format-doc (2015-01-15) 1 commit
398   (merged to 'next' on 2015-01-22 at 2a81ecc)
399  + "log --pretty" documentation: do not forget "tformat:"
401  Will cook in 'next'.
404 * jc/unused-symbols (2015-01-15) 8 commits
405   (merged to 'next' on 2015-01-22 at 77fd5f0)
406  + shallow.c: make check_shallow_file_for_update() static
407  + remote.c: make clear_cas_option() static
408  + urlmatch.c: make match_urls() static
409  + revision.c: make save_parents() and free_saved_parents() static
410  + line-log.c: make line_log_data_init() static
411  + pack-bitmap.c: make pack_bitmap_filename() static
412  + prompt.c: remove git_getpass() nobody uses
413  + http.c: make finish_active_slot() and handle_curl_result() static
415  Mark file-local symbols as "static", and drop functions that nobody
416  uses.
418  Will cook in 'next'.
421 * jk/sanity (2015-01-27) 3 commits
422  - test-lib.sh: set prerequisite SANITY by testing what we really need
423  - tests: correct misuses of POSIXPERM
424  - t/lib-httpd: switch SANITY check for NOT_ROOT
426  Waiting for ack or counter-proposal from Torsten.
427  Otherwise looking good.
430 * js/fsck-opt (2015-01-21) 19 commits
431  - fsck: support ignoring objects in `git fsck` via fsck.skiplist
432  - fsck: git receive-pack: support excluding objects from fsck'ing
433  - fsck: introduce `git fsck --quick`
434  - fsck: support demoting errors to warnings
435  - fsck: document the new receive.fsck.* options
436  - fsck: allow upgrading fsck warnings to errors
437  - fsck: optionally ignore specific fsck issues completely
438  - fsck: disallow demoting grave fsck errors to warnings
439  - fsck: add a simple test for receive.fsck.*
440  - fsck: make fsck_tag() warn-friendly
441  - fsck: handle multiple authors in commits specially
442  - fsck: make fsck_commit() warn-friendly
443  - fsck: make fsck_ident() warn-friendly
444  - fsck: report the ID of the error/warning
445  - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
446  - fsck: offer a function to demote fsck errors to warnings
447  - fsck: provide a function to parse fsck message IDs
448  - fsck: introduce identifiers for fsck messages
449  - fsck: introduce fsck options
451  Need extra set of eyes to review this.
454 * ld/p4-exclude-in-sync (2015-01-28) 2 commits
455  - git-p4: correct "exclude" change
456   (merged to 'next' on 2015-01-22 at f6f1fc7)
457  + git-p4: support excluding paths on sync
459  Will squash into one after 2.3 final.
462 * tb/connect-ipv6-parse-fix (2015-01-22) 3 commits
463  - t5500: show user name and host in diag-url
464  - t5601: add more test cases for IPV6
465  - connect.c: improve parsing of literal IPV6 addresses
467  Need extra set of eyes to review this.
470 * sb/atomic-push-fix (2015-01-23) 6 commits
471  - refs.c: enable large transactions
472  - refs.c: remove unlock_ref and commit_ref from write_ref_sha1
473  - refs.c: move static functions to close and commit refs
474  - refs.c: remove lock_fd from struct ref_lock
475  - t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
476  - update-ref: test handling large transactions properly
477  (this branch uses mh/reflog-expire and sb/atomic-push.)
479  I had to wiggle this in and am not confident I did it correctly.
481  Need extra set of eyes to review this.
484 * jk/strbuf-doc-to-header (2015-01-16) 7 commits
485  - strbuf.h: group documentation for trim functions
486  - strbuf.h: drop boilerplate descriptions of strbuf_split_*
487  - strbuf.h: reorganize api function grouping headers
488  - strbuf.h: format asciidoc code blocks as 4-space indent
489  - strbuf.h: drop asciidoc list formatting from API docs
490  - strbuf.h: unify documentation comments beginnings
491  - strbuf.h: integrate api-strbuf.txt documentation
493  Resolve the "doc vs header" to favor the latter.
496 * ah/usage-strings (2015-01-14) 1 commit
497   (merged to 'next' on 2015-01-22 at bfa5bab)
498  + standardize usage info string format
500  Will cook in 'next'.
503 * ak/stash-store-create-help (2015-01-13) 1 commit
504  - stash: show "create" and "store" subcommands in usage-help
506  Undecided.
509 * jk/blame-commit-label (2015-01-13) 5 commits
510   (merged to 'next' on 2015-01-15 at 1b32e21)
511  + blame.c: fix garbled error message
512  + use xstrdup_or_null to replace ternary conditionals
513  + builtin/commit.c: use xstrdup_or_null instead of envdup
514  + builtin/apply.c: use xstrdup_or_null instead of null_strdup
515  + git-compat-util: add xstrdup_or_null helper
517  Will cook in 'next'.
520 * bc/http-fallback-to-password-after-krb-fails (2015-01-07) 1 commit
521   (merged to 'next' on 2015-01-12 at 4c67038)
522  + remote-curl: fall back to Basic auth if Negotiate fails
524  After attempting and failing a password-less authentication
525  (e.g. kerberos), libcURL refuses to fall back to password based
526  Basic authentication without a bit of help/encouragement.
528  Will cook in 'next'.
531 * bp/diff-relative-config (2015-01-07) 2 commits
532  - diff: teach diff.relative to give default to --relative=<value>
533  - diff: teach --no-relative to override earlier --relative
536 * dk/format-patch-ignore-diff-submodule (2015-01-07) 2 commits
537   (merged to 'next' on 2015-01-12 at 6b4605b)
538  + format-patch: ignore diff.submodule setting
539  + t4255: test am submodule with diff.submodule
541  Setting diff.submodule to 'log' made "git format-patch" produce
542  broken patches.
544  Will cook in 'next'.
547 * nd/attr-optim (2014-12-29) 3 commits
548  - attr: avoid heavy work when we know the specified attr is not defined
549  - attr: do not attempt to expand when we know it's not a macro
550  - attr.c: rename arg name attr_nr to avoid shadowing the global one
553 * cj/log-invert-grep (2015-01-13) 1 commit
554   (merged to 'next' on 2015-01-13 at c908e99)
555  + log: teach --invert-grep option
557  Will cook in 'next'.
560 * km/gettext-n (2015-01-12) 1 commit
561   (merged to 'next' on 2015-01-12 at 0cbbf4a)
562  + gettext.h: add parentheses around N_ expansion if supported
564  Will cook in 'next'.
567 * jn/rerere-fail-on-auto-update-failure (2015-01-08) 1 commit
568   (merged to 'next' on 2015-01-12 at 313c449)
569  + rerere: error out on autoupdate failure
571  "git rerere" (invoked internally from many mergy operations) did
572  not correctly signal errors when told to update the working tree
573  files and failed to do so for whatever reason.
575  Will cook in 'next'.
578 * sb/atomic-push (2015-01-14) 11 commits
579   (merged to 'next' on 2015-01-14 at 12c4e28)
580  + Document receive.advertiseatomic
581   (merged to 'next' on 2015-01-12 at 411c6a6)
582  + t5543-atomic-push.sh: add basic tests for atomic pushes
583  + push.c: add an --atomic argument
584  + send-pack.c: add --atomic command line argument
585  + send-pack: rename ref_update_to_be_sent to check_to_send_update
586  + receive-pack.c: negotiate atomic push support
587  + receive-pack.c: add execute_commands_atomic function
588  + receive-pack.c: move transaction handling in a central place
589  + receive-pack.c: move iterating over all commands outside execute_commands
590  + receive-pack.c: die instead of error in case of possible future bug
591  + receive-pack.c: shorten the execute_commands loop over all commands
592  (this branch is used by sb/atomic-push-fix; uses mh/reflog-expire.)
594  "git push" has been taught a "--atomic" option that makes push to
595  update more than one ref an "all-or-none" affair.
597  Will cook in 'next'.
600 * mh/reflog-expire (2014-12-22) 24 commits
601   (merged to 'next' on 2015-01-12 at 12a7dff)
602  + refs.c: let fprintf handle the formatting
603  + refs.c: don't expose the internal struct ref_lock in the header file
604  + lock_any_ref_for_update(): inline function
605  + refs.c: remove unlock_ref/close_ref/commit_ref from the refs api
606  + reflog_expire(): new function in the reference API
607  + expire_reflog(): treat the policy callback data as opaque
608  + Move newlog and last_kept_sha1 to "struct expire_reflog_cb"
609  + expire_reflog(): move rewrite to flags argument
610  + expire_reflog(): move verbose to flags argument
611  + expire_reflog(): pass flags through to expire_reflog_ent()
612  + struct expire_reflog_cb: a new callback data type
613  + Rename expire_reflog_cb to expire_reflog_policy_cb
614  + expire_reflog(): move updateref to flags argument
615  + expire_reflog(): move dry_run to flags argument
616  + expire_reflog(): add a "flags" argument
617  + expire_reflog(): extract two policy-related functions
618  + Extract function should_expire_reflog_ent()
619  + expire_reflog(): use a lock_file for rewriting the reflog file
620  + expire_reflog(): return early if the reference has no reflog
621  + expire_reflog(): rename "ref" parameter to "refname"
622  + expire_reflog(): it's not an each_ref_fn anymore
623  + refs.c: add a function to append a reflog entry to a fd
624  + refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
625  + refs.c: make ref_transaction_create a wrapper for ref_transaction_update
626  (this branch is used by sb/atomic-push and sb/atomic-push-fix.)
628  Restructure "reflog expire" to fit the reflogs better with the
629  recently updated ref API.
631  Looked reasonable (except that some shortlog entries stood out like
632  a sore thumb).
634  Will cook in 'next'.
637 * jc/push-to-checkout (2015-01-08) 2 commits
638   (merged to 'next' on 2015-01-12 at e64df63)
639  + receive-pack: support push-to-checkout hook
640  + receive-pack: refactor updateInstead codepath
642  Extending the js/push-to-deploy topic, the behaviour of "git push"
643  when updating the working tree and the index with an update to the
644  branch that is checked out can be tweaked by push-to-checkout hook.
646  Will cook in 'next'.
649 * nd/list-files (2015-01-27) 22 commits
650  . t3080: tests for git-list-files
651  . list-files: -M aka diff-cached
652  . list-files -F: show submodules with the new indicator '&'
653  . list-files: add -F/--classify
654  . SQUASH???
655  . list-files: show directories as well as files
656  . list-files: do not show duplicate cached entries
657  . list-files: sort output and remove duplicates
658  . list-files: add -t back
659  . list-files: add -1 short for --no-column
660  . list-files: add -R/--recursive short for --max-depth=-1
661  . list-files: -u does not imply showing stages
662  . list-files: make alias 'ls' default to 'list-files'
663  . list-files: a user friendly version of ls-files and more
664  . ls-files: support --max-depth
665  . ls-files: add --column
666  . ls-files: add --color to highlight file names
667  . ls-files: buffer full item in strbuf before printing
668  . ls_colors.c: highlight submodules like directories
669  . ls_colors.c: add a function to color a file name
670  . ls_colors.c: parse color.ls.* from config file
671  . ls_colors.c: add $LS_COLORS parsing code
673  A new "git list-files" Porcelain command, "ls-files" with bells and
674  whistles.
676  Seems unable to pass its self test (yet).
679 * nd/multiple-work-trees (2015-01-27) 38 commits
680  - t2026 needs procondition SANITY
681  - git-checkout.txt: a note about multiple checkout support for submodules
682  - checkout: add --ignore-other-wortrees
683  - checkout: pass whole struct to parse_branchname_arg instead of individual flags
684  - git-common-dir: make "modules/" per-working-directory directory
685  - checkout: do not fail if target is an empty directory
686  - t2025: add a test to make sure grafts is working from a linked checkout
687  - checkout: don't require a work tree when checking out into a new one
688  - git_path(): keep "info/sparse-checkout" per work-tree
689  - count-objects: report unused files in $GIT_DIR/worktrees/...
690  - gc: support prune --worktrees
691  - gc: factor out gc.pruneexpire parsing code
692  - gc: style change -- no SP before closing parenthesis
693  - checkout: clean up half-prepared directories in --to mode
694  - checkout: reject if the branch is already checked out elsewhere
695  - prune: strategies for linked checkouts
696  - checkout: support checking out into a new working directory
697  - use new wrapper write_file() for simple file writing
698  - wrapper.c: wrapper to open a file, fprintf then close
699  - setup.c: support multi-checkout repo setup
700  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
701  - setup.c: convert check_repository_format_gently to use strbuf
702  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
703  - setup.c: convert is_git_directory() to use strbuf
704  - git-stash: avoid hardcoding $GIT_DIR/logs/....
705  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
706  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
707  - $GIT_COMMON_DIR: a new environment variable
708  - commit: use SEQ_DIR instead of hardcoding "sequencer"
709  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
710  - reflog: avoid constructing .lock path with git_path
711  - *.sh: respect $GIT_INDEX_FILE
712  - git_path(): be aware of file relocation in $GIT_DIR
713  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
714  - path.c: rename vsnpath() to do_git_path()
715  - git_snpath(): retire and replace with strbuf_git_path()
716  - path.c: make get_pathname() call sites return const char *
717  - path.c: make get_pathname() return strbuf instead of static buffer
719  A replacement for contrib/workdir/git-new-workdir that does not
720  rely on symbolic links and make sharing of objects and refs safer
721  by making the borrowee and borrowers aware of each other.
724 * nd/untracked-cache (2015-01-21) 24 commits
725  - git-status.txt: advertisement for untracked cache
726  - untracked cache: guard and disable on system changes
727  - mingw32: add uname()
728  - t7063: tests for untracked cache
729  - update-index: test the system before enabling untracked cache
730  - update-index: manually enable or disable untracked cache
731  - status: enable untracked cache
732  - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
733  - untracked cache: mark index dirty if untracked cache is updated
734  - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
735  - untracked cache: avoid racy timestamps
736  - read-cache.c: split racy stat test to a separate function
737  - untracked cache: invalidate at index addition or removal
738  - untracked cache: load from UNTR index extension
739  - untracked cache: save to an index extension
740  - ewah: add convenient wrapper ewah_serialize_strbuf()
741  - untracked cache: don't open non-existent .gitignore
742  - untracked cache: mark what dirs should be recursed/saved
743  - untracked cache: record/validate dir mtime and reuse cached output
744  - untracked cache: make a wrapper around {open,read,close}dir()
745  - untracked cache: invalidate dirs recursively if .gitignore changes
746  - untracked cache: initial untracked cache validation
747  - untracked cache: record .gitignore information and dir hierarchy
748  - dir.c: optionally compute sha-1 of a .gitignore file
750  Need extra set of eyes to review this.
752 --------------------------------------------------
753 [Discarded]
755 * jc/push-cert-hmac-optim (2014-09-25) 2 commits
756  . receive-pack: truncate hmac early and convert only necessary bytes
757  . sha1_to_hex: split out "hex-format n bytes" helper and use it
759  This is "we could do this if we wanted to", not "we measured and it
760  improves performance critical codepath".
763 * mt/patch-id-stable (2014-06-10) 1 commit
764  . patch-id: change default to stable
766  Nobody seems to be jumping up & down requesting this last step,
767  which makes the result somewhat backward incompatible.
770 * sb/copy-fd-errno (2014-11-17) 1 commit
771  . copy.c: make copy_fd preserve meaningful errno
774 * cj/grep-none-match (2015-01-06) 1 commit
775  . git-log: added --none-match option
777  "git log --none-match --grep=WIP" will show only commits that are
778  not marked as WIP.
780  cj/log-invert-grep replaces this.
783 * lf/blame-commit-label (2015-01-12) 1 commit
784  . blame.c: fix garbled error message
786  jk/blame-commit-label replaces this.