1 To: git@vger.kernel.org
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
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 --------------------------------------------------
25 * jc/diff-files-ita (2015-02-04) 1 commit
26 - run_diff_files(): clarify computation of sha1 validity
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
38 * jk/decimal-width-for-uintmax (2015-02-05) 1 commit
39 - decimal_width: avoid integer overflow
44 * ss/check-builtins-on-windows (2015-02-05) 1 commit
45 - check-builtins: strip executable suffix $X when enumerating builtins
49 --------------------------------------------------
52 * jn/doc-api-errors (2014-12-04) 1 commit
53 - doc: document error handling functions and conventions
58 * pw/remote-set-url-fetch (2014-11-26) 1 commit
59 - remote: add --fetch and --both options to set-url
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
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}".
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.
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 --------------------------------------------------
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
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
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
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:"
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
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
530 * ak/stash-store-create-help (2015-01-13) 1 commit
531 - stash: show "create" and "store" subcommands in usage-help
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
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.
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
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
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
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.
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.
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
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.
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
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
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.