1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Apr 2015, #03; Mon, 20)
4 X-master-at: 7c597ef345aed345576de616c51f27e6f4b342b3
5 X-next-at: aa1ae690dee8648c2e1169b5e9a10dbc28109e56
7 What's cooking in git.git (Apr 2015, #03; Mon, 20)
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 You can find the changes described here in the integration branches
15 of the repositories listed at
17 http://git-blame.blogspot.com/p/git-public-repositories.html
19 --------------------------------------------------
20 [Graduated to "master"]
22 * jc/push-cert (2015-04-02) 1 commit
23 (merged to 'next' on 2015-04-08 at aecdd43)
24 + push --signed: tighten what the receiving end can ask to sign
26 The "git push --signed" protocol extension did not limit what the
27 "nonce" that is a server-chosen string can contain or how long it
28 can be, which was unnecessarily lax. Limit both the length and the
29 alphabet to a reasonably small space that can still have enough
33 * ma/bash-completion-leaking-x (2015-04-12) 1 commit
34 (merged to 'next' on 2015-04-14 at 3a52a6d)
35 + completion: fix global bash variable leak on __gitcompappend
37 The completion script (in contrib/) contaminated global namespace
38 and clobbered on a shell variable $x.
41 * ps/grep-help-all-callback-arg (2015-04-12) 1 commit
42 (merged to 'next' on 2015-04-14 at e0a8092)
43 + grep: correctly initialize help-all option
48 * tb/connect-ipv6-parse-fix (2015-04-08) 1 commit
49 (merged to 'next' on 2015-04-14 at e720918)
50 + connect.c: ignore extra colon after hostname
52 An earlier update to the parser that disects a URL broke an
53 address, followed by a colon, followed by an empty string (instead
54 of the port number), e.g. ssh://example.com:/path/to/repo.
57 * va/fix-git-p4-tests (2015-04-12) 3 commits
58 (merged to 'next' on 2015-04-14 at 261bf90)
59 + t9814: guarantee only one source exists in git-p4 copy tests
60 + git-p4: fix copy detection test
61 + t9814: fix broken shell syntax in git-p4 rename test
63 Test fixes for git-p4.
65 --------------------------------------------------
68 * jc/epochtime-wo-tz (2015-04-15) 2 commits
69 - parse_date_basic(): let the system handle DST conversion
70 - parse_date_basic(): return early when given a bogus timestamp
72 "git commit --date=now" or anything that relies on approxidate lost
73 the daylight-saving-time offset.
78 * jc/plug-fmt-merge-msg-leak (2015-04-20) 1 commit
79 - fmt-merge-msg: plug small leak of commit buffer
84 * cn/bom-in-gitignore (2015-04-16) 5 commits
85 - attr: skip UTF8 BOM at the beginning of the input file
86 - config: use utf8_bom[] from utf.[ch] in git_parse_source()
87 - utf8-bom: introduce skip_utf8_bom() helper
88 - add_excludes_from_file: clarify the bom skipping logic
89 - dir: allow a BOM at the beginning of exclude files
91 Teach the codepaths that read .gitignore and .gitattributes files
92 that these files encoded in UTF-8 may have UTF-8 BOM marker at the
93 beginning; this makes it in line with what we do for configuration
99 * ee/clean-remove-dirs (2015-04-18) 4 commits
100 - clean: improve performance when removing lots of directories
101 - p7300: add performance tests for clean
102 - t7300: add tests to document behavior of clean and nested git
103 - setup: add gentle version of read_gitfile
108 * ep/fix-test-lib-functions-report (2015-04-16) 1 commit
109 - test-lib-functions.sh: fix the second argument to some helper functions
111 Will merge to 'next'.
114 * jk/still-interesting (2015-04-17) 1 commit
115 - limit_list: avoid quadratic behavior from still_interesting
117 "git rev-list --objects $old --not --all" to see if everything that
118 is reachable from $old is already connected to the existing refs
119 was very inefficient.
121 Will merge to 'next'.
124 * jk/type-from-string-gently (2015-04-17) 1 commit
125 (merged to 'next' on 2015-04-20 at a97611f)
126 + type_from_string_gently: make sure length matches
128 "git cat-file bl $blob" failed to barf even though there is no
129 object type that is "bl".
132 * ls/p4-changes-block-size (2015-04-20) 1 commit
133 - git-p4: use -m when running p4 changes
135 "git p4" learned "--changes-block-size <n>" to read the changes in
136 chunks from Perforce, instead of making one call to "p4 changes"
137 that may trigger "too many rows scanned" error from Perforce.
139 Will merge to 'next'.
142 * mg/show-notes-doc (2015-04-17) 1 commit
143 (merged to 'next' on 2015-04-20 at 2e93969)
144 + rev-list-options.txt: complete sentence about notes matching
148 Will merge to 'master' in the first batch of post v2.4 cycle.
151 * mm/add-p-split-error (2015-04-16) 5 commits
152 - stash -p: demonstrate failure of split with mixed y/n
153 - t3904-stash-patch: factor PERL prereq at the top of the file
154 - t3904-stash-patch: fix test description
155 - add -p: demonstrate failure when running 'edit' after a split
156 - t3701-add-interactive: simplify code
159 * mm/usage-log-l-can-take-regex (2015-04-20) 2 commits
160 - log -L: improve error message on malformed argument
161 - Documentation: change -L:<regex> to -L:<funcname>
163 Will merge to 'next'.
166 * nd/pathspec-strip-fix (2015-04-18) 1 commit
167 - pathspec: adjust prefixlen after striping trailing slash
170 * nd/t1509-chroot-test (2015-04-18) 1 commit
171 - t1509: update prepare script to be able to run t1509 in chroot again
175 Will merge to 'next'.
178 * oh/fix-config-default-user-name-section (2015-04-17) 1 commit
179 (merged to 'next' on 2015-04-20 at b74b914)
180 + config: fix settings in default_user_config template
182 The default $HOME/.gitconfig file created upon "git config --global"
183 that edits it had incorrectly spelled user.name and user.email
186 Will merge to 'master' in the first batch of post v2.4 cycle.
189 * tb/t0027-crlf (2015-04-18) 2 commits
190 - t0027: support NATIVE_CRLF platforms
191 - t0027: cleanup: rename functions; avoid non-leading TABs
193 Will merge to 'next'.
196 * jk/prune-mtime (2015-04-20) 3 commits
197 - sha1_file: only freshen packs once per run
198 - sha1_file: freshen pack objects before loose
199 - reachable: only mark local objects as recent
201 Access to objects in repositories that borrow from another one on a
202 slow NFS server unnecessarily got more expensive due to recent code
203 becoming more cautious in a naive way not to lose objects to pruning.
205 Will merge to 'next'.
208 * sb/remove-fd-from-ref-lock (2015-04-17) 5 commits
209 . refs.c: enable large transactions
210 . sha1_fiel.c: move get_max_fd_limit(void) to wrapper.c
211 . refs.c: remove lock_fd from struct ref_lock
212 . t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
213 . update-ref: test handling large transactions properly
215 --------------------------------------------------
218 * mh/fdopen-with-retry (2015-03-06) 6 commits
219 - buffer_fdinit(): use fdopen_with_retry()
220 - update_info_file(): use fdopen_with_retry()
221 - copy_to_log(): use fdopen_with_retry()
222 - fdopen_lock_file(): use fdopen_with_retry()
223 - SQUASH??? $gmane/264889
224 - xfdopen(): if first attempt fails, free memory and try again
226 Various parts of the code where they call fdopen() can fail when
227 they run out of memory; attempt to proceed by retrying the
228 operation after freeing some resource.
230 Waiting for further comments.
233 * nd/untracked-cache (2015-03-12) 24 commits
234 - git-status.txt: advertisement for untracked cache
235 - untracked cache: guard and disable on system changes
236 - mingw32: add uname()
237 - t7063: tests for untracked cache
238 - update-index: test the system before enabling untracked cache
239 - update-index: manually enable or disable untracked cache
240 - status: enable untracked cache
241 - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
242 - untracked cache: mark index dirty if untracked cache is updated
243 - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
244 - untracked cache: avoid racy timestamps
245 - read-cache.c: split racy stat test to a separate function
246 - untracked cache: invalidate at index addition or removal
247 - untracked cache: load from UNTR index extension
248 - untracked cache: save to an index extension
249 - ewah: add convenient wrapper ewah_serialize_strbuf()
250 - untracked cache: don't open non-existent .gitignore
251 - untracked cache: mark what dirs should be recursed/saved
252 - untracked cache: record/validate dir mtime and reuse cached output
253 - untracked cache: make a wrapper around {open,read,close}dir()
254 - untracked cache: invalidate dirs recursively if .gitignore changes
255 - untracked cache: initial untracked cache validation
256 - untracked cache: record .gitignore information and dir hierarchy
257 - dir.c: optionally compute sha-1 of a .gitignore file
259 Need extra sets of eyes to review this.
262 * jc/diff-b-m (2015-02-23) 5 commits
265 - diffcore-rename: allow easier debugging
266 - diffcore-rename.c: add locate_rename_src()
267 - diffcore-break: allow debugging
269 "git diff -B -M" produced incorrect patch when the postimage of a
270 completely rewritten file is similar to the preimage of a removed
271 file; such a resulting file must not be expressed as a rename from
274 The fix in this patch is broken, unfortunately.
277 * pw/remote-set-url-fetch (2014-11-26) 1 commit
278 - remote: add --fetch and --both options to set-url
283 * tr/remerge-diff (2014-11-10) 9 commits
284 - t4213: avoid "|" in sed regexp
285 - log --remerge-diff: show what the conflict resolution changed
286 - name-hash: allow dir hashing even when !ignore_case
287 - merge-recursive: allow storing conflict hunks in index
288 - merge_diff_mode: fold all merge diff variants into an enum
289 - combine-diff: do not pass revs->dense_combined_merges redundantly
290 - merge-recursive: -Xindex-only to leave worktree unchanged
291 - merge-recursive: internal flag to avoid touching the worktree
292 - merge-recursive: remove dead conditional in update_stages()
294 "log -p" output learns a new way to let users inspect a merge
295 commit by showing the differences between the automerged result
296 with conflicts the person who recorded the merge would have seen
297 and the final conflict resolution that was recorded in the merge.
299 Waiting for a reroll ($gmane/256591).
302 * hv/submodule-config (2014-11-11) 4 commits
303 - do not die on error of parsing fetchrecursesubmodules option
304 - use new config API for worktree configurations of submodules
305 - extract functions for submodule config set and lookup
306 - implement submodule config cache for lookup of submodule names
308 Kicked back to 'pu' per request ($gmane/255610).
311 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
312 - perf-lib: add test_perf_cleanup target
313 - perf-lib: split starting the test from the execution
315 Add test_perf_cleanup shell function to the perf suite, that allows
316 the script writers to define a test with a clean-up action.
321 * jc/show-branch (2014-03-24) 5 commits
322 - show-branch: use commit slab to represent bitflags of arbitrary width
323 - show-branch.c: remove "all_mask"
324 - show-branch.c: abstract out "flags" operation
325 - show-branch.c: lift all_mask/all_revs to a global static
326 - show-branch.c: update comment style
328 Waiting for the final step to lift the hard-limit.
330 --------------------------------------------------
333 * ah/usage-strings (2015-04-02) 2 commits
334 - branch: fix funny-sounding error message
335 - standardize usage strings that were missed the first time
337 A few usage string updates.
342 * jk/reading-packed-refs (2015-04-16) 9 commits
343 - t1430: add another refs-escape test
344 - read_packed_refs: avoid double-checking sane refs
345 - strbuf_getwholeline: use getdelim if it is available
346 - strbuf_getwholeline: avoid calling strbuf_grow
347 - strbuf_addch: avoid calling strbuf_grow
348 - config: use getc_unlocked when reading from file
349 - strbuf_getwholeline: use getc_unlocked
350 - git-compat-util: add fallbacks for unlocked stdio
351 - strbuf_getwholeline: use getc macro
353 An earlier rewrite to use strbuf_getwholeline() instead of fgets(3)
354 to read packed-refs file revealed that the former is unacceptably
357 Will merge to 'next'.
360 * kk/log-merges-config (2015-04-04) 5 commits
361 - bash-completion: add support for git-log --merges= and log.merges
362 - t4202-log: add tests for --merges=
363 - Documentation: add git-log --merges= option and log.merges config. var
364 - log: honor log.merges= option
365 - revision: add --merges={show|only|hide} option
367 "git log" (but not other commands in the "log" family) learned to
368 pay attention to the log.merges configuration variable that can be
369 set to "show" (the normal behaviour), "only" (hide non-merge
370 commits), or "hide" (hide merge commits). --merges=(show|only|hide)
371 can be used to override the setting from the command line.
373 The documentation may need to be updated once more.
376 * kn/cat-file-literally (2015-04-15) 5 commits
378 - t1006: add tests for git cat-file --literally
379 - cat-file: add documentation for '--literally' option.
380 - cat-file: teach cat-file a '--literally' option
381 - sha1_file.c: support reading from a loose object of unknown type
383 Add the "--literally" option to "cat-file" to allow inspecting
384 loose objects of an experimental or a broken type.
386 This is v8 $gmane/267213; getting closer to the final, I would say.
389 * ld/p4-filetype-detection (2015-04-04) 3 commits
390 (merged to 'next' on 2015-04-08 at da735b4)
391 + git-p4: fix filetype detection on files opened exclusively
392 + git-p4: small fix for locked-file-move-test
393 + git-p4: fix small bug in locked test scripts
395 Will merge to 'master' in the first batch of post v2.4 cycle.
398 * mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
399 - t/lib-git-svn: check same httpd module dirs as lib-httpd
400 - t/lib-httpd: load mod_unixd
402 This is the first two commits in a three-patch series $gmane/266962
405 * lm/squelch-bg-progress (2015-04-15) 2 commits
406 - compat/mingw: stubs for getpgid() and tcgetpgrp()
407 - progress: no progress in background
409 Many long-running operations show progress eye-candy, even when
410 they are later backgrounded. Hide the eye-candy when the process
411 is sent to the background instead.
413 Will merge to 'next'.
416 * pt/xdg-config-path (2015-04-12) 7 commits
417 - path.c: remove home_config_paths()
418 - git-config: replace use of home_config_paths()
419 - git-commit: replace use of home_config_paths()
420 - credential-store.c: replace home_config_paths() with xdg_config_home()
421 - dir.c: replace home_config_paths() with xdg_config_home()
422 - attr.c: replace home_config_paths() with xdg_config_home()
423 - path.c: implement xdg_config_home()
424 (this branch uses pt/credential-xdg.)
427 * sb/test-bitmap-free-at-end (2015-04-12) 1 commit
428 (merged to 'next' on 2015-04-14 at 0ae4759)
429 + pack-bitmap.c: fix a memleak
431 Will merge to 'master' in the first batch of post v2.4 cycle.
434 * va/p4-client-path (2015-04-19) 2 commits
435 - git-p4: improve client path detection when branches are used
436 - t9801: check git-p4's branch detection and client view together
438 git p4 attempts to better handle branches in Perforce.
440 Will merge to 'next'.
443 * jk/at-push-sha1 (2015-03-31) 6 commits
444 - sha1_name: implement @{push} shorthand
445 - sha1_name: refactor upstream_mark
446 - remote.c: provide per-branch pushremote name
447 - remote.c: hoist branch.*.remote lookup out of remote_get_1
448 - remote.c: drop "remote" pointer from "struct branch"
449 - remote.c: drop default_remote_name variable
451 Introduce <branch>@{push} short-hand to denote the remote-tracking
452 branch that tracks the branch at the remote the <branch> would be
455 Waiting for a reroll ($gmane/266573).
458 * jk/sha1-file-reduce-useless-warnings (2015-03-30) 1 commit
459 - sha1_file: squelch "packfile cannot be accessed" warnings
461 Will merge to 'next'.
464 * mh/show-branch-topic (2015-03-31) 1 commit
465 (merged to 'next' on 2015-04-08 at 628ada5)
466 + show-branch: show all local heads when only giving one rev along --topics
468 "git show-branch --topics HEAD" (with no other arguments) did not
469 do anything interesting. Instead, contrast the given revision
470 against all the local branches by default.
472 Will merge to 'master' in the first batch of post v2.4 cycle.
475 * sb/line-log-plug-pairdiff-leak (2015-03-30) 1 commit
476 (merged to 'next' on 2015-04-08 at 6ea8b71)
477 + line-log.c: fix a memleak
479 Will merge to 'master' in the first batch of post v2.4 cycle.
482 * jk/init-core-worktree-at-root (2015-04-02) 1 commit
483 (merged to 'next' on 2015-04-08 at 92a942b)
484 + init: don't set core.worktree when initializing /.git
486 We avoid setting core.worktree when the repository location is the
487 ".git" directory directly at the top level of the working tree, but
488 the code misdetected the case in which the working tree is at the
489 root level of the filesystem (which arguably is a silly thing to
490 do, but still valid).
492 Will merge to 'master' in the first batch of post v2.4 cycle.
495 * ts/checkout-advice-plural (2015-04-02) 1 commit
496 (merged to 'next' on 2015-04-08 at dd5c436)
497 + checkout: call a single commit "it" intead of "them"
499 Will merge to 'master' in the first batch of post v2.4 cycle.
502 * pt/credential-xdg (2015-03-25) 4 commits
503 (merged to 'next' on 2015-03-25 at 765128e)
504 + t0302: "unreadable" test needs POSIXPERM
505 (merged to 'next' on 2015-03-24 at 9a3706e)
506 + t0302: test credential-store support for XDG_CONFIG_HOME
507 + git-credential-store: support XDG_CONFIG_HOME
508 + git-credential-store: support multiple credential files
509 (this branch is used by pt/xdg-config-path.)
511 Tweak the sample "store" backend of the credential helper to honor
512 XDG configuration file locations when specified.
514 As this may see further updates, and also this is not an urgent
515 issue anyway, I'll give it a bit more time for it to simmer.
520 * jc/merge-deprecate-old-syntax (2015-03-26) 1 commit
521 - merge: deprecate 'git merge <message> HEAD <commit>' syntax
522 (this branch is used by jc/merge-drop-old-syntax.)
524 The first step to really start the process of removing the ancient
525 syntax to invoke a two-way merge, which has been deprecated since
528 This regresses "git pull" in various ways; do not merge ($gmane/267432).
531 * jc/merge-drop-old-syntax (2015-03-26) 1 commit
532 - merge: drop 'git merge <message> HEAD <commit>' syntax
533 (this branch uses jc/merge-deprecate-old-syntax.)
535 Stop supporting "git merge <messsage> HEAD <commit>" syntax that
536 has been deprecated since October 2007.
538 This regresses "git pull" in various ways; do not merge ($gmane/267432).
541 * jc/diff-no-index-d-f (2015-03-26) 2 commits
542 (merged to 'next' on 2015-03-27 at 1f270f9)
543 + diff-no-index: align D/F handling with that of normal Git
544 + diff-no-index: DWIM "diff D F" into "diff D/F F"
546 The usual "git diff" when seeing a file turning into a directory
547 showed a patchset to remove the file and create all files in the
548 directory, but "git diff --no-index" simply refused to work. Also,
549 when asked to compare a file and a directory, imitate POSIX "diff"
550 and compare the file with the file with the same name in the
551 directory, instead of refusing to run.
553 Will merge to 'master' in the first batch of post v2.4 cycle.
556 * nd/diff-i-t-a (2015-03-23) 1 commit
557 (merged to 'next' on 2015-03-24 at a6be89f)
558 + diff-lib.c: adjust position of i-t-a entries in diff
560 After "git add -N", the path appeared in output of "git diff HEAD"
561 and "git diff --cached HEAD", leading "git status" to classify it
562 as "Changes to be committed". Such a path, however, is not yet to
563 be scheduled to be committed. "git diff" showed the change to the
564 path as modification, not as a "new file", in the header of its
567 Treat such paths as "yet to be added to the index but Git already
568 know about them"; "git diff HEAD" and "git diff --cached HEAD"
569 should not talk about them, and "git diff" should show them as new
570 files yet to be added to the index.
572 Will cook in 'next', as this brings in a new world order.
575 * mh/numparse (2015-03-19) 14 commits
576 - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
577 - diff_opt_parse(): use convert_i() when handling "-l<num>"
578 - opt_arg(): simplify pointer handling
579 - opt_arg(): report errors parsing option values
580 - opt_arg(): use convert_i() in implementation
581 - opt_arg(): val is always non-NULL
582 - builtin_diff(): detect errors when parsing --unified argument
583 - handle_revision_opt(): use convert_ui() when handling "--abbrev="
584 - strtoul_ui(), strtol_i(): remove functions
585 - handle_revision_opt(): use convert_i() when handling "-<digit>"
586 - handle_revision_opt(): use skip_prefix() in many places
587 - write_subdirectory(): use convert_ui() for parsing mode
588 - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
589 - numparse: new module for parsing integral numbers
591 Many codepaths use unchecked use of strtol() and friends (or even
592 worse, atoi()). Introduce a set of wrappers that try to be more
595 Waiting for a reroll ($gmane/266209).
598 * tf/gitweb-project-listing (2015-03-19) 5 commits
599 - gitweb: make category headings into links when they are directories
600 - gitweb: optionally set project category from its pathname
601 - gitweb: add a link under the search box to clear a project filter
602 - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
603 - gitweb: fix typo in man page
605 Update gitweb to make it more pleasant to deal with a hierarchical
606 forest of repositories.
608 Any comments from those who use or have their own code in Gitweb?
611 * jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
612 - "-" and "@{-1}" on various programs
614 Lose special case code to make a lone dash "-" mean the previous
615 branch aka "@{-1}" from a handful subcommands, and instead support
616 the notation throughout the system by reimplementing it at the
619 Needs tests, documentation updates, etc. Also does only a half-way
620 job dealing with range notation, which needs to be fixed before the
621 series goes anywhere.
624 * bc/object-id (2015-03-13) 10 commits
625 (merged to 'next' on 2015-03-24 at 3ec4f83)
626 + apply: convert threeway_stage to object_id
627 + patch-id: convert to use struct object_id
628 + commit: convert parts to struct object_id
629 + diff: convert struct combine_diff_path to object_id
630 + bulk-checkin.c: convert to use struct object_id
631 + zip: use GIT_SHA1_HEXSZ for trailers
632 + archive.c: convert to use struct object_id
633 + bisect.c: convert leaf functions to use struct object_id
634 + define utility functions for object IDs
635 + define a structure for object IDs
637 Identify parts of the code that knows that we use SHA-1 hash to
638 name our objects too much, and use (1) symbolic constants instead
639 of hardcoded 20 as byte count and/or (2) use struct object_id
640 instead of unsigned char [20] for object names.
643 Also waiting for reviews on the follow-up series ($gmane/265939)
644 that seems to have seen no interest X-<.
647 * nd/slim-index-pack-memory-usage (2015-04-18) 2 commits
648 - index-pack: kill union delta_base to save memory
649 - index-pack: reduce object_entry size to save memory
651 Memory usage of "git index-pack" has been trimmed by tens of
654 Will merge to 'next'.
657 * nd/list-files (2015-02-09) 21 commits
658 - t3080: tests for git-list-files
659 - list-files: -M aka diff-cached
660 - list-files -F: show submodules with the new indicator '&'
661 - list-files: add -F/--classify
662 - list-files: show directories as well as files
663 - list-files: do not show duplicate cached entries
664 - list-files: sort output and remove duplicates
665 - list-files: add -t back
666 - list-files: add -1 short for --no-column
667 - list-files: add -R/--recursive short for --max-depth=-1
668 - list-files: -u does not imply showing stages
669 - list-files: make alias 'ls' default to 'list-files'
670 - list-files: a user friendly version of ls-files and more
671 - ls-files: support --max-depth
672 - ls-files: add --column
673 - ls-files: add --color to highlight file names
674 - ls-files: buffer full item in strbuf before printing
675 - ls_colors.c: highlight submodules like directories
676 - ls_colors.c: add a function to color a file name
677 - ls_colors.c: parse color.ls.* from config file
678 - ls_colors.c: add $LS_COLORS parsing code
680 A new "git list-files" Porcelain command, "ls-files" with bells and
683 Reroll to base on wt-status work ($gmane/265142) has seen some
684 positive discussions.
686 Waiting for a further polished reroll ($gmane/265534).
689 * js/fsck-opt (2015-01-21) 19 commits
690 - fsck: support ignoring objects in `git fsck` via fsck.skiplist
691 - fsck: git receive-pack: support excluding objects from fsck'ing
692 - fsck: introduce `git fsck --quick`
693 - fsck: support demoting errors to warnings
694 - fsck: document the new receive.fsck.* options
695 - fsck: allow upgrading fsck warnings to errors
696 - fsck: optionally ignore specific fsck issues completely
697 - fsck: disallow demoting grave fsck errors to warnings
698 - fsck: add a simple test for receive.fsck.*
699 - fsck: make fsck_tag() warn-friendly
700 - fsck: handle multiple authors in commits specially
701 - fsck: make fsck_commit() warn-friendly
702 - fsck: make fsck_ident() warn-friendly
703 - fsck: report the ID of the error/warning
704 - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
705 - fsck: offer a function to demote fsck errors to warnings
706 - fsck: provide a function to parse fsck message IDs
707 - fsck: introduce identifiers for fsck messages
708 - fsck: introduce fsck options
710 "fsck.warnings = <list of error tokens>" I suggested turned out to
711 be an unpopular choice (sorry Dscho).
716 * nd/multiple-work-trees (2015-03-31) 41 commits
717 (merged to 'next' on 2015-04-02 at 7ea51b4)
718 + prune --worktrees: fix expire vs worktree existence condition
719 (merged to 'next' on 2015-03-24 at 58b5a60)
720 + t1501: fix test with split index
721 (merged to 'next' on 2015-03-20 at cc98ed0)
722 + t2026: fix broken &&-chain
723 (merged to 'next' on 2015-02-18 at b51f696)
724 + t2026 needs procondition SANITY
725 + git-checkout.txt: a note about multiple checkout support for submodules
726 + checkout: add --ignore-other-wortrees
727 + checkout: pass whole struct to parse_branchname_arg instead of individual flags
728 + git-common-dir: make "modules/" per-working-directory directory
729 + checkout: do not fail if target is an empty directory
730 + t2025: add a test to make sure grafts is working from a linked checkout
731 + checkout: don't require a work tree when checking out into a new one
732 + git_path(): keep "info/sparse-checkout" per work-tree
733 + count-objects: report unused files in $GIT_DIR/worktrees/...
734 + gc: support prune --worktrees
735 + gc: factor out gc.pruneexpire parsing code
736 + gc: style change -- no SP before closing parenthesis
737 + checkout: clean up half-prepared directories in --to mode
738 + checkout: reject if the branch is already checked out elsewhere
739 + prune: strategies for linked checkouts
740 + checkout: support checking out into a new working directory
741 + use new wrapper write_file() for simple file writing
742 + wrapper.c: wrapper to open a file, fprintf then close
743 + setup.c: support multi-checkout repo setup
744 + setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
745 + setup.c: convert check_repository_format_gently to use strbuf
746 + setup.c: detect $GIT_COMMON_DIR in is_git_directory()
747 + setup.c: convert is_git_directory() to use strbuf
748 + git-stash: avoid hardcoding $GIT_DIR/logs/....
749 + *.sh: avoid hardcoding $GIT_DIR/hooks/...
750 + git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
751 + $GIT_COMMON_DIR: a new environment variable
752 + commit: use SEQ_DIR instead of hardcoding "sequencer"
753 + fast-import: use git_path() for accessing .git dir instead of get_git_dir()
754 + reflog: avoid constructing .lock path with git_path
755 + *.sh: respect $GIT_INDEX_FILE
756 + git_path(): be aware of file relocation in $GIT_DIR
757 + path.c: group git_path(), git_pathdup() and strbuf_git_path() together
758 + path.c: rename vsnpath() to do_git_path()
759 + git_snpath(): retire and replace with strbuf_git_path()
760 + path.c: make get_pathname() call sites return const char *
761 + path.c: make get_pathname() return strbuf instead of static buffer
763 A replacement for contrib/workdir/git-new-workdir that does not
764 rely on symbolic links and make sharing of objects and refs safer
765 by making the borrowee and borrowers aware of each other.
769 --------------------------------------------------
772 * as/userdiff-sh (2015-03-13) 1 commit
773 . userdiff: funcname and word patterns for sh
775 Add a built-in "userdiff" patterns to word-split and identify
776 notable lines in shell scripts to help presentation of diff and