What's cooking (2015/03 #09)
[alt-git.git] / whats-cooking.txt
blob52dfc99293bbf43c68efec99fbe2a1c3c34d5fc3
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
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
12 '+' are in 'next'.
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
24 upcoming release.
26 I'll also start dropping stalled topics from 'pu' as part of spring
27 cleaning.
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
59  Code clean-up.
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
120  helper.
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
127  Code simplification.
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
189  Doc clean-up.
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
196  Code clean-up.
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
212  A test fix.
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 --------------------------------------------------
223 [New Topics]
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.
239  Will cook in 'next'.
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
248  2007.
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 --------------------------------------------------
263 [Stalled]
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
270  grep output.
272  Will discard.
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
322  Will discard.
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
329  Will discard.
332 * jc/diff-b-m (2015-02-23) 5 commits
333  . WIPWIP
334  . WIP: diff-b-m
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
342  other place.
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
350  Expecting a reroll.
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
364  Will discard.
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.
400  Will discard.
403 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
404  - gitweb: Harden UTF-8 handling in generated links
406  $gmane/250758?
407  Will discard.
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.
415  Will discard.
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.
426  Will discard.
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.
441  Will discard.
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).
450  Will discard.
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.
460  Will hold.
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 --------------------------------------------------
473 [Cooking]
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
498  possibility.
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
510  output.
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
555  careful.
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
579  revisions layer.
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.
604  Will cook in 'next'.
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
614  per-cent.
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
643  whistles.
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).
675  Expecting a reroll.
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.
727  Will cook in 'next'.