1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Mar 2015, #09; Thu, 26)
4 X-master-at: 2dfb2e07cb0cb979f630643b57dca579a0359a9d
5 X-next-at: 1e1e5fdfb345c0ff9265604de8d64ca01d55f26a
7 What's cooking in git.git (Mar 2015, #09; Thu, 26)
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 Good news is that a few GSoC Microprojects have been merged already
15 to 'master'; from my vague recollection of past years, perhaps this
16 year's batch of students are of better quality? I dunno, but it
17 that is the case, it is a welcome change.
19 A preview release 2.4-rc0 has been tagged. I do not expect no major
20 topics to graduate to 'master' before the final; many topics in
21 'next' touch important issues and crucial code paths and I'd prefer
22 to see them cooked in 'next' for a few more weeks, rather than
23 merging them early and having to make last-minute reverts for the
26 I'll also start dropping stalled topics from 'pu' as part of spring
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 * ct/prompt-untracked-fix (2015-03-15) 1 commit
38 (merged to 'next' on 2015-03-20 at 0d57eaf)
39 + git prompt: use toplevel to find untracked files
41 The prompt script (in contrib/) did not show the untracked sign
42 when working in a subdirectory without any untracked files.
45 * dj/log-graph-with-no-walk (2015-03-19) 1 commit
46 (merged to 'next' on 2015-03-20 at cb636c0)
47 + revision: forbid combining --graph and --no-walk
49 "git log --graph --no-walk A B..." is a otcnflicting request that
50 asks nonsense; no-walk tells us show discrete points in the
51 history, while graph asks to draw connections between these
52 discrete points. Forbid the combination.
55 * jc/report-path-error-to-dir (2015-03-24) 1 commit
56 (merged to 'next' on 2015-03-24 at 6e97221)
57 + report_path_error(): move to dir.c
62 * jc/submitting-patches-mention-send-email (2015-03-15) 1 commit
63 (merged to 'next' on 2015-03-23 at a9581fd)
64 + SubmittingPatches: encourage users to use format-patch and send-email
66 Recommend format-patch and send-email for those who want to submit
67 patches to this project.
70 * jk/cleanup-failed-clone (2015-03-19) 2 commits
71 (merged to 'next' on 2015-03-23 at 1f26d93)
72 + clone: drop period from end of die_errno message
73 + clone: initialize atexit cleanup handler earlier
75 An failure early in the "git clone" that started creating the
76 working tree and repository could have resulted in some directories
77 and files left without getting cleaned up.
80 * jk/fetch-pack (2015-03-19) 4 commits
81 (merged to 'next' on 2015-03-23 at 4357f3d)
82 + fetch-pack: remove dead assignment to ref->new_sha1
83 + fetch_refs_via_pack: free extra copy of refs
84 + filter_ref: make a copy of extra "sought" entries
85 + filter_ref: avoid overwriting ref->old_sha1 with garbage
87 "git fetch" that fetches a commit using the allow-tip-sha1-in-want
88 extension could have failed to fetch all the requested refs.
91 * jk/prune-with-corrupt-refs (2015-03-20) 5 commits
92 (merged to 'next' on 2015-03-23 at 68af8a9)
93 + refs.c: drop curate_packed_refs
94 + repack: turn on "ref paranoia" when doing a destructive repack
95 + prune: turn on ref_paranoia flag
96 + refs: introduce a "ref paranoia" flag
97 + t5312: test object deletion code paths in a corrupted repository
99 "git prune" used to largely ignore broken refs when deciding which
100 objects are still being used, which could spread an existing small
101 damage and make it a larger one.
104 * jk/run-command-capture (2015-03-22) 7 commits
105 (merged to 'next' on 2015-03-23 at f6db88b)
106 + run-command: forbid using run_command with piped output
107 + trailer: use capture_command
108 + submodule: use capture_command
109 + wt-status: use capture_command
110 + run-command: introduce capture_command helper
111 + wt_status: fix signedness mismatch in strbuf_read call
112 + wt-status: don't flush before running "submodule status"
114 The run-command interface was easy to abuse and make a pipe for us
115 to read from the process, wait for the process to finish and then
116 attempt to read its output, which is a pattern that lead to a
117 deadlock. Fix such uses by introducing a helper to do this
118 correctly (i.e. we need to read first and then wait the process to
119 finish) and also add code to prevent such abuse in the run-command
123 * jk/simplify-csum-file-sha1fd-check (2015-03-19) 1 commit
124 (merged to 'next' on 2015-03-20 at 6f6d1c2)
125 + sha1fd_check: die when we cannot open the file
130 * jk/test-chain-lint (2015-03-25) 36 commits
131 (merged to 'next' on 2015-03-25 at 011a687)
132 + t9001: drop save_confirm helper
133 + t0020: use test_* helpers instead of hand-rolled messages
134 + t: simplify loop exit-code status variables
135 + t: fix some trivial cases of ignored exit codes in loops
136 + t7701: fix ignored exit code inside loop
137 + t3305: fix ignored exit code inside loop
138 + t0020: fix ignored exit code inside loops
139 + perf-lib: fix ignored exit code inside loop
140 (merged to 'next' on 2015-03-24 at 31df637)
141 + t6039: fix broken && chain
142 + t9158, t9161: fix broken &&-chain in git-svn tests
143 + t9104: fix test for following larger parents
144 + t4104: drop hand-rolled error reporting
145 + t0005: fix broken &&-chains
146 + t7004: fix embedded single-quotes
147 + t0050: appease --chain-lint
148 + t9001: use test_when_finished
149 + t4117: use modern test_* helpers
150 + t6034: use modern test_* helpers
151 + t1301: use modern test_* helpers
152 + t0020: use modern test_* helpers
153 + t6030: use modern test_* helpers
154 + t9502: fix &&-chain breakage
155 + t7201: fix &&-chain breakage
156 + t3600: fix &&-chain breakage for setup commands
157 + t: avoid using ":" for comments
158 + t: wrap complicated expect_code users in a block
159 + t: use test_expect_code instead of hand-rolled comparison
160 + t: use test_might_fail for diff and grep
161 + t: fix &&-chaining issues around setup which might fail
162 + t: use test_must_fail instead of hand-rolled blocks
163 + t: use verbose instead of hand-rolled errors
164 + t: assume test_cmp produces verbose output
165 + t: fix trivial &&-chain breakage
166 + t: fix moderate &&-chain breakage
167 + t: fix severe &&-chain breakage
168 + t/test-lib: introduce --chain-lint option
170 People often forget to chain the commands in their test together
171 with &&, leaving a failure from an earlier command in the test go
172 unnoticed. The new GIT_TEST_CHAIN_LINT mechanism allows you to
173 catch such a mistake more easily.
176 * kd/rev-list-bisect-first-parent (2015-03-19) 1 commit
177 (merged to 'next' on 2015-03-20 at 5477bf5)
178 + rev-list: refuse --first-parent combined with --bisect
180 "git rev-list --bisect --first-parent" does not work (yet) and can
181 even cause SEGV; forbid it. "git log --bisect --first-parent"
182 would not be useful until "git bisect --first-parent" materializes,
183 so it is also forbidden for now.
186 * nd/doc-git-index-version (2015-03-24) 1 commit
187 + git.txt: list index versions in plain English
192 * sg/completion-gitcomp-nl-for-refs (2015-03-22) 1 commit
193 (merged to 'next' on 2015-03-25 at b095b79)
194 + completion: use __gitcomp_nl() for completing refs
199 * tg/fix-check-order-with-split-index (2015-03-20) 1 commit
200 (merged to 'next' on 2015-03-23 at c361f8e)
201 + read-cache: fix reading of split index
203 The split-index mode introduced at v2.3.0-rc0~41 was broken in the
204 codepath to protect us against a broken reimplementation of Git
205 that writes an invalid index with duplicated index entries, etc.
208 * tg/test-index-v4 (2015-03-20) 1 commit
209 (merged to 'next' on 2015-03-23 at 6b2eb0a)
210 + t1700: make test pass with index-v4
215 * ws/grep-quiet-no-pager (2015-03-19) 1 commit
216 (merged to 'next' on 2015-03-20 at b3f5fe6)
217 + grep: fix "--quiet" overwriting current output
219 Even though "git grep --quiet" is run merely to ask for the exit
220 status, we spawned the pager regardless. Stop doing that.
222 --------------------------------------------------
225 * pt/credential-xdg (2015-03-25) 4 commits
226 (merged to 'next' on 2015-03-25 at 765128e)
227 + t0302: "unreadable" test needs POSIXPERM
228 (merged to 'next' on 2015-03-24 at 9a3706e)
229 + t0302: test credential-store support for XDG_CONFIG_HOME
230 + git-credential-store: support XDG_CONFIG_HOME
231 + git-credential-store: support multiple credential files
233 Tweak the sample "store" backend of the credential helper to honor
234 XDG configuration file locations when specified.
236 As this may see further updates, and also this is not an urgent
237 issue anyway, I'll give it a bit more time for it to simmer.
242 * jc/merge-deprecate-old-syntax (2015-03-26) 2 commits
243 - merge: drop 'git merge <message> HEAD <commit>' syntax
244 - merge: deprecate 'git merge <message> HEAD <commit>' syntax
246 An RFC to really start the process of removing the ancient syntax
247 to invoke a two-way merge, which has been deprecated since October
251 * ph/push-doc-cas (2015-03-26) 1 commit
252 - git-push.txt: clean up force-with-lease wording
254 Will merge to 'next' and then to 'master'.
257 * ss/pull-rebase-preserve (2015-03-26) 1 commit
258 - docs: clarify "preserve" option wording for git-pull
260 Will merge to 'next' and then to 'master'.
262 --------------------------------------------------
265 * as/userdiff-sh (2015-03-13) 1 commit
266 - userdiff: funcname and word patterns for sh
268 Add a built-in "userdiff" patterns to word-split and identify
269 notable lines in shell scripts to help presentation of diff and
275 * mh/fdopen-with-retry (2015-03-06) 6 commits
276 - buffer_fdinit(): use fdopen_with_retry()
277 - update_info_file(): use fdopen_with_retry()
278 - copy_to_log(): use fdopen_with_retry()
279 - fdopen_lock_file(): use fdopen_with_retry()
280 - SQUASH??? $gmane/264889
281 - xfdopen(): if first attempt fails, free memory and try again
283 Various parts of the code where they call fdopen() can fail when
284 they run out of memory; attempt to proceed by retrying the
285 operation after freeing some resource.
287 Waiting for further comments.
290 * nd/untracked-cache (2015-03-12) 24 commits
291 - git-status.txt: advertisement for untracked cache
292 - untracked cache: guard and disable on system changes
293 - mingw32: add uname()
294 - t7063: tests for untracked cache
295 - update-index: test the system before enabling untracked cache
296 - update-index: manually enable or disable untracked cache
297 - status: enable untracked cache
298 - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
299 - untracked cache: mark index dirty if untracked cache is updated
300 - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
301 - untracked cache: avoid racy timestamps
302 - read-cache.c: split racy stat test to a separate function
303 - untracked cache: invalidate at index addition or removal
304 - untracked cache: load from UNTR index extension
305 - untracked cache: save to an index extension
306 - ewah: add convenient wrapper ewah_serialize_strbuf()
307 - untracked cache: don't open non-existent .gitignore
308 - untracked cache: mark what dirs should be recursed/saved
309 - untracked cache: record/validate dir mtime and reuse cached output
310 - untracked cache: make a wrapper around {open,read,close}dir()
311 - untracked cache: invalidate dirs recursively if .gitignore changes
312 - untracked cache: initial untracked cache validation
313 - untracked cache: record .gitignore information and dir hierarchy
314 - dir.c: optionally compute sha-1 of a .gitignore file
316 Need extra sets of eyes to review this.
319 * ak/stash-store-create-help (2015-01-13) 1 commit
320 - stash: show "create" and "store" subcommands in usage-help
325 * bp/diff-relative-config (2015-01-07) 2 commits
326 - diff: teach diff.relative to give default to --relative=<value>
327 - diff: teach --no-relative to override earlier --relative
332 * jc/diff-b-m (2015-02-23) 5 commits
335 - diffcore-rename: allow easier debugging
336 - diffcore-rename.c: add locate_rename_src()
337 - diffcore-break: allow debugging
339 "git diff -B -M" produced incorrect patch when the postimage of a
340 completely rewritten file is similar to the preimage of a removed
341 file; such a resulting file must not be expressed as a rename from
344 The fix in this patch is broken, unfortunately.
347 * pw/remote-set-url-fetch (2014-11-26) 1 commit
348 - remote: add --fetch and --both options to set-url
353 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
354 - git-quiltimport: flip the default not to allow fuzz
355 - git-quiltimport.sh: allow declining fuzz with --exact option
357 "quiltimport" drove "git apply" always with -C1 option to reduce
358 context of the patch in order to give more chance to somewhat stale
359 patches to apply. Add an "--exact" option to disable, and also
360 "-C$n" option to customize this behaviour. The top patch
361 optionally flips the default to "--exact".
363 Tired of waiting for an Ack
367 * tr/remerge-diff (2014-11-10) 9 commits
368 - t4213: avoid "|" in sed regexp
369 - log --remerge-diff: show what the conflict resolution changed
370 - name-hash: allow dir hashing even when !ignore_case
371 - merge-recursive: allow storing conflict hunks in index
372 - merge_diff_mode: fold all merge diff variants into an enum
373 - combine-diff: do not pass revs->dense_combined_merges redundantly
374 - merge-recursive: -Xindex-only to leave worktree unchanged
375 - merge-recursive: internal flag to avoid touching the worktree
376 - merge-recursive: remove dead conditional in update_stages()
378 "log -p" output learns a new way to let users inspect a merge
379 commit by showing the differences between the automerged result
380 with conflicts the person who recorded the merge would have seen
381 and the final conflict resolution that was recorded in the merge.
383 Waiting for a reroll ($gmane/256591).
386 * hv/submodule-config (2014-11-11) 4 commits
387 - do not die on error of parsing fetchrecursesubmodules option
388 - use new config API for worktree configurations of submodules
389 - extract functions for submodule config set and lookup
390 - implement submodule config cache for lookup of submodule names
392 Kicked back to 'pu' per request ($gmane/255610).
395 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
396 - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
397 - git-add--interactive: Preserve diff heading when splitting hunks
399 Tired of waiting for a reroll.
403 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
404 - gitweb: Harden UTF-8 handling in generated links
410 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
411 - userdiff: support Java try keyword
412 - userdiff: support C# async methods and correct C# keywords
414 Reviews sent; tired of waiting for a response.
418 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
419 - git-rebase: print name of rev when using shorthand
421 Teach "git rebase -" to report the concrete name of the branch
422 (i.e. the previous one).
424 But it stops short and does not do the same for "git rebase @{-1}".
425 Tired of waiting for a reroll.
429 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
430 - merge: drop unused arg from abort_commit method signature
431 - merge: make prepare_to_commit responsible for write_merge_state
432 - t7505: ensure cleanup after hook blocks merge
433 - t7505: add missing &&
435 Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
436 run during "git merge". The log message stresses too much on one
437 hook, prepare-commit-msg, but it would equally apply to other hooks
438 like post-merge, I think.
440 Tired of waiting for a reroll.
444 * jc/graph-post-root-gap (2013-12-30) 3 commits
445 - WIP: document what we want at the end
446 - graph: remove unused code a bit
447 - graph: stuff the current commit into graph->columns[]
449 This was primarily a RFH ($gmane/239580).
453 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
454 - perf-lib: add test_perf_cleanup target
455 - perf-lib: split starting the test from the execution
457 Add test_perf_cleanup shell function to the perf suite, that allows
458 the script writers to define a test with a clean-up action.
463 * jc/show-branch (2014-03-24) 5 commits
464 - show-branch: use commit slab to represent bitflags of arbitrary width
465 - show-branch.c: remove "all_mask"
466 - show-branch.c: abstract out "flags" operation
467 - show-branch.c: lift all_mask/all_revs to a global static
468 - show-branch.c: update comment style
470 Waiting for the final step to lift the hard-limit before sending it out.
472 --------------------------------------------------
475 * jc/diff-no-index-d-f (2015-03-25) 2 commits
476 - diff: align D/F handling of "diff --no-index" with that of normal Git
477 - diff-no-index: DWIM "diff D F" into "diff D/F F"
479 The usual "git diff" when seeing a file turning into a directory
480 showed a patchset to remove the file and create all files in the
481 directory, but "git diff --no-index" simply refused to work.
483 Will merge to and cook in 'next', after reading it over once again.
486 * ts/man-pdf (2015-03-20) 1 commit
487 - Documentation: make 'make pdf' format manpages to PDF as well
489 For offline consumption of manual pages, a target to produce one
490 pdf document per manual page was added to Documentation/Makefile.
492 Its usefulness is unknown, given that this does not produce a
493 single document with all the manual pages in it, which would be not
494 much better than keeping a bunch of HTML manual pages we already
495 produce and use them instead for offline consumption.
497 Will discard, while leaving a single-document target as an open
501 * nd/diff-i-t-a (2015-03-23) 1 commit
502 (merged to 'next' on 2015-03-24 at a6be89f)
503 + diff-lib.c: adjust position of i-t-a entries in diff
505 After "git add -N", the path appeared in output of "git diff HEAD"
506 and "git diff --cached HEAD", leading "git status" to classify it
507 as "Changes to be committed". Such a path, however, is not yet to
508 be scheduled to be committed. "git diff" showed the change to the
509 path as modification, not as a "new file", in the header of its
512 Treat such paths as "yet to be added to the index but Git already
513 know about them"; "git diff HEAD" and "git diff --cached HEAD"
514 should not talk about them, and "git diff" should show them as new
515 files yet to be added to the index.
517 Will cook in 'next', as this brings in a new world order.
520 * sb/leaks (2015-03-24) 10 commits
521 (merged to 'next' on 2015-03-24 at bdbc0c7)
522 + http: release the memory of a http pack request as well
523 (merged to 'next' on 2015-03-23 at 5397daf)
524 + read-cache: fix memleak
525 + add_to_index(): free unused cache-entry
526 + commit.c: fix a memory leak
527 + http-push: remove unneeded cleanup
528 + merge-recursive: fix memleaks
529 + merge-blobs.c: fix a memleak
530 + builtin/apply.c: fix a memleak
531 + update-index: fix a memleak
532 + read-cache: free cache entry in add_to_index in case of early return
534 Will merge to 'master'.
537 * mh/numparse (2015-03-19) 14 commits
538 - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
539 - diff_opt_parse(): use convert_i() when handling "-l<num>"
540 - opt_arg(): simplify pointer handling
541 - opt_arg(): report errors parsing option values
542 - opt_arg(): use convert_i() in implementation
543 - opt_arg(): val is always non-NULL
544 - builtin_diff(): detect errors when parsing --unified argument
545 - handle_revision_opt(): use convert_ui() when handling "--abbrev="
546 - strtoul_ui(), strtol_i(): remove functions
547 - handle_revision_opt(): use convert_i() when handling "-<digit>"
548 - handle_revision_opt(): use skip_prefix() in many places
549 - write_subdirectory(): use convert_ui() for parsing mode
550 - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
551 - numparse: new module for parsing integral numbers
553 Many codepaths use unchecked use of strtol() and friends (or even
554 worse, atoi()). Introduce a set of wrappers that try to be more
557 Waiting for a reroll ($gmane/266209).
560 * tf/gitweb-project-listing (2015-03-19) 5 commits
561 - gitweb: make category headings into links when they are directories
562 - gitweb: optionally set project category from its pathname
563 - gitweb: add a link under the search box to clear a project filter
564 - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
565 - gitweb: fix typo in man page
567 Update gitweb to make it more pleasant to deal with a hierarchical
568 forest of repositories.
570 Any comments from those who use or have their own code in Gitweb?
573 * jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
574 - "-" and "@{-1}" on various programs
576 Lose special case code to make a lone dash "-" mean the previous
577 branch aka "@{-1}" from a handful subcommands, and instead support
578 the notation throughout the system by reimplementing it at the
581 Needs tests, documentation updates, etc. Also does only a half-way
582 job dealing with range notation, which needs to be fixed before the
583 series goes anywhere.
586 * bc/object-id (2015-03-13) 10 commits
587 (merged to 'next' on 2015-03-24 at 3ec4f83)
588 + apply: convert threeway_stage to object_id
589 + patch-id: convert to use struct object_id
590 + commit: convert parts to struct object_id
591 + diff: convert struct combine_diff_path to object_id
592 + bulk-checkin.c: convert to use struct object_id
593 + zip: use GIT_SHA1_HEXSZ for trailers
594 + archive.c: convert to use struct object_id
595 + bisect.c: convert leaf functions to use struct object_id
596 + define utility functions for object IDs
597 + define a structure for object IDs
599 Identify parts of the code that knows that we use SHA-1 hash to
600 name our objects too much, and use (1) symbolic constants instead
601 of hardcoded 20 as byte count and/or (2) use struct object_id
602 instead of unsigned char [20] for object names.
605 Also waiting for reviews on the follow-up series ($gmane/265939)
606 that seems to have seen no interest X-<.
609 * nd/slim-index-pack-memory-usage (2015-02-27) 2 commits
610 - index-pack: kill union delta_base to save memory
611 - index-pack: reduce object_entry size to save memory
613 Memory usage of "git index-pack" has been trimmed by tens of
616 Waiting for further comments and a final reroll ($gmane/264544).
619 * nd/list-files (2015-02-09) 21 commits
620 - t3080: tests for git-list-files
621 - list-files: -M aka diff-cached
622 - list-files -F: show submodules with the new indicator '&'
623 - list-files: add -F/--classify
624 - list-files: show directories as well as files
625 - list-files: do not show duplicate cached entries
626 - list-files: sort output and remove duplicates
627 - list-files: add -t back
628 - list-files: add -1 short for --no-column
629 - list-files: add -R/--recursive short for --max-depth=-1
630 - list-files: -u does not imply showing stages
631 - list-files: make alias 'ls' default to 'list-files'
632 - list-files: a user friendly version of ls-files and more
633 - ls-files: support --max-depth
634 - ls-files: add --column
635 - ls-files: add --color to highlight file names
636 - ls-files: buffer full item in strbuf before printing
637 - ls_colors.c: highlight submodules like directories
638 - ls_colors.c: add a function to color a file name
639 - ls_colors.c: parse color.ls.* from config file
640 - ls_colors.c: add $LS_COLORS parsing code
642 A new "git list-files" Porcelain command, "ls-files" with bells and
645 Reroll to base on wt-status work ($gmane/265142) has seen some
646 positive discussions.
648 Waiting for a further polished reroll ($gmane/265534).
651 * js/fsck-opt (2015-01-21) 19 commits
652 - fsck: support ignoring objects in `git fsck` via fsck.skiplist
653 - fsck: git receive-pack: support excluding objects from fsck'ing
654 - fsck: introduce `git fsck --quick`
655 - fsck: support demoting errors to warnings
656 - fsck: document the new receive.fsck.* options
657 - fsck: allow upgrading fsck warnings to errors
658 - fsck: optionally ignore specific fsck issues completely
659 - fsck: disallow demoting grave fsck errors to warnings
660 - fsck: add a simple test for receive.fsck.*
661 - fsck: make fsck_tag() warn-friendly
662 - fsck: handle multiple authors in commits specially
663 - fsck: make fsck_commit() warn-friendly
664 - fsck: make fsck_ident() warn-friendly
665 - fsck: report the ID of the error/warning
666 - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
667 - fsck: offer a function to demote fsck errors to warnings
668 - fsck: provide a function to parse fsck message IDs
669 - fsck: introduce identifiers for fsck messages
670 - fsck: introduce fsck options
672 "fsck.warnings = <list of error tokens>" I suggested turned out to
673 be an unpopular choice (sorry Dscho).
678 * nd/multiple-work-trees (2015-03-24) 40 commits
679 (merged to 'next' on 2015-03-24 at 58b5a60)
680 + t1501: fix test with split index
681 (merged to 'next' on 2015-03-20 at cc98ed0)
682 + t2026: fix broken &&-chain
683 (merged to 'next' on 2015-02-18 at b51f696)
684 + t2026 needs procondition SANITY
685 + git-checkout.txt: a note about multiple checkout support for submodules
686 + checkout: add --ignore-other-wortrees
687 + checkout: pass whole struct to parse_branchname_arg instead of individual flags
688 + git-common-dir: make "modules/" per-working-directory directory
689 + checkout: do not fail if target is an empty directory
690 + t2025: add a test to make sure grafts is working from a linked checkout
691 + checkout: don't require a work tree when checking out into a new one
692 + git_path(): keep "info/sparse-checkout" per work-tree
693 + count-objects: report unused files in $GIT_DIR/worktrees/...
694 + gc: support prune --worktrees
695 + gc: factor out gc.pruneexpire parsing code
696 + gc: style change -- no SP before closing parenthesis
697 + checkout: clean up half-prepared directories in --to mode
698 + checkout: reject if the branch is already checked out elsewhere
699 + prune: strategies for linked checkouts
700 + checkout: support checking out into a new working directory
701 + use new wrapper write_file() for simple file writing
702 + wrapper.c: wrapper to open a file, fprintf then close
703 + setup.c: support multi-checkout repo setup
704 + setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
705 + setup.c: convert check_repository_format_gently to use strbuf
706 + setup.c: detect $GIT_COMMON_DIR in is_git_directory()
707 + setup.c: convert is_git_directory() to use strbuf
708 + git-stash: avoid hardcoding $GIT_DIR/logs/....
709 + *.sh: avoid hardcoding $GIT_DIR/hooks/...
710 + git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
711 + $GIT_COMMON_DIR: a new environment variable
712 + commit: use SEQ_DIR instead of hardcoding "sequencer"
713 + fast-import: use git_path() for accessing .git dir instead of get_git_dir()
714 + reflog: avoid constructing .lock path with git_path
715 + *.sh: respect $GIT_INDEX_FILE
716 + git_path(): be aware of file relocation in $GIT_DIR
717 + path.c: group git_path(), git_pathdup() and strbuf_git_path() together
718 + path.c: rename vsnpath() to do_git_path()
719 + git_snpath(): retire and replace with strbuf_git_path()
720 + path.c: make get_pathname() call sites return const char *
721 + path.c: make get_pathname() return strbuf instead of static buffer
723 A replacement for contrib/workdir/git-new-workdir that does not
724 rely on symbolic links and make sharing of objects and refs safer
725 by making the borrowee and borrowers aware of each other.