What's cooking (2015/02 #02)
[alt-git.git] / whats-cooking.txt
blob69b49016501cc569288abb5057356e9fcff3393a
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Feb 2015, #02; Thu, 5)
4 X-master-at: 9874fca7122563e28d699a911404fc49d2a24f1c
5 X-next-at: 4a23b1ac164e66f150700c4fdd659c98940bd4a5
7 What's cooking in git.git (Feb 2015, #02; Thu, 5)
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 Git 2.3 is out.  I'll wait for some time for the dust to settle and
15 then rewind and rebuild 'next'.
17 You can find the changes described here in the integration branches
18 of the repositories listed at
20     http://git-blame.blogspot.com/p/git-public-repositories.html
22 --------------------------------------------------
23 [New Topics]
25 * jc/diff-files-ita (2015-02-04) 1 commit
26  - run_diff_files(): clarify computation of sha1 validity
28  Will merge to 'next'.
31 * jk/config-no-ungetc-eof (2015-02-05) 2 commits
32  - config_buf_ungetc: warn when pushing back a random character
33  - config: do not ungetc EOF
35  Will merge to 'next'.
38 * jk/decimal-width-for-uintmax (2015-02-05) 1 commit
39  - decimal_width: avoid integer overflow
41  Will merge to 'next'.
44 * ss/check-builtins-on-windows (2015-02-05) 1 commit
45  - check-builtins: strip executable suffix $X when enumerating builtins
47  Will merge to 'next'.
49 --------------------------------------------------
50 [Stalled]
52 * jn/doc-api-errors (2014-12-04) 1 commit
53  - doc: document error handling functions and conventions
55  For discussion.
58 * pw/remote-set-url-fetch (2014-11-26) 1 commit
59  - remote: add --fetch and --both options to set-url
61  Expecting a reroll.
64 * ms/submodule-update-config-doc (2014-11-03) 1 commit
65  - submodule: clarify documentation for update subcommand
67  Needs a reroll ($gmane/259037).
70 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
71  - git-quiltimport: flip the default not to allow fuzz
72  - git-quiltimport.sh: allow declining fuzz with --exact option
74  "quiltimport" drove "git apply" always with -C1 option to reduce
75  context of the patch in order to give more chance to somewhat stale
76  patches to apply.  Add an "--exact" option to disable, and also
77  "-C$n" option to customize this behaviour.  The top patch
78  optionally flips the default to "--exact".
80  Tired of waiting for an Ack; will discard.
83 * tr/remerge-diff (2014-11-10) 9 commits
84  - t4213: avoid "|" in sed regexp
85  - log --remerge-diff: show what the conflict resolution changed
86  - name-hash: allow dir hashing even when !ignore_case
87  - merge-recursive: allow storing conflict hunks in index
88  - merge_diff_mode: fold all merge diff variants into an enum
89  - combine-diff: do not pass revs->dense_combined_merges redundantly
90  - merge-recursive: -Xindex-only to leave worktree unchanged
91  - merge-recursive: internal flag to avoid touching the worktree
92  - merge-recursive: remove dead conditional in update_stages()
94  "log -p" output learns a new way to let users inspect a merge
95  commit by showing the differences between the automerged result
96  with conflicts the person who recorded the merge would have seen
97  and the final conflict resolution that was recorded in the merge.
99  Waiting for a reroll ($gmane/256591).
102 * hv/submodule-config (2014-11-11) 4 commits
103  - do not die on error of parsing fetchrecursesubmodules option
104  - use new config API for worktree configurations of submodules
105  - extract functions for submodule config set and lookup
106  - implement submodule config cache for lookup of submodule names
108  Kicked back to 'pu' per request ($gmane/255610).
111 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
112  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
113  - git-add--interactive: Preserve diff heading when splitting hunks
115  Waiting for a reroll.
118 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
119  - gitweb: Harden UTF-8 handling in generated links
121  $gmane/250758?
124 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
125  - userdiff: support Java try keyword
126  - userdiff: support C# async methods and correct C# keywords
128  Reviews sent; waiting for a response.
131 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
132  - git-rebase: print name of rev when using shorthand
134  Teach "git rebase -" to report the concrete name of the branch
135  (i.e. the previous one).
137  But it stops short and does not do the same for "git rebase @{-1}".
138  Expecting a reroll.
141 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
142  - merge: drop unused arg from abort_commit method signature
143  - merge: make prepare_to_commit responsible for write_merge_state
144  - t7505: ensure cleanup after hook blocks merge
145  - t7505: add missing &&
147  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
148  run during "git merge".  The log message stresses too much on one
149  hook, prepare-commit-msg, but it would equally apply to other hooks
150  like post-merge, I think.
152  Waiting for a reroll.
155 * jc/graph-post-root-gap (2013-12-30) 3 commits
156  - WIP: document what we want at the end
157  - graph: remove unused code a bit
158  - graph: stuff the current commit into graph->columns[]
160  This was primarily a RFH ($gmane/239580).
163 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
164  - perf-lib: add test_perf_cleanup target
165  - perf-lib: split starting the test from the execution
167  Add test_perf_cleanup shell function to the perf suite, that allows
168  the script writers to define a test with a clean-up action.
170  Will hold.
173 * jc/show-branch (2014-03-24) 5 commits
174  - show-branch: use commit slab to represent bitflags of arbitrary width
175  - show-branch.c: remove "all_mask"
176  - show-branch.c: abstract out "flags" operation
177  - show-branch.c: lift all_mask/all_revs to a global static
178  - show-branch.c: update comment style
180  Waiting for the final step to lift the hard-limit before sending it out.
182 --------------------------------------------------
183 [Cooking]
185 * jc/diff-format-doc (2015-01-28) 1 commit
186  - diff-format doc: a score can follow M for rewrite
188  The documentation incorrectly said that C(opy) and R(ename) are the
189  only ones that can be followed by the score number in the output in
190  the --raw format.
192  Will merge to 'next'.
195 * jk/remote-curl-an-array-in-struct-cannot-be-null (2015-01-28) 1 commit
196  - do not check truth value of flex arrays
198  Will merge to 'next'.
201 * jk/status-read-branch-name-fix (2015-01-28) 1 commit
202  - read_and_strip_branch: fix typo'd address-of operator
204  Code to read branch name from various files in .git/ directory
205  would have misbehaved if the code to write them left an empty file.
207  Will merge to 'next'.
210 * ch/new-gpg-drops-rfc-1991 (2015-01-29) 2 commits
211  - t/lib-gpg: sanity-check that we can actually sign
212  - t/lib-gpg: include separate public keys in keyring.gpg
214  Older GnuPG implementation may not correctly import the keyring
215  material we prepare for the tests to use.
217  Will merge to 'next'.
220 * jc/apply-beyond-symlink (2015-02-03) 4 commits
221  - apply: do not touch a file beyond a symbolic link
222  - apply: do not read from beyond a symbolic link
223  - apply: do not read from the filesystem under --index
224  - apply: reject input that touches outside the working area
226  "git apply" was not very careful about reading from, removing,
227  updating and creating paths outside the working tree (under
228  --index/--cached) or the current directory (when used as a
229  replacement for GNU patch).
231  May need to re-review the tests.
234 * jc/diff-b-m (2015-02-01) 1 commit
235  - diff: do not use creation-half of -B as a rename target candidate
237  "git diff -B -M" produced incorrect patch when the postimage of a
238  completely rewritten file is similar to the preimage of a removed
239  file; such a resulting file must not be expressed as a rename from
240  other place.
242  The fix in this patch is broken, unfortunately.
245 * jc/remote-set-url-doc (2015-01-29) 1 commit
246  - Documentation/git-remote.txt: stress that set-url is not for triangular
248  Clarify in the documentation that "remote.<nick>.pushURL" and
249  "remote.<nick>.URL" are there to name the same repository accessed
250  via different transports, not two separate repositories.
252  Will merge to 'next'.
255 * jc/t4122-use-test-write-lines (2015-01-28) 1 commit
256  - t4122: use test_write_lines from test-lib-functions
258  Will merge to 'next'.
261 * jk/pack-bitmap (2015-02-04) 1 commit
262  - ewah: fix building with gcc < 3.4.0
264  Will merge to 'next'.
267 * jk/prune-mtime (2015-02-02) 1 commit
268  - sha1_file: fix iterating loose alternate objects
270  In v2.2.0, we broke "git prune" that runs in a repository that
271  borrows from an alternate object store.
273  Will merge to 'next'.
276 * ps/submodule-sanitize-path-upon-add (2015-02-02) 1 commit
277  - git-submodule.sh: fix '/././' path normalization
279  Will merge to 'next'.
282 * tc/curl-vernum-output-broken-in-7.11 (2015-02-03) 1 commit
283  - Makefile: handle broken curl version number in version check
285  Cope with irregular output of "curl-config --vernum" given by
286  certain older vintages of cURL.
288  Will merge to 'next'.
291 * tc/missing-http-proxyauth (2015-02-03) 1 commit
292  - http: support curl < 7.10.7
294  Will merge to 'next'.
297 * tc/t9001-noxmailer (2015-01-30) 1 commit
298  - t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'
300  Kyle's update to explicitly support --no-option with older
301  Getopt::Long ($gmane/263203) might be a better alternative
302  if we have to support them in the longer term.
305 * jc/apply-ws-fix-expands-report (2015-01-22) 1 commit
306  - apply: detect and mark whitespace errors in context lines when fixing
307  (this branch uses jc/apply-ws-fix-expands.)
309  "git apply --whitespace=fix" fixed whitespace errors in the common
310  context lines but did so without reporting.
312  Will merge to 'next'.
315 * ks/rebase-i-abbrev (2015-01-22) 1 commit
316  - rebase -i: use full object name internally throughout the script
318  The insn sheet "git rebase -i" creates did not fully honor
319  core.abbrev settings.
321  Will merge to 'next'.
324 * mh/deref-symref-over-helper-transport (2015-01-21) 1 commit
325  - transport-helper: do not request symbolic refs to remote helpers
327  "git fetch" over a remote-helper that cannot respond to "list"
328  command could not fetch from a symbolic reference e.g. HEAD.
330  Will merge to 'next'.
333 * ak/add-i-empty-candidates (2015-01-22) 1 commit
334  - add -i: return from list_and_choose if there is no candidate
336  The interactive "show a list and let the user choose from it"
337  interface "add -i" used showed and prompted to the user even when
338  the candidate list was empty, against which the only "choice" the
339  user could have made was to choose nothing.
341  Will merge to 'next'.
344 * av/wincred-with-at-in-username-fix (2015-01-25) 1 commit
345  - wincred: fix get credential if username has "@"
347  Will merge to 'next'.
350 * jc/conf-var-doc (2015-02-02) 3 commits
351  - CodingGuidelines: describe naming rules for configuration variables
352  - config.txt: mark deprecated variables more prominently
353  - config.txt: clarify that add.ignore-errors is deprecated
356 * jc/doc-log-rev-list-options (2015-01-23) 1 commit
357  - Documentation: what does "git log --indexed-objects" even mean?
359  Will merge to 'next'.
362 * jk/dumb-http-idx-fetch-fix (2015-01-27) 1 commit
363  - dumb-http: do not pass NULL path to parse_pack_index
365  Will merge to 'next'.
368 * ld/p4-submit-hint (2015-01-23) 1 commit
369   (merged to 'next' on 2015-01-23 at ed972d3)
370  + git-p4: correct --prepare-p4-only instructions
372  Will merge to 'master'.
375 * mg/commit-author-no-match-malformed-message (2015-01-26) 1 commit
376  - commit: reword --author error message
378  Will merge to 'next'.
381 * mg/push-repo-option-doc (2015-01-28) 1 commit
382  - git-push.txt: document the behavior of --repo
384  Will merge to 'next'.
387 * ye/http-accept-language (2015-01-28) 1 commit
388  - http: add Accept-Language header if possible
390  Using environment variable LANGUAGE and friends on the client side,
391  send Accept-Language when making HTTP requests.
393  Will merge to 'next'.
396 * ak/typofixes (2015-01-21) 2 commits
397   (merged to 'next' on 2015-01-22 at e36f25a)
398  + t/lib-terminal.sh: fix typo
399  + pack-bitmap: fix typo
401  Will merge to 'master'.
404 * jc/apply-ws-fix-expands (2015-01-22) 3 commits
405  - apply: count the size of postimage correctly
406  - apply: make update_pre_post_images() sanity check the given postlen
407  - apply.c: typofix
408  (this branch is used by jc/apply-ws-fix-expands-report.)
410  "git apply --whitespace=fix" used to under-allocate the memory
411  when the fix resulted in a longer text than the original patch.
413  Will merge to 'next'.
416 * jc/coding-guidelines (2015-01-15) 1 commit
417   (merged to 'next' on 2015-01-22 at 3c96639)
418  + CodingGuidelines: clarify C #include rules
420  Will merge to 'master'.
423 * jc/pretty-format-doc (2015-01-15) 1 commit
424   (merged to 'next' on 2015-01-22 at 2a81ecc)
425  + "log --pretty" documentation: do not forget "tformat:"
427  Will cook in 'next'.
430 * jc/unused-symbols (2015-01-15) 8 commits
431   (merged to 'next' on 2015-01-22 at 77fd5f0)
432  + shallow.c: make check_shallow_file_for_update() static
433  + remote.c: make clear_cas_option() static
434  + urlmatch.c: make match_urls() static
435  + revision.c: make save_parents() and free_saved_parents() static
436  + line-log.c: make line_log_data_init() static
437  + pack-bitmap.c: make pack_bitmap_filename() static
438  + prompt.c: remove git_getpass() nobody uses
439  + http.c: make finish_active_slot() and handle_curl_result() static
441  Mark file-local symbols as "static", and drop functions that nobody
442  uses.
444  Will cook in 'next'.
447 * jk/sanity (2015-01-27) 3 commits
448  - test-lib.sh: set prerequisite SANITY by testing what we really need
449  - tests: correct misuses of POSIXPERM
450  - t/lib-httpd: switch SANITY check for NOT_ROOT
452  Waiting for ack or counter-proposal from Torsten.
453  Otherwise looking good.
456 * js/fsck-opt (2015-01-21) 19 commits
457  - fsck: support ignoring objects in `git fsck` via fsck.skiplist
458  - fsck: git receive-pack: support excluding objects from fsck'ing
459  - fsck: introduce `git fsck --quick`
460  - fsck: support demoting errors to warnings
461  - fsck: document the new receive.fsck.* options
462  - fsck: allow upgrading fsck warnings to errors
463  - fsck: optionally ignore specific fsck issues completely
464  - fsck: disallow demoting grave fsck errors to warnings
465  - fsck: add a simple test for receive.fsck.*
466  - fsck: make fsck_tag() warn-friendly
467  - fsck: handle multiple authors in commits specially
468  - fsck: make fsck_commit() warn-friendly
469  - fsck: make fsck_ident() warn-friendly
470  - fsck: report the ID of the error/warning
471  - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
472  - fsck: offer a function to demote fsck errors to warnings
473  - fsck: provide a function to parse fsck message IDs
474  - fsck: introduce identifiers for fsck messages
475  - fsck: introduce fsck options
477  Need extra set of eyes to review this.
480 * ld/p4-exclude-in-sync (2015-01-28) 2 commits
481   (merged to 'next' on 2015-02-05 at ab410a1)
482  + git-p4: correct "exclude" change
483   (merged to 'next' on 2015-01-22 at f6f1fc7)
484  + git-p4: support excluding paths on sync
486  Will squash them into one and then merge to 'master'.
489 * tb/connect-ipv6-parse-fix (2015-01-22) 3 commits
490  - t5500: show user name and host in diag-url
491  - t5601: add more test cases for IPV6
492  - connect.c: improve parsing of literal IPV6 addresses
494  Need extra set of eyes to review this.
497 * sb/atomic-push-fix (2015-01-23) 6 commits
498  - refs.c: enable large transactions
499  - refs.c: remove unlock_ref and commit_ref from write_ref_sha1
500  - refs.c: move static functions to close and commit refs
501  - refs.c: remove lock_fd from struct ref_lock
502  - t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
503  - update-ref: test handling large transactions properly
504  (this branch uses mh/reflog-expire and sb/atomic-push.)
506  I had to wiggle this in and am not confident I did it correctly.
508  Need extra set of eyes to review this.
511 * jk/strbuf-doc-to-header (2015-01-16) 7 commits
512  - strbuf.h: group documentation for trim functions
513  - strbuf.h: drop boilerplate descriptions of strbuf_split_*
514  - strbuf.h: reorganize api function grouping headers
515  - strbuf.h: format asciidoc code blocks as 4-space indent
516  - strbuf.h: drop asciidoc list formatting from API docs
517  - strbuf.h: unify documentation comments beginnings
518  - strbuf.h: integrate api-strbuf.txt documentation
520  Resolve the "doc vs header" to favor the latter.
523 * ah/usage-strings (2015-01-14) 1 commit
524   (merged to 'next' on 2015-01-22 at bfa5bab)
525  + standardize usage info string format
527  Will cook in 'next'.
530 * ak/stash-store-create-help (2015-01-13) 1 commit
531  - stash: show "create" and "store" subcommands in usage-help
533  Undecided.
536 * jk/blame-commit-label (2015-01-13) 5 commits
537   (merged to 'next' on 2015-01-15 at 1b32e21)
538  + blame.c: fix garbled error message
539  + use xstrdup_or_null to replace ternary conditionals
540  + builtin/commit.c: use xstrdup_or_null instead of envdup
541  + builtin/apply.c: use xstrdup_or_null instead of null_strdup
542  + git-compat-util: add xstrdup_or_null helper
544  Will cook in 'next'.
547 * bc/http-fallback-to-password-after-krb-fails (2015-01-07) 1 commit
548   (merged to 'next' on 2015-01-12 at 4c67038)
549  + remote-curl: fall back to Basic auth if Negotiate fails
551  After attempting and failing a password-less authentication
552  (e.g. kerberos), libcURL refuses to fall back to password based
553  Basic authentication without a bit of help/encouragement.
555  Will cook in 'next'.
558 * bp/diff-relative-config (2015-01-07) 2 commits
559  - diff: teach diff.relative to give default to --relative=<value>
560  - diff: teach --no-relative to override earlier --relative
563 * dk/format-patch-ignore-diff-submodule (2015-01-07) 2 commits
564   (merged to 'next' on 2015-01-12 at 6b4605b)
565  + format-patch: ignore diff.submodule setting
566  + t4255: test am submodule with diff.submodule
568  Setting diff.submodule to 'log' made "git format-patch" produce
569  broken patches.
571  Will cook in 'next'.
574 * nd/attr-optim (2014-12-29) 3 commits
575  - attr: avoid heavy work when we know the specified attr is not defined
576  - attr: do not attempt to expand when we know it's not a macro
577  - attr.c: rename arg name attr_nr to avoid shadowing the global one
580 * cj/log-invert-grep (2015-01-13) 1 commit
581   (merged to 'next' on 2015-01-13 at c908e99)
582  + log: teach --invert-grep option
584  Will cook in 'next'.
587 * km/gettext-n (2015-01-12) 1 commit
588   (merged to 'next' on 2015-01-12 at 0cbbf4a)
589  + gettext.h: add parentheses around N_ expansion if supported
591  Will cook in 'next'.
594 * jn/rerere-fail-on-auto-update-failure (2015-01-08) 1 commit
595   (merged to 'next' on 2015-01-12 at 313c449)
596  + rerere: error out on autoupdate failure
598  "git rerere" (invoked internally from many mergy operations) did
599  not correctly signal errors when told to update the working tree
600  files and failed to do so for whatever reason.
602  Will cook in 'next'.
605 * sb/atomic-push (2015-01-14) 11 commits
606   (merged to 'next' on 2015-01-14 at 12c4e28)
607  + Document receive.advertiseatomic
608   (merged to 'next' on 2015-01-12 at 411c6a6)
609  + t5543-atomic-push.sh: add basic tests for atomic pushes
610  + push.c: add an --atomic argument
611  + send-pack.c: add --atomic command line argument
612  + send-pack: rename ref_update_to_be_sent to check_to_send_update
613  + receive-pack.c: negotiate atomic push support
614  + receive-pack.c: add execute_commands_atomic function
615  + receive-pack.c: move transaction handling in a central place
616  + receive-pack.c: move iterating over all commands outside execute_commands
617  + receive-pack.c: die instead of error in case of possible future bug
618  + receive-pack.c: shorten the execute_commands loop over all commands
619  (this branch is used by sb/atomic-push-fix; uses mh/reflog-expire.)
621  "git push" has been taught a "--atomic" option that makes push to
622  update more than one ref an "all-or-none" affair.
624  Will cook in 'next'.
627 * mh/reflog-expire (2014-12-22) 24 commits
628   (merged to 'next' on 2015-01-12 at 12a7dff)
629  + refs.c: let fprintf handle the formatting
630  + refs.c: don't expose the internal struct ref_lock in the header file
631  + lock_any_ref_for_update(): inline function
632  + refs.c: remove unlock_ref/close_ref/commit_ref from the refs api
633  + reflog_expire(): new function in the reference API
634  + expire_reflog(): treat the policy callback data as opaque
635  + Move newlog and last_kept_sha1 to "struct expire_reflog_cb"
636  + expire_reflog(): move rewrite to flags argument
637  + expire_reflog(): move verbose to flags argument
638  + expire_reflog(): pass flags through to expire_reflog_ent()
639  + struct expire_reflog_cb: a new callback data type
640  + Rename expire_reflog_cb to expire_reflog_policy_cb
641  + expire_reflog(): move updateref to flags argument
642  + expire_reflog(): move dry_run to flags argument
643  + expire_reflog(): add a "flags" argument
644  + expire_reflog(): extract two policy-related functions
645  + Extract function should_expire_reflog_ent()
646  + expire_reflog(): use a lock_file for rewriting the reflog file
647  + expire_reflog(): return early if the reference has no reflog
648  + expire_reflog(): rename "ref" parameter to "refname"
649  + expire_reflog(): it's not an each_ref_fn anymore
650  + refs.c: add a function to append a reflog entry to a fd
651  + refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
652  + refs.c: make ref_transaction_create a wrapper for ref_transaction_update
653  (this branch is used by sb/atomic-push and sb/atomic-push-fix.)
655  Restructure "reflog expire" to fit the reflogs better with the
656  recently updated ref API.
658  Looked reasonable (except that some shortlog entries stood out like
659  a sore thumb).
661  Will cook in 'next'.
664 * jc/push-to-checkout (2015-01-08) 2 commits
665   (merged to 'next' on 2015-01-12 at e64df63)
666  + receive-pack: support push-to-checkout hook
667  + receive-pack: refactor updateInstead codepath
669  Extending the js/push-to-deploy topic, the behaviour of "git push"
670  when updating the working tree and the index with an update to the
671  branch that is checked out can be tweaked by push-to-checkout hook.
673  Will cook in 'next'.
676 * nd/list-files (2015-01-27) 22 commits
677  . t3080: tests for git-list-files
678  . list-files: -M aka diff-cached
679  . list-files -F: show submodules with the new indicator '&'
680  . list-files: add -F/--classify
681  . SQUASH???
682  . list-files: show directories as well as files
683  . list-files: do not show duplicate cached entries
684  . list-files: sort output and remove duplicates
685  . list-files: add -t back
686  . list-files: add -1 short for --no-column
687  . list-files: add -R/--recursive short for --max-depth=-1
688  . list-files: -u does not imply showing stages
689  . list-files: make alias 'ls' default to 'list-files'
690  . list-files: a user friendly version of ls-files and more
691  . ls-files: support --max-depth
692  . ls-files: add --column
693  . ls-files: add --color to highlight file names
694  . ls-files: buffer full item in strbuf before printing
695  . ls_colors.c: highlight submodules like directories
696  . ls_colors.c: add a function to color a file name
697  . ls_colors.c: parse color.ls.* from config file
698  . ls_colors.c: add $LS_COLORS parsing code
700  A new "git list-files" Porcelain command, "ls-files" with bells and
701  whistles.
703  Seems unable to pass its self test (yet).
706 * nd/multiple-work-trees (2015-01-27) 38 commits
707  - t2026 needs procondition SANITY
708  - git-checkout.txt: a note about multiple checkout support for submodules
709  - checkout: add --ignore-other-wortrees
710  - checkout: pass whole struct to parse_branchname_arg instead of individual flags
711  - git-common-dir: make "modules/" per-working-directory directory
712  - checkout: do not fail if target is an empty directory
713  - t2025: add a test to make sure grafts is working from a linked checkout
714  - checkout: don't require a work tree when checking out into a new one
715  - git_path(): keep "info/sparse-checkout" per work-tree
716  - count-objects: report unused files in $GIT_DIR/worktrees/...
717  - gc: support prune --worktrees
718  - gc: factor out gc.pruneexpire parsing code
719  - gc: style change -- no SP before closing parenthesis
720  - checkout: clean up half-prepared directories in --to mode
721  - checkout: reject if the branch is already checked out elsewhere
722  - prune: strategies for linked checkouts
723  - checkout: support checking out into a new working directory
724  - use new wrapper write_file() for simple file writing
725  - wrapper.c: wrapper to open a file, fprintf then close
726  - setup.c: support multi-checkout repo setup
727  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
728  - setup.c: convert check_repository_format_gently to use strbuf
729  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
730  - setup.c: convert is_git_directory() to use strbuf
731  - git-stash: avoid hardcoding $GIT_DIR/logs/....
732  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
733  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
734  - $GIT_COMMON_DIR: a new environment variable
735  - commit: use SEQ_DIR instead of hardcoding "sequencer"
736  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
737  - reflog: avoid constructing .lock path with git_path
738  - *.sh: respect $GIT_INDEX_FILE
739  - git_path(): be aware of file relocation in $GIT_DIR
740  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
741  - path.c: rename vsnpath() to do_git_path()
742  - git_snpath(): retire and replace with strbuf_git_path()
743  - path.c: make get_pathname() call sites return const char *
744  - path.c: make get_pathname() return strbuf instead of static buffer
746  A replacement for contrib/workdir/git-new-workdir that does not
747  rely on symbolic links and make sharing of objects and refs safer
748  by making the borrowee and borrowers aware of each other.
751 * nd/untracked-cache (2015-01-21) 24 commits
752  - git-status.txt: advertisement for untracked cache
753  - untracked cache: guard and disable on system changes
754  - mingw32: add uname()
755  - t7063: tests for untracked cache
756  - update-index: test the system before enabling untracked cache
757  - update-index: manually enable or disable untracked cache
758  - status: enable untracked cache
759  - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
760  - untracked cache: mark index dirty if untracked cache is updated
761  - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
762  - untracked cache: avoid racy timestamps
763  - read-cache.c: split racy stat test to a separate function
764  - untracked cache: invalidate at index addition or removal
765  - untracked cache: load from UNTR index extension
766  - untracked cache: save to an index extension
767  - ewah: add convenient wrapper ewah_serialize_strbuf()
768  - untracked cache: don't open non-existent .gitignore
769  - untracked cache: mark what dirs should be recursed/saved
770  - untracked cache: record/validate dir mtime and reuse cached output
771  - untracked cache: make a wrapper around {open,read,close}dir()
772  - untracked cache: invalidate dirs recursively if .gitignore changes
773  - untracked cache: initial untracked cache validation
774  - untracked cache: record .gitignore information and dir hierarchy
775  - dir.c: optionally compute sha-1 of a .gitignore file
777  Need extra set of eyes to review this.