What's cooking (2015/04 #02)
[git.git] / whats-cooking.txt
blob9f8ebb187ed45799748c06cba7b70bec84587bdd
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Apr 2015, #02; Tue, 14)
4 X-master-at: e46fe3df01435bf523d2ab4f2755556c0e4e6f78
5 X-next-at: 261bf90abd228250f9684d6ab3165ecae03d793a
7 What's cooking in git.git (Apr 2015, #02; Tue, 14)
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 The second release candidate 2.4-rc2 has been tagged.  There were a
15 few more topics I felt are safe to merge, but they had updates to
16 translatable strings, which would add last-minute burden to our l10n
17 teams, so they are held back for the remainder of the cycle.
19 You can find the changes described here in the integration branches
20 of the repositories listed at
22     http://git-blame.blogspot.com/p/git-public-repositories.html
24 --------------------------------------------------
25 [Graduated to "master"]
27 * iu/fix-parse-options-h-comment (2015-03-29) 1 commit
28   (merged to 'next' on 2015-04-02 at 7fd3cef)
29  + parse-options.h: OPTION_{BIT,SET_INT} do not store pointer to defval
32 * jc/update-instead-into-void (2015-04-01) 1 commit
33   (merged to 'next' on 2015-04-08 at 8ef4e15)
34  + push-to-deploy: allow pushing into an unborn branch and updating it
36  A push into an unborn branch, with "receive.denyCurrentBranch" set
37  to "updateInstead", did not check out the working tree as expected.
40 * jk/cherry-pick-docfix (2015-03-30) 1 commit
41   (merged to 'next' on 2015-04-02 at 40da1d7)
42  + cherry-pick: fix docs describing handling of empty commits
45 * jk/colors (2015-04-04) 1 commit
46   (merged to 'next' on 2015-04-08 at 9b9e6f2)
47  + diff-highlight: do not split multibyte characters
49  "diff-highlight" (in contrib/) used to show byte-by-byte
50  differences, which meant that multi-byte characters can be chopped
51  in the middle.  It learned to pay attention to character boundaries
52  (assuming the UTF-8 payload).
55 * jk/merge-quiet (2015-04-02) 1 commit
56   (merged to 'next' on 2015-04-08 at 6475433)
57  + merge: pass verbosity flag down to merge-recursive
59  "git merge --quiet" did not squelch messages from the underlying
60  merge-recursive strategy.
63 * jk/pack-corruption-post-mortem (2015-04-01) 1 commit
64   (merged to 'next' on 2015-04-08 at 890c04e)
65  + howto: document more tools for recovery corruption
67  Documentation update.
70 * jn/doc-fast-import-no-16-octopus-limit (2015-03-31) 1 commit
71   (merged to 'next' on 2015-04-08 at 341ca70)
72  + fast-import doc: remove suggested 16-parent limit
74  Documentation update.
77 * jz/gitweb-conf-doc-fix (2015-03-31) 1 commit
78   (merged to 'next' on 2015-04-02 at 237d1bc)
79  + gitweb.conf.txt: say "build-time", not "built-time"
81  Documentation update.
84 * pt/enter-repo-comment-fix (2015-03-31) 1 commit
85   (merged to 'next' on 2015-04-02 at 276ad7e)
86  + enter_repo(): fix docs to match code
88  Documentation update.
91 * sb/plug-streaming-leak (2015-03-31) 1 commit
92   (merged to 'next' on 2015-04-08 at 226bdd8)
93  + streaming.c: fix a memleak
96 * sb/plug-wt-shortstatus-tracking-leak (2015-03-30) 1 commit
97   (merged to 'next' on 2015-04-08 at bd6291b)
98  + wt-status.c: fix a memleak
100 --------------------------------------------------
101 [New Topics]
103 * ah/usage-strings (2015-04-02) 2 commits
104  - branch: fix funny-sounding error message
105  - standardize usage strings that were missed the first time
107  A few usage string updates.
109  Will hold.
112 * jk/reading-packed-refs (2015-04-05) 6 commits
113  - refname_is_safe: avoid expensive normalize_path_copy call
114  - t1430: add another refs-escape test
115  - strbuf: add an optimized 1-character strbuf_grow
116  - strbuf_getwholeline: use getc_unlocked
117  - git-compat-util: add fallbacks for unlocked stdio
118  - strbuf_getwholeline: use getc macro
120  An earlier rewrite to use strbuf_getwholeline() instead of fgets(3)
121  to read packed-refs file revealed that the former is unacceptably
122  inefficient.
124  There were further discussions on this topic to use getdelim(3).
125  $gmane/266932
127  Expecting a reroll.
130 * kk/log-merges-config (2015-04-04) 5 commits
131  - bash-completion: add support for git-log --merges= and log.merges
132  - t4202-log: add tests for --merges=
133  - Documentation: add git-log --merges= option and log.merges config. var
134  - log: honor log.merges= option
135  - revision: add --merges={show|only|hide} option
137  "git log" (but not other commands in the "log" family) learned to
138  pay attention to the log.merges configuration variable that can be
139  set to "show" (the normal behaviour), "only" (hide non-merge
140  commits), or "hide" (hide merge commits).  --merges=(show|only|hide)
141  can be used to override the setting from the command line.
143  The documentation may need to be updated once more.
146 * kn/cat-file-literally (2015-04-05) 5 commits
147  - SQUASH???
148  - t1006: add tests for git cat-file --literally
149  - cat-file: add documentation for '--literally' option.
150  - cat-file: teach cat-file a '--literally' option
151  - sha1_file.c: support reading from a loose object of unknown type
153  Add the "--literally" option to "cat-file" to allow inspecting
154  loose objects of an experimental or a broken type.
156  This is v7 $gmane/266761; getting closer to the final, I would say.
159 * ld/p4-filetype-detection (2015-04-04) 3 commits
160   (merged to 'next' on 2015-04-08 at da735b4)
161  + git-p4: fix filetype detection on files opened exclusively
162  + git-p4: small fix for locked-file-move-test
163  + git-p4: fix small bug in locked test scripts
165  Will hold.
168 * mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
169  - t/lib-git-svn: check same httpd module dirs as lib-httpd
170  - t/lib-httpd: load mod_unixd
172  This is the first two commits in a three-patch series $gmane/266962
175 * tb/connect-ipv6-parse-fix (2015-04-08) 1 commit
176   (merged to 'next' on 2015-04-14 at e720918)
177  + connect.c: ignore extra colon after hostname
179  An earlier update to the parser that disects an address broke an
180  address, followed by a colon, followed by an empty string (instead
181  of the port number).
183  Will merge to 'master' in the first batch of post v2.4 cycle.
186 * lm/squelch-bg-progress (2015-04-14) 1 commit
187  - progress: no progress in background
189  Many long-running operations show progress eye-candy, even when
190  they are later backgrounded.  Hide the eye-candy when the process
191  is sent to the background instead.
193  Needs a follow-up compat/ updates for platforms that lack POSIXy
194  process group support before this topic can move forward.
197 * ma/bash-completion-leaking-x (2015-04-12) 1 commit
198   (merged to 'next' on 2015-04-14 at 3a52a6d)
199  + completion: fix global bash variable leak on __gitcompappend
201  Will merge to 'master' in the first batch of post v2.4 cycle.
204 * ps/grep-help-all-callback-arg (2015-04-12) 1 commit
205   (merged to 'next' on 2015-04-14 at e0a8092)
206  + grep: correctly initialize help-all option
208  Code clean-up.
210  Will merge to 'master' in the first batch of post v2.4 cycle.
213 * pt/xdg-config-path (2015-04-12) 7 commits
214  - path.c: remove home_config_paths()
215  - git-config: replace use of home_config_paths()
216  - git-commit: replace use of home_config_paths()
217  - credential-store.c: replace home_config_paths() with xdg_config_home()
218  - dir.c: replace home_config_paths() with xdg_config_home()
219  - attr.c: replace home_config_paths() with xdg_config_home()
220  - path.c: implement xdg_config_home()
221  (this branch uses pt/credential-xdg.)
224 * sb/test-bitmap-free-at-end (2015-04-12) 1 commit
225   (merged to 'next' on 2015-04-14 at 0ae4759)
226  + pack-bitmap.c: fix a memleak
228  Will merge to 'master' in the first batch of post v2.4 cycle.
230 --------------------------------------------------
231 [Stalled]
233 * as/userdiff-sh (2015-03-13) 1 commit
234  - userdiff: funcname and word patterns for sh
236  Add a built-in "userdiff" patterns to word-split and identify
237  notable lines in shell scripts to help presentation of diff and
238  grep output.
240  Will discard.
243 * mh/fdopen-with-retry (2015-03-06) 6 commits
244  - buffer_fdinit(): use fdopen_with_retry()
245  - update_info_file(): use fdopen_with_retry()
246  - copy_to_log(): use fdopen_with_retry()
247  - fdopen_lock_file(): use fdopen_with_retry()
248  - SQUASH??? $gmane/264889
249  - xfdopen(): if first attempt fails, free memory and try again
251  Various parts of the code where they call fdopen() can fail when
252  they run out of memory; attempt to proceed by retrying the
253  operation after freeing some resource.
255  Waiting for further comments.
258 * nd/untracked-cache (2015-03-12) 24 commits
259  - git-status.txt: advertisement for untracked cache
260  - untracked cache: guard and disable on system changes
261  - mingw32: add uname()
262  - t7063: tests for untracked cache
263  - update-index: test the system before enabling untracked cache
264  - update-index: manually enable or disable untracked cache
265  - status: enable untracked cache
266  - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
267  - untracked cache: mark index dirty if untracked cache is updated
268  - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
269  - untracked cache: avoid racy timestamps
270  - read-cache.c: split racy stat test to a separate function
271  - untracked cache: invalidate at index addition or removal
272  - untracked cache: load from UNTR index extension
273  - untracked cache: save to an index extension
274  - ewah: add convenient wrapper ewah_serialize_strbuf()
275  - untracked cache: don't open non-existent .gitignore
276  - untracked cache: mark what dirs should be recursed/saved
277  - untracked cache: record/validate dir mtime and reuse cached output
278  - untracked cache: make a wrapper around {open,read,close}dir()
279  - untracked cache: invalidate dirs recursively if .gitignore changes
280  - untracked cache: initial untracked cache validation
281  - untracked cache: record .gitignore information and dir hierarchy
282  - dir.c: optionally compute sha-1 of a .gitignore file
284  Need extra sets of eyes to review this.
287 * jc/diff-b-m (2015-02-23) 5 commits
288  . WIPWIP
289  . WIP: diff-b-m
290  - diffcore-rename: allow easier debugging
291  - diffcore-rename.c: add locate_rename_src()
292  - diffcore-break: allow debugging
294  "git diff -B -M" produced incorrect patch when the postimage of a
295  completely rewritten file is similar to the preimage of a removed
296  file; such a resulting file must not be expressed as a rename from
297  other place.
299  The fix in this patch is broken, unfortunately.
302 * pw/remote-set-url-fetch (2014-11-26) 1 commit
303  - remote: add --fetch and --both options to set-url
305  Expecting a reroll.
308 * tr/remerge-diff (2014-11-10) 9 commits
309  - t4213: avoid "|" in sed regexp
310  - log --remerge-diff: show what the conflict resolution changed
311  - name-hash: allow dir hashing even when !ignore_case
312  - merge-recursive: allow storing conflict hunks in index
313  - merge_diff_mode: fold all merge diff variants into an enum
314  - combine-diff: do not pass revs->dense_combined_merges redundantly
315  - merge-recursive: -Xindex-only to leave worktree unchanged
316  - merge-recursive: internal flag to avoid touching the worktree
317  - merge-recursive: remove dead conditional in update_stages()
319  "log -p" output learns a new way to let users inspect a merge
320  commit by showing the differences between the automerged result
321  with conflicts the person who recorded the merge would have seen
322  and the final conflict resolution that was recorded in the merge.
324  Waiting for a reroll ($gmane/256591).
327 * hv/submodule-config (2014-11-11) 4 commits
328  - do not die on error of parsing fetchrecursesubmodules option
329  - use new config API for worktree configurations of submodules
330  - extract functions for submodule config set and lookup
331  - implement submodule config cache for lookup of submodule names
333  Kicked back to 'pu' per request ($gmane/255610).
336 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
337  - perf-lib: add test_perf_cleanup target
338  - perf-lib: split starting the test from the execution
340  Add test_perf_cleanup shell function to the perf suite, that allows
341  the script writers to define a test with a clean-up action.
343  Will hold.
346 * jc/show-branch (2014-03-24) 5 commits
347  - show-branch: use commit slab to represent bitflags of arbitrary width
348  - show-branch.c: remove "all_mask"
349  - show-branch.c: abstract out "flags" operation
350  - show-branch.c: lift all_mask/all_revs to a global static
351  - show-branch.c: update comment style
353  Waiting for the final step to lift the hard-limit.
355 --------------------------------------------------
356 [Cooking]
358 * va/fix-git-p4-tests (2015-04-12) 3 commits
359   (merged to 'next' on 2015-04-14 at 261bf90)
360  + t9814: guarantee only one source exists in git-p4 copy tests
361  + git-p4: fix copy detection test
362  + t9814: fix broken shell syntax in git-p4 rename test
364  Test fixes for git-p4
366  Will merge to 'master' in the first batch of post v2.4 cycle.
369 * va/p4-client-path (2015-03-28) 2 commits
370  - git-p4: improve client path detection when branches are used
371  - t9801: check git-p4's branch detection and client view together
373  Attempt to better handle branches in perforce by git p4
374  Reviews by git-p4 experts are very much appreciated.
377 * jk/at-push-sha1 (2015-03-31) 6 commits
378  - sha1_name: implement @{push} shorthand
379  - sha1_name: refactor upstream_mark
380  - remote.c: provide per-branch pushremote name
381  - remote.c: hoist branch.*.remote lookup out of remote_get_1
382  - remote.c: drop "remote" pointer from "struct branch"
383  - remote.c: drop default_remote_name variable
386 * jk/sha1-file-reduce-useless-warnings (2015-03-30) 1 commit
387  - sha1_file: squelch "packfile cannot be accessed" warnings
390 * mh/show-branch-topic (2015-03-31) 1 commit
391   (merged to 'next' on 2015-04-08 at 628ada5)
392  + show-branch: show all local heads when only giving one rev along --topics
394  "git show-branch --topics HEAD" (with no other arguments) did not
395  do anything interesting.  Instead, contrast the given revision
396  against all the local branches by default.
398  Will merge to 'master' in the first batch of post v2.4 cycle.
401 * sb/line-log-plug-pairdiff-leak (2015-03-30) 1 commit
402   (merged to 'next' on 2015-04-08 at 6ea8b71)
403  + line-log.c: fix a memleak
405  Will merge to 'master' in the first batch of post v2.4 cycle.
408 * jc/push-cert (2015-04-02) 1 commit
409   (merged to 'next' on 2015-04-08 at aecdd43)
410  + push --signed: tighten what the receiving end can ask to sign
412  The "git push --signed" protocol extension did not limit what the
413  "nonce" that is a server-chosen string can contain or how long it
414  can be, which was unnecessarily lax.  Limit both the length and the
415  alphabet to a reasonably small space that can still have enough
416  entropy.
418  Will merge to 'master' in the first batch of post v2.4 cycle.
421 * jk/init-core-worktree-at-root (2015-04-02) 1 commit
422   (merged to 'next' on 2015-04-08 at 92a942b)
423  + init: don't set core.worktree when initializing /.git
425  We avoid setting core.worktree when the repository location is the
426  ".git" directory directly at the top level of the working tree, but
427  the code misdetected the case in which the working tree is at the
428  root level of the filesystem (which arguably is a silly thing to
429  do, but still valid).
431  Will merge to 'master' in the first batch of post v2.4 cycle.
434 * ts/checkout-advice-plural (2015-04-02) 1 commit
435   (merged to 'next' on 2015-04-08 at dd5c436)
436  + checkout: call a single commit "it" intead of "them"
438  Will merge to 'master' in the first batch of post v2.4 cycle.
441 * pt/credential-xdg (2015-03-25) 4 commits
442   (merged to 'next' on 2015-03-25 at 765128e)
443  + t0302: "unreadable" test needs POSIXPERM
444   (merged to 'next' on 2015-03-24 at 9a3706e)
445  + t0302: test credential-store support for XDG_CONFIG_HOME
446  + git-credential-store: support XDG_CONFIG_HOME
447  + git-credential-store: support multiple credential files
448  (this branch is used by pt/xdg-config-path.)
450  Tweak the sample "store" backend of the credential helper to honor
451  XDG configuration file locations when specified.
453  As this may see further updates, and also this is not an urgent
454  issue anyway, I'll give it a bit more time for it to simmer.
456  Will cook in 'next'.
459 * jc/merge-deprecate-old-syntax (2015-03-26) 1 commit
460  - merge: deprecate 'git merge <message> HEAD <commit>' syntax
461  (this branch is used by jc/merge-drop-old-syntax.)
463  The first step to really start the process of removing the ancient
464  syntax to invoke a two-way merge, which has been deprecated since
465  October 2007.
468 * jc/merge-drop-old-syntax (2015-03-26) 1 commit
469  - merge: drop 'git merge <message> HEAD <commit>' syntax
470  (this branch uses jc/merge-deprecate-old-syntax.)
472  Stop supporting "git merge <messsage> HEAD <commit>" syntax that
473  has been deprecated since October 2007.
476 * jc/diff-no-index-d-f (2015-03-26) 2 commits
477   (merged to 'next' on 2015-03-27 at 1f270f9)
478  + diff-no-index: align D/F handling with that of normal Git
479  + diff-no-index: DWIM "diff D F" into "diff D/F F"
481  The usual "git diff" when seeing a file turning into a directory
482  showed a patchset to remove the file and create all files in the
483  directory, but "git diff --no-index" simply refused to work.  Also,
484  when asked to compare a file and a directory, imitate POSIX "diff"
485  and compare the file with the file with the same name in the
486  directory, instead of refusing to run.
488  Will cook in 'next'.
491 * nd/diff-i-t-a (2015-03-23) 1 commit
492   (merged to 'next' on 2015-03-24 at a6be89f)
493  + diff-lib.c: adjust position of i-t-a entries in diff
495  After "git add -N", the path appeared in output of "git diff HEAD"
496  and "git diff --cached HEAD", leading "git status" to classify it
497  as "Changes to be committed".  Such a path, however, is not yet to
498  be scheduled to be committed.  "git diff" showed the change to the
499  path as modification, not as a "new file", in the header of its
500  output.
502  Treat such paths as "yet to be added to the index but Git already
503  know about them"; "git diff HEAD" and "git diff --cached HEAD"
504  should not talk about them, and "git diff" should show them as new
505  files yet to be added to the index.
507  Will cook in 'next', as this brings in a new world order.
510 * mh/numparse (2015-03-19) 14 commits
511  - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
512  - diff_opt_parse(): use convert_i() when handling "-l<num>"
513  - opt_arg(): simplify pointer handling
514  - opt_arg(): report errors parsing option values
515  - opt_arg(): use convert_i() in implementation
516  - opt_arg(): val is always non-NULL
517  - builtin_diff(): detect errors when parsing --unified argument
518  - handle_revision_opt(): use convert_ui() when handling "--abbrev="
519  - strtoul_ui(), strtol_i(): remove functions
520  - handle_revision_opt(): use convert_i() when handling "-<digit>"
521  - handle_revision_opt(): use skip_prefix() in many places
522  - write_subdirectory(): use convert_ui() for parsing mode
523  - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
524  - numparse: new module for parsing integral numbers
526  Many codepaths use unchecked use of strtol() and friends (or even
527  worse, atoi()).  Introduce a set of wrappers that try to be more
528  careful.
530  Waiting for a reroll ($gmane/266209).
533 * tf/gitweb-project-listing (2015-03-19) 5 commits
534  - gitweb: make category headings into links when they are directories
535  - gitweb: optionally set project category from its pathname
536  - gitweb: add a link under the search box to clear a project filter
537  - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
538  - gitweb: fix typo in man page
540  Update gitweb to make it more pleasant to deal with a hierarchical
541  forest of repositories.
543  Any comments from those who use or have their own code in Gitweb?
546 * jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
547  - "-" and "@{-1}" on various programs
549  Lose special case code to make a lone dash "-" mean the previous
550  branch aka "@{-1}" from a handful subcommands, and instead support
551  the notation throughout the system by reimplementing it at the
552  revisions layer.
554  Needs tests, documentation updates, etc.  Also does only a half-way
555  job dealing with range notation, which needs to be fixed before the
556  series goes anywhere.
559 * bc/object-id (2015-03-13) 10 commits
560   (merged to 'next' on 2015-03-24 at 3ec4f83)
561  + apply: convert threeway_stage to object_id
562  + patch-id: convert to use struct object_id
563  + commit: convert parts to struct object_id
564  + diff: convert struct combine_diff_path to object_id
565  + bulk-checkin.c: convert to use struct object_id
566  + zip: use GIT_SHA1_HEXSZ for trailers
567  + archive.c: convert to use struct object_id
568  + bisect.c: convert leaf functions to use struct object_id
569  + define utility functions for object IDs
570  + define a structure for object IDs
572  Identify parts of the code that knows that we use SHA-1 hash to
573  name our objects too much, and use (1) symbolic constants instead
574  of hardcoded 20 as byte count and/or (2) use struct object_id
575  instead of unsigned char [20] for object names.
577  Will cook in 'next'.
578  Also waiting for reviews on the follow-up series ($gmane/265939)
579  that seems to have seen no interest X-<.
582 * nd/slim-index-pack-memory-usage (2015-02-27) 2 commits
583  - index-pack: kill union delta_base to save memory
584  - index-pack: reduce object_entry size to save memory
586  Memory usage of "git index-pack" has been trimmed by tens of
587  per-cent.
589  Waiting for further comments and a final reroll ($gmane/264544).
592 * nd/list-files (2015-02-09) 21 commits
593  - t3080: tests for git-list-files
594  - list-files: -M aka diff-cached
595  - list-files -F: show submodules with the new indicator '&'
596  - list-files: add -F/--classify
597  - list-files: show directories as well as files
598  - list-files: do not show duplicate cached entries
599  - list-files: sort output and remove duplicates
600  - list-files: add -t back
601  - list-files: add -1 short for --no-column
602  - list-files: add -R/--recursive short for --max-depth=-1
603  - list-files: -u does not imply showing stages
604  - list-files: make alias 'ls' default to 'list-files'
605  - list-files: a user friendly version of ls-files and more
606  - ls-files: support --max-depth
607  - ls-files: add --column
608  - ls-files: add --color to highlight file names
609  - ls-files: buffer full item in strbuf before printing
610  - ls_colors.c: highlight submodules like directories
611  - ls_colors.c: add a function to color a file name
612  - ls_colors.c: parse color.ls.* from config file
613  - ls_colors.c: add $LS_COLORS parsing code
615  A new "git list-files" Porcelain command, "ls-files" with bells and
616  whistles.
618  Reroll to base on wt-status work ($gmane/265142) has seen some
619  positive discussions.
621  Waiting for a further polished reroll ($gmane/265534).
624 * js/fsck-opt (2015-01-21) 19 commits
625  - fsck: support ignoring objects in `git fsck` via fsck.skiplist
626  - fsck: git receive-pack: support excluding objects from fsck'ing
627  - fsck: introduce `git fsck --quick`
628  - fsck: support demoting errors to warnings
629  - fsck: document the new receive.fsck.* options
630  - fsck: allow upgrading fsck warnings to errors
631  - fsck: optionally ignore specific fsck issues completely
632  - fsck: disallow demoting grave fsck errors to warnings
633  - fsck: add a simple test for receive.fsck.*
634  - fsck: make fsck_tag() warn-friendly
635  - fsck: handle multiple authors in commits specially
636  - fsck: make fsck_commit() warn-friendly
637  - fsck: make fsck_ident() warn-friendly
638  - fsck: report the ID of the error/warning
639  - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
640  - fsck: offer a function to demote fsck errors to warnings
641  - fsck: provide a function to parse fsck message IDs
642  - fsck: introduce identifiers for fsck messages
643  - fsck: introduce fsck options
645  "fsck.warnings = <list of error tokens>" I suggested turned out to
646  be an unpopular choice (sorry Dscho).
648  Expecting a reroll.
651 * nd/multiple-work-trees (2015-03-31) 41 commits
652   (merged to 'next' on 2015-04-02 at 7ea51b4)
653  + prune --worktrees: fix expire vs worktree existence condition
654   (merged to 'next' on 2015-03-24 at 58b5a60)
655  + t1501: fix test with split index
656   (merged to 'next' on 2015-03-20 at cc98ed0)
657  + t2026: fix broken &&-chain
658   (merged to 'next' on 2015-02-18 at b51f696)
659  + t2026 needs procondition SANITY
660  + git-checkout.txt: a note about multiple checkout support for submodules
661  + checkout: add --ignore-other-wortrees
662  + checkout: pass whole struct to parse_branchname_arg instead of individual flags
663  + git-common-dir: make "modules/" per-working-directory directory
664  + checkout: do not fail if target is an empty directory
665  + t2025: add a test to make sure grafts is working from a linked checkout
666  + checkout: don't require a work tree when checking out into a new one
667  + git_path(): keep "info/sparse-checkout" per work-tree
668  + count-objects: report unused files in $GIT_DIR/worktrees/...
669  + gc: support prune --worktrees
670  + gc: factor out gc.pruneexpire parsing code
671  + gc: style change -- no SP before closing parenthesis
672  + checkout: clean up half-prepared directories in --to mode
673  + checkout: reject if the branch is already checked out elsewhere
674  + prune: strategies for linked checkouts
675  + checkout: support checking out into a new working directory
676  + use new wrapper write_file() for simple file writing
677  + wrapper.c: wrapper to open a file, fprintf then close
678  + setup.c: support multi-checkout repo setup
679  + setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
680  + setup.c: convert check_repository_format_gently to use strbuf
681  + setup.c: detect $GIT_COMMON_DIR in is_git_directory()
682  + setup.c: convert is_git_directory() to use strbuf
683  + git-stash: avoid hardcoding $GIT_DIR/logs/....
684  + *.sh: avoid hardcoding $GIT_DIR/hooks/...
685  + git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
686  + $GIT_COMMON_DIR: a new environment variable
687  + commit: use SEQ_DIR instead of hardcoding "sequencer"
688  + fast-import: use git_path() for accessing .git dir instead of get_git_dir()
689  + reflog: avoid constructing .lock path with git_path
690  + *.sh: respect $GIT_INDEX_FILE
691  + git_path(): be aware of file relocation in $GIT_DIR
692  + path.c: group git_path(), git_pathdup() and strbuf_git_path() together
693  + path.c: rename vsnpath() to do_git_path()
694  + git_snpath(): retire and replace with strbuf_git_path()
695  + path.c: make get_pathname() call sites return const char *
696  + path.c: make get_pathname() return strbuf instead of static buffer
698  A replacement for contrib/workdir/git-new-workdir that does not
699  rely on symbolic links and make sharing of objects and refs safer
700  by making the borrowee and borrowers aware of each other.
702  Will cook in 'next'.
704 --------------------------------------------------
705 [Discarded]
707 * ak/stash-store-create-help (2015-01-13) 1 commit
708  . stash: show "create" and "store" subcommands in usage-help
711 * bp/diff-relative-config (2015-01-07) 2 commits
712  . diff: teach diff.relative to give default to --relative=<value>
713  . diff: teach --no-relative to override earlier --relative
716 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
717  . git-quiltimport: flip the default not to allow fuzz
718  . git-quiltimport.sh: allow declining fuzz with --exact option
720  "quiltimport" drove "git apply" always with -C1 option to reduce
721  context of the patch in order to give more chance to somewhat stale
722  patches to apply.  Add an "--exact" option to disable, and also
723  "-C$n" option to customize this behaviour.  The top patch
724  optionally flips the default to "--exact".
727 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
728  . SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
729  . git-add--interactive: Preserve diff heading when splitting hunks
732 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
733  . userdiff: support Java try keyword
734  . userdiff: support C# async methods and correct C# keywords
737 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
738  . git-rebase: print name of rev when using shorthand
740  Teach "git rebase -" to report the concrete name of the branch
741  (i.e. the previous one).
743  But it stops short and does not do the same for "git rebase @{-1}".
746 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
747  . merge: drop unused arg from abort_commit method signature
748  . merge: make prepare_to_commit responsible for write_merge_state
749  . t7505: ensure cleanup after hook blocks merge
750  . t7505: add missing &&
752  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
753  run during "git merge".  The log message stresses too much on one
754  hook, prepare-commit-msg, but it would equally apply to other hooks
755  like post-merge, I think.
758 * jc/graph-post-root-gap (2013-12-30) 3 commits
759  . WIP: document what we want at the end
760  . graph: remove unused code a bit
761  . graph: stuff the current commit into graph->columns[]
763  This was primarily a RFH ($gmane/239580).
766 * ts/man-pdf (2015-03-20) 1 commit
767  . Documentation: make 'make pdf' format manpages to PDF as well
769  For offline consumption of manual pages, a target to produce one
770  pdf document per manual page was added to Documentation/Makefile.
772  Its usefulness is unknown, given that this does not produce a
773  single document with all the manual pages in it, which would be not
774  much better than keeping a bunch of HTML manual pages we already
775  produce and use them instead for offline consumption.
777  Discarded, while leaving a single-document target as an open
778  possibility.
781 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
782  . gitweb: Harden UTF-8 handling in generated links