1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Mar 2014, #01; Tue, 4)
4 X-master-at: 2de34784dfcbb4fe0febe9ab98e0b99138040109
5 X-next-at: d464cb7a99e56a69dc347cdeb1620023efc8669a
7 What's cooking in git.git (Mar 2014, #01; Tue, 4)
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 A handful of "GSoC warm-up microprojects" have been queued on 'pu'.
15 Thanks for reviewing them.
17 You can find the changes described here in the integration branches
18 of the repositories listed at
20 http://git-blame.blogspot.com/p/git-public-repositories.html
22 --------------------------------------------------
23 [Graduated to "master"]
25 * al/docs (2014-02-11) 4 commits
26 (merged to 'next' on 2014-02-25 at 0c1a734)
27 + docs/git-blame: explain more clearly the example pickaxe use
28 + docs/git-clone: clarify use of --no-hardlinks option
29 + docs/git-remote: capitalize first word of initial blurb
30 + docs/merge-strategies: remove hyphen from mis-merges
32 Originally merged to 'next' on 2014-02-13
34 A handful of documentation updates, all trivially harmless.
37 * bc/gpg-sign-everywhere (2014-02-11) 9 commits
38 (merged to 'next' on 2014-02-25 at 7db014c)
39 + pull: add the --gpg-sign option.
40 + rebase: add the --gpg-sign option
41 + rebase: parse options in stuck-long mode
42 + rebase: don't try to match -M option
43 + rebase: remove useless arguments check
44 + am: add the --gpg-sign option
45 + am: parse options in stuck-long mode
46 + git-sh-setup.sh: add variable to use the stuck-long mode
47 + cherry-pick, revert: add the --gpg-sign option
49 Originally merged to 'next' on 2014-02-13
51 Teach "--gpg-sign" option to many commands that create commits.
54 * bk/refresh-missing-ok-in-merge-recursive (2014-02-24) 4 commits
55 (merged to 'next' on 2014-02-25 at 2651cb0)
56 + merge-recursive.c: tolerate missing files while refreshing index
57 + read-cache.c: extend make_cache_entry refresh flag with options
58 + read-cache.c: refactor --ignore-missing implementation
59 + t3030-merge-recursive: test known breakage with empty work tree
61 Originally merged to 'next' on 2014-01-29
63 Allow "merge-recursive" to work in an empty (temporary) working
64 tree again when there are renames involved, correcting an old
65 regression in 1.7.7 era.
68 * bs/stdio-undef-before-redef (2014-01-31) 1 commit
69 (merged to 'next' on 2014-02-25 at 77c4b5f)
70 + git-compat-util.h: #undef (v)snprintf before #define them
72 Originally merged to 'next' on 2014-01-31
74 When we replace broken macros from stdio.h in git-compat-util.h,
75 #undef them to avoid re-definition warnings from the C
79 * da/pull-ff-configuration (2014-01-15) 2 commits
80 (merged to 'next' on 2014-02-25 at b9e4f61)
81 + pull: add --ff-only to the help text
82 + pull: add pull.ff configuration
84 Originally merged to 'next' on 2014-01-22
86 "git pull" learned to pay attention to pull.ff configuration
90 * dk/blame-janitorial (2014-02-25) 5 commits
91 (merged to 'next' on 2014-02-25 at d5faeb2)
92 + builtin/blame.c::find_copy_in_blob: no need to scan for region end
93 + blame.c: prepare_lines should not call xrealloc for every line
94 + builtin/blame.c::prepare_lines: fix allocation size of sb->lineno
95 + builtin/blame.c: eliminate same_suspect()
96 + builtin/blame.c: struct blame_entry does not need a prev link
98 Originally merged to 'next' on 2014-02-13
103 * ds/rev-parse-required-args (2014-01-28) 1 commit
104 (merged to 'next' on 2014-02-25 at bba6e79)
105 + rev-parse: check i before using argv[i] against argc
107 Originally merged to 'next' on 2014-01-31
109 "git rev-parse --default" without the required option argument did
110 not diagnose it as an error.
113 * ep/varscope (2014-01-31) 7 commits
114 (merged to 'next' on 2014-02-25 at e967c7e)
115 + builtin/gc.c: reduce scope of variables
116 + builtin/fetch.c: reduce scope of variable
117 + builtin/commit.c: reduce scope of variables
118 + builtin/clean.c: reduce scope of variable
119 + builtin/blame.c: reduce scope of variables
120 + builtin/apply.c: reduce scope of variables
121 + bisect.c: reduce scope of variable
123 Originally merged to 'next' on 2014-01-31
125 Shrink lifetime of variables by moving their definitions to an
126 inner scope where appropriate.
129 * jk/config-path-include-fix (2014-01-28) 2 commits
130 (merged to 'next' on 2014-02-25 at 3604f75)
131 + handle_path_include: don't look at NULL value
132 + expand_user_path: do not look at NULL path
134 Originally merged to 'next' on 2014-01-31
136 include.path variable (or any variable that expects a path that can
137 use ~username expansion) in the configuration file is not a
138 boolean, but the code failed to check it.
141 * jk/pack-bitmap (2014-02-12) 26 commits
142 (merged to 'next' on 2014-02-25 at 5f65d26)
143 + ewah: unconditionally ntohll ewah data
144 + ewah: support platforms that require aligned reads
145 + read-cache: use get_be32 instead of hand-rolled ntoh_l
146 + block-sha1: factor out get_be and put_be wrappers
147 + do not discard revindex when re-preparing packfiles
148 + pack-bitmap: implement optional name_hash cache
149 + t/perf: add tests for pack bitmaps
150 + t: add basic bitmap functionality tests
151 + count-objects: recognize .bitmap in garbage-checking
152 + repack: consider bitmaps when performing repacks
153 + repack: handle optional files created by pack-objects
154 + repack: turn exts array into array-of-struct
155 + repack: stop using magic number for ARRAY_SIZE(exts)
156 + pack-objects: implement bitmap writing
157 + rev-list: add bitmap mode to speed up object lists
158 + pack-objects: use bitmaps when packing objects
159 + pack-objects: split add_object_entry
160 + pack-bitmap: add support for bitmap indexes
161 + documentation: add documentation for the bitmap format
162 + ewah: compressed bitmap implementation
163 + compat: add endianness helpers
164 + sha1_file: export `git_open_noatime`
165 + revision: allow setting custom limiter function
166 + pack-objects: factor out name_hash
167 + pack-objects: refactor the packing list
168 + revindex: export new APIs
169 (this branch is used by jk/repack-pack-keep-objects.)
171 Originally merged to 'next' on 2014-02-13
173 Borrow the bitmap index into packfiles from JGit to speed up
174 enumeration of objects involved in a commit range without having to
175 fully traverse the history.
178 * jk/test-ports (2014-02-10) 2 commits
179 (merged to 'next' on 2014-02-25 at 86ce2e4)
180 + tests: auto-set git-daemon port
181 + tests: auto-set LIB_HTTPD_PORT from test name
182 (this branch is tangled with nd/http-fetch-shallow-fix.)
184 Originally merged to 'next' on 2014-02-13
186 Avoid having to assign port number to be used in tests manually.
189 * kb/fast-hashmap (2014-02-24) 18 commits
190 (merged to 'next' on 2014-02-25 at 88a98e6)
191 + name-hash: retire unused index_name_exists()
192 + hashmap.h: use 'unsigned int' for hash-codes everywhere
193 + test-hashmap.c: drop unnecessary #includes
194 + .gitignore: test-hashmap is a generated file
195 + read-cache.c: fix memory leaks caused by removed cache entries
196 + builtin/update-index.c: cleanup update_one
197 + fix 'git update-index --verbose --again' output
198 + remove old hash.[ch] implementation
199 + name-hash.c: remove cache entries instead of marking them CE_UNHASHED
200 + name-hash.c: use new hash map implementation for cache entries
201 + name-hash.c: remove unreferenced directory entries
202 + name-hash.c: use new hash map implementation for directories
203 + diffcore-rename.c: use new hash map implementation
204 + diffcore-rename.c: simplify finding exact renames
205 + diffcore-rename.c: move code around to prepare for the next patch
206 + buitin/describe.c: use new hash map implementation
207 + add a hashtable implementation that supports O(1) removal
208 + submodule: don't access the .gitmodules cache entry after removing it
209 (this branch is used by kb/fast-hashmap-pack-struct.)
211 Originally merged to 'next' on 2014-01-03
213 Improvements to our hash table to get it to meet the needs of the
214 msysgit fscache project, with some nice performance improvements.
217 * ks/tree-diff-walk (2014-02-24) 5 commits
218 (merged to 'next' on 2014-02-25 at 17e594f)
219 + tree-walk: finally switch over tree descriptors to contain a pre-parsed entry
220 + revision: convert to using diff_tree_sha1()
221 + line-log: convert to using diff_tree_sha1()
222 + tree-diff: convert diff_root_tree_sha1() to just call diff_tree_sha1 with old=NULL
223 + tree-diff: allow diff_tree_sha1 to accept NULL sha1
224 (this branch is used by ks/combine-diff, ks/tree-diff-more and ks/tree-diff-nway.)
226 Originally merged to 'next' on 2014-02-06
229 * mw/symlinks (2014-02-04) 6 commits
230 (merged to 'next' on 2014-02-25 at 15dc036)
231 + setup: don't dereference in-tree symlinks for absolute paths
232 + setup: add abspath_part_inside_repo() function
233 + t0060: add tests for prefix_path when path begins with work tree
234 + t0060: add test for prefix_path when path == work tree
235 + t0060: add test for prefix_path on symlinks via absolute paths
236 + t3004: add test for ls-files on symlinks via absolute paths
238 Originally merged to 'next' on 2014-02-06
240 All subcommands that take pathspecs mishandled an in-tree symbolic
241 link when given it as a full path from the root (which arguably is
242 a sick way to use pathspecs). "git ls-files -s $(pwd)/RelNotes" in
243 our tree is an easy reproduction recipe.
246 * nd/diff-quiet-stat-dirty (2014-02-24) 2 commits
247 (merged to 'next' on 2014-02-25 at 7cad1d3)
248 + diff: do not quit early on stat-dirty files
249 + diff.c: move diffcore_skip_stat_unmatch core logic out for reuse later
251 Originally merged to 'next' on 2014-01-31
253 "git diff --quiet -- pathspec1 pathspec2" sometimes did not return
254 correct status value.
257 * nd/http-fetch-shallow-fix (2014-02-13) 7 commits
258 (merged to 'next' on 2014-02-25 at ad4e9c9)
259 + t5537: move http tests out to t5539
260 + fetch-pack: fix deepen shallow over smart http with no-done cap
261 + protocol-capabilities.txt: document no-done
262 + protocol-capabilities.txt: refer multi_ack_detailed back to pack-protocol.txt
263 + pack-protocol.txt: clarify 'obj-id' in the last ACK after 'done'
264 + test: rename http fetch and push test files
265 + tests: auto-set LIB_HTTPD_PORT from test name
266 (this branch is tangled with jk/test-ports.)
268 Originally merged to 'next' on 2014-02-13
270 Attempting to deepen a shallow repository by fetching over smart
271 HTTP transport failed in the protocol exchange, when no-done
272 extension was used. The fetching side waited for the list of
273 shallow boundary commits after the sending end stopped talking to
277 * nd/reset-intent-to-add (2014-02-05) 1 commit
278 (merged to 'next' on 2014-02-25 at 0c48245)
279 + reset: support "--mixed --intent-to-add" mode
281 Originally merged to 'next' on 2014-02-07
284 * nd/submodule-pathspec-ending-with-slash (2014-02-24) 8 commits
285 (merged to 'next' on 2014-02-25 at 954b7a2)
286 + clean: use cache_name_is_other()
287 + clean: replace match_pathspec() with dir_path_match()
288 + pathspec: pass directory indicator to match_pathspec_item()
289 + match_pathspec: match pathspec "foo/" against directory "foo"
290 + dir.c: prepare match_pathspec_item for taking more flags
291 + pathspec: rename match_pathspec_depth() to match_pathspec()
292 + pathspec: convert some match_pathspec_depth() to dir_path_match()
293 + pathspec: convert some match_pathspec_depth() to ce_path_match()
295 Originally merged to 'next' on 2014-01-31
297 Allow "git cmd path/", when the 'path' is where a submodule is
298 bound to the top-level working tree, to match 'path', despite the
299 extra and unnecessary trailing slash.
302 * nd/test-rename-reset (2014-02-04) 1 commit
303 (merged to 'next' on 2014-02-25 at 7b25711)
304 + t7101, t7014: rename test files to indicate what that file is for
306 Originally merged to 'next' on 2014-02-06
309 * nv/commit-gpgsign-config (2014-02-24) 3 commits
310 (merged to 'next' on 2014-02-25 at 0baefa2)
311 + test the commit.gpgsign config option
312 + commit-tree: add and document --no-gpg-sign
313 + commit-tree: add the commit.gpgsign option to sign all commits
315 Originally merged to 'next' on 2014-01-03
317 Introduce commit.gpgsign configuration variable to force every
318 commit to be GPG signed. The variable cannot be overriden from the
319 command line of some of the commands that create commits except for
320 "git commit" and "git commit-tree", but I am not convinced that it
321 is a good idea to sprinkle support for --no-gpg-sign everywhere,
322 which in turn means that this configuration variable may not be
326 * wk/submodule-on-branch (2014-02-24) 4 commits
327 (merged to 'next' on 2014-02-25 at c6d9fef)
328 + Documentation: describe 'submodule update --remote' use case
329 + submodule: explicit local branch creation in module_clone
330 + submodule: document module_clone arguments in comments
331 + submodule: make 'checkout' update_module mode more explicit
333 Originally merged to 'next' on 2014-02-06
335 Make sure 'submodule update' modes that do not detach HEADs can
336 be used more pleasantly by checking out a concrete branch when
337 cloning them to prime the well.
339 --------------------------------------------------
342 * jc/stash-pop-not-popped (2014-02-26) 1 commit
343 - stash pop: mention we did not drop the stash upon failing to apply
345 "stash pop", upon failing to apply the stash, refrains from
346 discarding the stash to avoid information loss. Be more explicit
347 in the error message.
349 The wording may want to get a bit more bikeshedding, but otherwise
350 it should be OK for 'next'.
353 * bg/install-branch-config-skip-prefix (2014-02-28) 2 commits
354 - branch: use skip_prefix() in install_branch_config()
355 - t3200-branch: test setting branch as own upstream
357 The new test probably wants the longer-term effect of the rejected
358 operation, not just the rejection warning message.
361 * cn/fetch-prune-overlapping-destination (2014-02-28) 2 commits
362 - fetch: handle overlaping refspecs on --prune
363 - fetch: add a failing test for prunning with overlapping refspecs
365 Protect refs in a hierarchy that can come from more than one remote
366 hierarcies from incorrect removal by "git fetch --prune".
371 * dd/find-graft-with-sha1-pos (2014-02-27) 1 commit
372 - commit.c: use the generic "sha1_pos" function for lookup
374 Replace a hand-rolled binary search with a call to our generic
375 binary search helper function.
378 * dd/use-alloc-grow (2014-03-03) 14 commits
379 - sha1_file.c: use ALLOC_GROW() in pretend_sha1_file()
380 - read-cache.c: use ALLOC_GROW() in add_index_entry()
381 - builtin/mktree.c: use ALLOC_GROW() in append_to_tree()
382 - attr.c: use ALLOC_GROW() in handle_attr_line()
383 - dir.c: use ALLOC_GROW() in create_simplify()
384 - reflog-walk.c: use ALLOC_GROW()
385 - replace_object.c: use ALLOC_GROW() in register_replace_object()
386 - patch-ids.c: use ALLOC_GROW() in add_commit()
387 - diffcore-rename.c: use ALLOC_GROW()
388 - diff.c: use ALLOC_GROW()
389 - commit.c: use ALLOC_GROW() in register_commit_graft()
390 - cache-tree.c: use ALLOC_GROW() in find_subtree()
391 - bundle.c: use ALLOC_GROW() in add_to_ref_list()
392 - builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path()
394 Replace open-coded reallocation with ALLOC_GROW() macro.
397 * dk/skip-prefix-scan-only-once (2014-03-03) 1 commit
398 - skip_prefix(): scan prefix only once
400 Updaste implementation of skip_prefix() to scan only once; given
401 that most "prefix" arguments to the inline function are constant
402 strings whose strlen() can be determined at the compile time, this
403 might actually make things worse with a compiler with sufficient
407 * jk/doc-coding-guideline (2014-02-28) 1 commit
408 - CodingGuidelines: mention C whitespace rules
410 Elaborate on a style niggle that has been part of "mimic existing
413 Will merge to 'next'.
416 * jk/shallow-update-fix (2014-02-27) 2 commits
417 - shallow: automatically clean up shallow tempfiles
418 - shallow: use stat_validity to check for up-to-date file
420 Serving objects from a shallow repository needs to write a
421 temporary file to be used, but the serving upload-pack may not have
422 write access to the repository which is meant to be read-only.
425 * jl/doc-submodule-update-checkout (2014-02-28) 1 commit
426 - submodule update: consistently document the '--checkout' option
428 Add missing documentation for "submodule update --checkout".
430 Will merge to 'next'.
433 * jn/bisect-coding-style (2014-03-03) 1 commit
434 - git-bisect.sh: fix a few style issues
436 Will merge to 'next'.
439 * jn/branch-lift-unnecessary-name-length-limit (2014-02-28) 1 commit
440 - branch.c: delete size check of newly tracked branch names
443 * mh/simplify-cache-tree-find (2014-03-04) 2 commits
444 - SQUASH??? use strchrnul
445 - cache_tree_find(): remove redundant checks
448 * nd/strbuf-inline-styles (2014-03-03) 1 commit
449 - strbuf: style fix -- top opening bracket on a separate line
451 Will merge to 'next'.
454 * nd/tag-version-sort (2014-02-27) 1 commit
455 - tag: support --sort=<spec>
457 Allow v1.9.0 sorted before v1.10.0 in "git tag --list" output.
460 * rt/help-pretty-prints-cmd-names (2014-02-28) 1 commit
461 - help.c: rename function "pretty_print_string_list"
463 Will merge to 'next'.
466 * sg/archive-restrict-remote (2014-02-28) 2 commits
467 - add uploadarchive.allowUnreachable option
468 - docs: clarify remote restrictions for git-upload-archive
470 Allow loosening remote "git archive" invocation security check that
471 refuses to serve tree-ish not at the tip of any ref.
473 Will merge to 'next'.
477 * sh/finish-tmp-packfile (2014-03-03) 2 commits
478 - finish_tmp_packfile():use strbuf for pathname construction
479 - Merge branch 'sh/write-pack-file-warning-message-fix' into sh/finish-tmp-packfile
480 (this branch uses sh/write-pack-file-warning-message-fix.)
483 * sh/write-pack-file-warning-message-fix (2014-03-03) 1 commit
484 - write_pack_file: use correct variable in diagnostic
485 (this branch is used by sh/finish-tmp-packfile.)
487 A warning from "git pack-objects" were generated by referring to an
488 incorrect variable when forming the filename that we had trouble
491 Will merge to 'next'.
494 * sr/add--interactive-term-readkey (2014-03-03) 2 commits
495 - git-add--interactive: warn if module for interactive.singlekey is missing
496 - git-config: document interactive.singlekey requires Term::ReadKey
498 Will merge to 'next'.
501 * ta/parse-commit-with-skip-prefix (2014-03-04) 1 commit
502 - commit.c: use skip_prefix() instead of starts_with()
504 Will merge to 'next'.
506 --------------------------------------------------
509 * kb/fast-hashmap-pack-struct (2014-02-24) 1 commit
510 - hashmap.h: make sure map entries are tightly packed
512 I am inclined to drop this; an alternative is to replace it with
513 the "more portable" one that uses #pragma, which I am willing to
514 try doing so on 'pu', though.
517 * po/everyday-doc (2014-01-27) 1 commit
518 - Make 'git help everyday' work
520 This may make the said command to emit something, but the source is
521 not meant to be formatted into a manual pages to begin with, and
522 also its contents are a bit stale. It may be a good first step in
523 the right direction, but needs more work to at least get the
524 mark-up right before public consumption.
529 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
530 - t1507 (rev-parse-upstream): fix typo in test title
531 - implement @{publish} shorthand
532 - branch_get: provide per-branch pushremote pointers
533 - branch_get: return early on error
534 - sha1_name: refactor upstream_mark
536 Give an easier access to the tracking branches from "other" side in
537 a triangular workflow by introducing B@{publish} that works in a
538 similar way to how B@{upstream} does.
540 Meant to be used as a basis for whatever Ram wants to build on.
545 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
546 - merge: drop unused arg from abort_commit method signature
547 - merge: make prepare_to_commit responsible for write_merge_state
548 - t7505: ensure cleanup after hook blocks merge
549 - t7505: add missing &&
551 Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
552 run during "git merge". The log message stresses too much on one
553 hook, prepare-commit-msg, but it would equally apply to other hooks
554 like post-merge, I think.
556 Waiting for a reroll.
559 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
560 - Teach checkout to recursively checkout submodules
561 - submodule: teach unpack_trees() to update submodules
562 - submodule: teach unpack_trees() to repopulate submodules
563 - submodule: teach unpack_trees() to remove submodule contents
564 - submodule: prepare for recursive checkout of submodules
569 * jc/graph-post-root-gap (2013-12-30) 3 commits
570 - WIP: document what we want at the end
571 - graph: remove unused code a bit
572 - graph: stuff the current commit into graph->columns[]
574 This was primarily a RFH ($gmane/239580).
577 * fc/completion (2013-12-09) 1 commit
578 - completion: fix completion of certain aliases
580 SZEDER Gábor noticed that this breaks "git -c var=val alias" and
581 also suggested a better description of the change.
583 Has been stalled for a while without much comments from anybody
589 * mo/subtree-split-updates (2013-12-10) 3 commits
590 - subtree: add --edit option
591 - subtree: allow --squash and --message with push
592 - subtree: support split --rejoin --squash
594 Has been stalled for a while without much comments from anybody
600 * hv/submodule-ignore-fix (2013-12-06) 4 commits
601 - disable complete ignorance of submodules for index <-> HEAD diff
602 - always show committed submodules in summary after commit
603 - teach add -f option for ignored submodules
604 - fix 'git add' to skip submodules configured as ignored
606 Teach "git add" to be consistent with "git status" when changes to
607 submodules are set to be ignored, to avoid surprises after checking
608 with "git status" to see there isn't any change to be further added
609 and then see that "git add ." adds changes to them.
611 I think a reroll is coming, so this may need to be replaced, but I
612 needed some practice with heavy conflict resolution. It conflicts
613 with two changes to "git add" that have been scheduled for Git 2.0
614 quite badly, and I think I got the resolution right this time.
616 Waiting for a reroll.
619 * jc/create-directories-microopt (2013-11-11) 1 commit
620 - checkout: most of the time we have good leading directories
622 Of unknown value until tested on non-Linux platforms (especially
628 * jt/commit-fixes-footer (2013-10-30) 1 commit
629 - commit: Add -f, --fixes <commit> option to add Fixes: line
631 There is an ongoing discussion around this topic; in general I am
632 fairly negative on a new feature that is too narrow and prefer a
633 more generic solution that can be tailored for specific needs, as
634 many people stated in the thread.
636 cc/interpret-trailers could be such a generic solution (although
637 there don't seem to be much concensus yet).
642 * np/pack-v4 (2013-09-18) 90 commits
643 . packv4-parse.c: add tree offset caching
644 . t1050: replace one instance of show-index with verify-pack
645 . index-pack, pack-objects: allow creating .idx v2 with .pack v4
646 . unpack-objects: decode v4 trees
647 . unpack-objects: allow to save processed bytes to a buffer
650 Nico and Duy advancing the eternal vaporware pack-v4. This is here
651 primarily for wider distribution of the preview edition.
653 Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
654 this topic conflicts with.
657 * mf/graph-show-root (2013-10-25) 1 commit
658 . graph.c: mark root commit differently
660 In a repository with multiple-roots, "log --graph", especially with
661 "--oneline", does not give the reader enough visual cue to see
662 where one line of history ended and a separate history began.
664 This is the version that marks the roots 'x' when they would have
665 been marked as '*'; Keshav Kini suggested an alternative of giving
666 an extra blank line after every root, which I tend to think is a
667 better approach to the problem.
672 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
673 - perf-lib: add test_perf_cleanup target
674 - perf-lib: split starting the test from the execution
676 Add test_perf_cleanup shell function to the perf suite, that allows
677 the script writers to define a test with a clean-up action.
682 * yt/shortened-rename (2013-10-18) 2 commits
683 - SQUASH??? style fixes and s/omit/shorten/ where appropriate
684 - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
686 Attempts to give more weight on the fact that a filepair represents
687 a rename than showing substring of the actual path when diffstat
688 lines are not wide enough.
690 I am not sure if that is solving a right problem, though.
695 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
696 - git-send-email: Cache generated message-ids, use them when prompting
697 - git-send-email: add optional 'choices' parameter to the ask sub
702 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
703 - ### DONTMERGE: needs better explanation on what config they need
704 - pack-refs.c: Add missing call to git_config()
705 - show-ref.c: Add missing call to git_config()
707 The changes themselves are probably good, but it is unclear what
708 basic setting needs to be read for which exact operation.
710 Will discard, tired of waiting for clarification.
714 * jc/format-patch (2013-04-22) 2 commits
715 - format-patch: --inline-single
716 - format-patch: rename "no_inline" field
718 A new option to send a single patch to the standard output to be
719 appended at the bottom of a message. I personally have no need for
720 this, but it was easy enough to cobble together. Tests, docs and
721 stripping out more MIMEy stuff are left as exercises to interested
725 * jk/gitweb-utf8 (2013-04-08) 4 commits
726 - gitweb: Fix broken blob action parameters on blob/commitdiff pages
727 - gitweb: Don't append ';js=(0|1)' to external links
728 - gitweb: Make feed title valid utf8
729 - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
731 Various fixes to gitweb.
733 Drew Northup volunteered to take a look into this ($gmane/226216)
734 but nothing seems to have happened since then.
739 * jc/show-branch (2013-06-07) 5 commits
740 - show-branch: use commit slab to represent bitflags of arbitrary width
741 - show-branch.c: remove "all_mask"
742 - show-branch.c: abstract out "flags" operation
743 - show-branch.c: lift all_mask/all_revs to a global static
744 - show-branch.c: update comment style
746 Waiting for the final step to lift the hard-limit before sending it out.
748 --------------------------------------------------
751 * ak/gitweb-fit-image (2014-02-20) 1 commit
752 - gitweb: Avoid overflowing page body frame with large images
754 Instead of allowing an <img> to be shown in whatever size, force
755 scaling it to fit on the page with max-height/max-width css style
758 Will merge to 'next'.
761 * da/difftool-git-files (2014-02-25) 2 commits
762 - WIP: test to protect the previous fix
763 - difftool: support repositories with .git-files
765 "git difftool" misbehaved when the repository is bound to the
766 working tree with the ".git file" mechanism, where a textual
767 file ".git" tells us where it is.
769 Will merge to 'next'.
772 * jk/commit-dates-parsing-fix (2014-02-24) 5 commits
773 - log: do not segfault on gmtime errors
774 - log: handle integer overflow in timestamps
775 - date: check date overflow against time_t
776 - fsck: report integer overflow in author timestamps
777 - t4212: test bogus timestamps with git-log
779 Will merge to 'next'.
782 * jk/diff-filespec-cleanup (2014-02-24) 1 commit
783 - diffcore.h: be explicit about the signedness of is_binary
785 Will merge to 'next' and then to 'master' and 'maint'.
788 * jk/remote-pushremote-config-reading (2014-02-24) 1 commit
789 - remote: handle pushremote config in any order
791 Will merge to 'next'.
794 * jk/repack-pack-keep-objects (2014-03-03) 1 commit
795 - repack: add `repack.packKeptObjects` config var
798 * jm/stash-doc-k-for-keep (2014-02-24) 1 commit
799 - stash doc: mention short form -k in save description
801 Will merge to 'next'.
804 * jn/am-doc-hooks (2014-02-24) 1 commit
805 - am doc: add a pointer to relevant hooks
807 Will merge to 'next'.
810 * mh/object-code-cleanup (2014-02-24) 4 commits
811 - sha1_file.c: document a bunch of functions defined in the file
812 - sha1_file_name(): declare to return a const string
813 - find_pack_entry(): document last_found_pack
814 - replace_object: use struct members instead of an array
816 Will merge to 'next'.
819 * nd/i18n-progress (2014-02-24) 1 commit
820 - i18n: mark all progress lines for translation
822 Will merge to 'next'.
825 * nd/sha1-file-delta-stack-leakage-fix (2014-02-24) 1 commit
826 - sha1_file: fix delta_stack memory leak in unpack_entry
828 Will merge to 'next' and then to 'master' and 'maint'.
831 * tc/commit-dry-run-exit-status-tests (2014-02-24) 1 commit
832 - demonstrate git-commit --dry-run exit code behaviour
835 * fc/transport-helper-fixes (2014-02-24) 7 commits
836 - remote-bzr: support the new 'force' option
837 - test-hg.sh: tests are now expected to pass
838 - transport-helper.c: do not overwrite forced bit
839 - transport-helper: check for 'forced update' message
840 - transport-helper: add 'force' to 'export' helpers
841 - transport-helper: don't update refs in dry-run
842 - transport-helper: mismerge fix
844 Updates transport-helper, fast-import and fast-export to allow the
845 ref mapping and ref deletion in a way similar to the natively
846 supported transports.
848 Will merge to 'next'.
851 * bc/blame-crlf-test (2014-02-18) 1 commit
852 - blame: add a failing test for a CRLF issue.
854 I have a feeling that a fix for this should be fairly isolated and
855 trivial (it should be just the matter of paying attention to the
856 crlf settings when synthesizing the fake commit)---perhaps somebody
857 can squash in a fix to this?
860 * jk/http-no-curl-easy (2014-02-18) 1 commit
861 - http: never use curl_easy_perform
863 Avoid use of the curl-easy family of functions, which interferes
864 with connection reuse in a negative way.
866 Will merge to 'next'.
869 * jk/janitorial-fixes (2014-02-18) 5 commits
870 - open_istream(): do not dereference NULL in the error case
871 - builtin/mv: don't use memory after free
872 - utf8: use correct type for values in interval table
873 - utf8: fix iconv error detection
874 - notes-utils: handle boolean notes.rewritemode correctly
876 Will merge to 'next'.
879 * ks/config-file-stdin (2014-02-18) 4 commits
880 - config: teach "git config --file -" to read from the standard input
881 - config: change git_config_with_options() interface
882 - builtin/config.c: rename check_blob_write() -> check_write()
883 - config: disallow relative include paths from blobs
885 Will merge to 'next'.
888 * lb/contrib-contacts-looser-diff-parsing (2014-02-18) 1 commit
889 - git-contacts: do not fail parsing of good diffs
891 Will merge to 'next'.
894 * mh/replace-refs-variable-rename (2014-02-28) 3 commits
895 - Document some functions defined in object.c
896 - Add docstrings for lookup_replace_object() and do_lookup_replace_object()
897 - rename read_replace_refs to check_replace_refs
899 Will merge to 'next'.
902 * nd/commit-editor-cleanup (2014-02-25) 3 commits
903 - commit: add --cleanup=scissors
904 - wt-status.c: move cut-line print code out to wt_status_add_cut_line
905 - wt-status.c: make cut_line[] const to shrink .data section a bit
907 "git commit --cleanup=<mode>" learned a new mode, scissors.
910 * nd/no-more-fnmatch (2014-02-20) 4 commits
911 - actually remove compat fnmatch source code
912 - stop using fnmatch (either native or compat)
913 - Revert "test-wildmatch: add "perf" command to compare wildmatch and fnmatch"
914 - use wildmatch() directly without fnmatch() wrapper
916 We started using wildmatch() in place of fnmatch(3); complete the
917 process and stop using fnmatch(3).
919 Will merge to 'next'.
922 * nd/reset-setup-worktree (2014-02-18) 1 commit
923 - reset: optionally setup worktree and refresh index on --mixed
925 "git reset" needs to refresh the index when working in a working
926 tree (it can also be used to match the index to the HEAD in an
927 otherwise bare repository), but it failed to set up the working
928 tree properly, causing GIT_WORK_TREE to be ignored.
930 Will merge to 'next'.
933 * po/git-help-user-manual (2014-02-18) 1 commit
934 - Provide a 'git help user-manual' route to the docbook
936 I am not sure if this is even needed.
939 * rt/links-for-asciidoctor (2014-02-20) 1 commit
940 - Documentation: fix documentation AsciiDoc links for external urls
942 Will merge to 'next'.
945 * tg/index-v4-format (2014-02-24) 3 commits
946 - read-cache: add index.version config variable
947 - test-lib: allow setting the index format version
948 - introduce GIT_INDEX_VERSION environment variable
950 Will merge to 'next'.
953 * tr/diff-submodule-no-reuse-worktree (2014-02-18) 1 commit
954 - diff: do not reuse_worktree_file for submodules
956 "git diff --external-diff" incorrectly fed the submodule directory
957 in the working tree to the external diff driver when it knew it is
958 the same as one of the versions being compared.
960 Will merge to 'next'.
963 * nd/multiple-work-trees (2014-02-19) 26 commits
965 - gc: support prune --repos
966 - prune: strategies for linked checkouts
967 - checkout: detach if the branch is already checked out elsewhere
968 - checkout: clean up half-prepared directories in --to mode
969 - checkout: support checking out into a new working directory
970 - use new wrapper write_file() for simple file writing
971 - wrapper.c: wrapper to open a file, fprintf then close
972 - setup.c: support multi-checkout repo setup
973 - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
974 - setup.c: convert check_repository_format_gently to use strbuf
975 - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
976 - setup.c: convert is_git_directory() to use strbuf
977 - git-stash: avoid hardcoding $GIT_DIR/logs/....
978 - *.sh: avoid hardcoding $GIT_DIR/hooks/...
979 - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
980 - Add new environment variable $GIT_COMMON_DIR
981 - commit: use SEQ_DIR instead of hardcoding "sequencer"
982 - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
983 - reflog: avoid constructing .lock path with git_path
984 - *.sh: respect $GIT_INDEX_FILE
985 - Make git_path() aware of file relocation in $GIT_DIR
986 - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
987 - path.c: rename vsnpath() to do_git_path()
988 - Convert git_snpath() to strbuf_git_path()
989 - path.c: make get_pathname() return strbuf instead of static buffer
991 The tip commit needs to be dropped; the series needs a serious review.
994 * ks/tree-diff-nway (2014-03-04) 19 commits
995 - combine-diff: speed it up, by using multiparent diff tree-walker directly
996 - tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
997 - Portable alloca for Git
998 - tree-diff: reuse base str(buf) memory on sub-tree recursion
999 - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
1000 - tree-diff: rework diff_tree interface to be sha1 based
1001 - tree-diff: diff_tree() should now be static
1002 - tree-diff: remove special-case diff-emitting code for empty-tree cases
1003 - tree-diff: simplify tree_entry_pathcmp
1004 - tree-diff: show_path prototype is not needed anymore
1005 - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
1006 - tree-diff: move all action-taking code out of compare_tree_entry()
1007 - tree-diff: don't assume compare_tree_entry() returns -1,0,1
1008 - tree-diff: consolidate code for emitting diffs and recursion in one place
1009 - tree-diff: show_tree() is not needed
1010 - tree-diff: no need to pass match to skip_uninteresting()
1011 - tree-diff: no need to manually verify that there is no mode change for a path
1012 - combine-diff: move changed-paths scanning logic into its own function
1013 - combine-diff: move show_log_first logic/action out of paths scanning
1014 (this branch uses ks/combine-diff.)
1016 Instead of running N pair-wise diff-trees when inspecting a
1017 N-parent merge, find the set of paths that were touched by walking
1018 N+1 trees in parallel. These set of paths can then be turned into
1019 N pair-wise diff-tree results to be processed through rename
1020 detections and such. And N=2 case nicely degenerates to the usual
1021 2-way diff-tree, which is very nice.
1024 * nd/daemonize-gc (2014-02-10) 2 commits
1025 (merged to 'next' on 2014-02-25 at f592335)
1026 + gc: config option for running --auto in background
1027 + daemon: move daemonize() to libgit.a
1029 Originally merged to 'next' on 2014-02-20
1031 Allow running "gc --auto" in the background.
1033 Will merge to 'master'.
1036 * nd/gitignore-trailing-whitespace (2014-02-10) 2 commits
1037 - dir: ignore trailing spaces in exclude patterns
1038 - dir: warn about trailing spaces in exclude patterns
1040 Warn and then ignore trailing whitespaces in .gitignore files,
1041 unless they are quoted for fnmatch(3), e.g. "path\ ".
1043 Will merge to 'next'.
1046 * nd/log-show-linear-break (2014-02-10) 1 commit
1047 - log: add --show-linear-break to help see non-linear history
1049 Attempts to show where a single-strand-of-pearls break in "git log"
1052 "git log --no-merges --show-linear-break" does not seem to work
1053 well (tried on range "pu~10..pu" or something like that).
1056 * ss/completion-rec-sub-fetch-push (2014-02-11) 1 commit
1057 - completion: teach --recurse-submodules to fetch, pull and push
1059 Will merge to 'next'.
1062 * jh/note-trees-record-blobs (2014-02-20) 1 commit
1063 - notes: disallow reusing non-blob as a note object
1065 "git notes -C <blob>" should not take an object that is not a blob.
1067 Will merge to 'next'.
1070 * jk/run-network-tests-by-default (2014-02-14) 1 commit
1071 (merged to 'next' on 2014-02-25 at 62a8ad0)
1072 + tests: turn on network daemon tests by default
1074 Originally merged to 'next' on 2014-02-20
1076 Teach "make test" to run networking tests when possible by default.
1078 Will merge to 'master'.
1081 * jc/check-attr-honor-working-tree (2014-02-06) 2 commits
1082 - check-attr: move to the top of working tree when in non-bare repository
1083 - t0003: do not chdir the whole test process
1085 "git check-attr" when (trying to) work on a repository with a
1086 working tree did not work well when the working tree was specified
1087 via --work-tree (and obviously with --git-dir).
1089 The command also works in a bare repository but it reads from the
1090 (possibly stale, irrelevant and/or nonexistent) index, which may
1091 need to be fixed to read from HEAD, but that is a completely
1092 separate issue. As a related tangentto this separate issue, we may
1093 want to also fix "check-ignore", which refuses to work in a bare
1094 repository, to also operate in a bare one.
1096 Will merge to 'next'.
1099 * jk/makefile (2014-02-05) 16 commits
1101 - move LESS/LV pager environment to Makefile
1102 - Makefile: teach scripts to include make variables
1104 - Makefile: auto-build C strings from make variables
1105 - Makefile: drop *_SQ variables
1107 - Makefile: add c-quote helper function
1108 - Makefile: introduce sq function for shell-quoting
1109 - Makefile: always create files via make-var
1110 - Makefile: store GIT-* sentinel files in MAKE/
1111 - Makefile: prefer printf to echo for GIT-*
1112 - Makefile: use tempfile/mv strategy for GIT-*
1113 - Makefile: introduce make-var helper function
1114 - Makefile: fix git-instaweb dependency on gitweb
1115 - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
1117 Simplify the Makefile rules and macros that exist primarily for
1118 quoting purposes, and make it easier to robustly express the
1124 * tr/remerge-diff (2014-02-26) 5 commits
1125 . log --remerge-diff: show what the conflict resolution changed
1126 . name-hash: allow dir hashing even when !ignore_case
1127 . merge-recursive: allow storing conflict hunks in index
1128 . revision: fold all merge diff variants into an enum merge_diff_mode
1129 . combine-diff: do not pass revs->dense_combined_merges redundantly
1130 (this branch uses tr/merge-recursive-index-only.)
1132 "log -p" output learns a new way to let users inspect a merge
1133 commit by showing the differences between the automerged result
1134 with conflicts the person who recorded the merge would have seen
1135 and the final conflict resolution that was recorded in the merge.
1137 RFC. This latest round clashes with the kb/fast-hashmap topic in
1141 * ks/combine-diff (2014-02-24) 6 commits
1142 (merged to 'next' on 2014-02-25 at 69e5a87)
1143 + tests: add checking that combine-diff emits only correct paths
1144 + combine-diff: simplify intersect_paths() further
1145 + combine-diff: combine_diff_path.len is not needed anymore
1146 + combine-diff: optimize combine_diff_path sets intersection
1147 + diff test: add tests for combine-diff with orderfile
1148 + diffcore-order: export generic ordering interface
1149 (this branch is used by ks/tree-diff-nway.)
1151 Originally merged to 'next' on 2014-02-20
1153 Teach combine-diff to honour the path-output-order imposed by
1154 diffcore-order, and optimize how matching paths are found in
1155 the N-way diffs made with parents.
1157 Will merge to 'master'.
1160 * lt/request-pull (2014-02-25) 5 commits
1161 - request-pull: resurrect "pretty refname" feature
1162 - request-pull: test updates
1163 - request-pull: pick up tag message as before
1164 - request-pull: allow "local:remote" to specify names on both ends
1165 - request-pull: more strictly match local/remote branches
1167 Needs doc update but otherwise it should be ready for 'next'.
1170 * cc/interpret-trailers (2014-02-20) 14 commits
1171 - Documentation: add documentation for 'git interpret-trailers'
1172 - trailer: add tests for commands using env variables
1173 - trailer: set author and committer env variables
1174 - trailer: add tests for trailer command
1175 - trailer: execute command from 'trailer.<name>.command'
1176 - trailer: if no input file is passed, read from stdin
1177 - trailer: add tests for "git interpret-trailers"
1178 - trailer: add interpret-trailers command
1179 - trailer: put all the processing together and print
1180 - trailer: parse trailers from input file
1181 - trailer: process command line trailer arguments
1182 - trailer: read and process config information
1183 - trailer: process trailers from file and arguments
1184 - trailer: add data structures and basic functions for commit trailers
1186 Will pick up the reroll but not today.
1189 * bl/blame-full-history (2014-01-14) 1 commit
1190 - blame: new option --prefer-first to better handle merged cherry-picks
1192 By disabling the tree-same optimization (which is consistent with
1193 the default behaviour of "git log"-family of commands), make "git
1194 blame" sometimes produce different result from the original code.
1196 Because the "git blame" output can give result for each line from
1197 only one lineage of the history, however, this can be only useful
1198 when you are lucky---unlike "--full-history" of "git log"-family,
1199 where we can show commits from both lineages of histories with an
1200 equal weight. See $gmane/240392 for more detailed discussion.
1205 * jk/warn-on-object-refname-ambiguity (2014-01-09) 6 commits
1206 - get_sha1: drop object/refname ambiguity flag
1207 - get_sha1: speed up ambiguous 40-hex test
1208 - FIXUP: teach DO_FOR_EACH_NO_RECURSE to prime_ref_dir()
1209 - refs: teach for_each_ref a flag to avoid recursion
1210 - cat-file: fix a minor memory leak in batch_objects
1211 - cat-file: refactor error handling of batch_objects
1216 * ap/remote-hg-skip-null-bookmarks (2014-01-02) 1 commit
1217 - remote-hg: do not fail on invalid bookmarks
1219 Reported to break tests ($gmane/240005)
1223 * cc/starts-n-ends-with-endgame (2013-12-05) 1 commit
1224 (merged to 'next' on 2014-02-25 at 473e143)
1225 + strbuf: remove prefixcmp() and suffixcmp()
1227 Originally merged to 'next' on 2014-01-07
1229 Endgame for the cc/starts-n-ends-with topic; this needs to be
1230 evil-merged with other topics that introduce new uses of
1231 prefix/suffix-cmp functions.
1233 Will merge to 'master' for 2.0.0
1236 * gj/push-more-verbose-advice (2013-11-13) 1 commit
1237 (merged to 'next' on 2014-02-25 at 1cd10b0)
1238 + push: switch default from "matching" to "simple"
1240 Originally merged to 'next' on 2013-11-21
1242 Explain 'simple' and 'matching' in "git push" advice message; the
1243 topmost patch is a rebase of jc/push-2.0-default-to-simple on top
1246 Will merge to 'master' for 2.0.0
1249 * tr/merge-recursive-index-only (2014-02-05) 3 commits
1250 - merge-recursive: -Xindex-only to leave worktree unchanged
1251 - merge-recursive: internal flag to avoid touching the worktree
1252 - merge-recursive: remove dead conditional in update_stages()
1253 (this branch is used by tr/remerge-diff.)
1258 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
1259 (merged to 'next' on 2014-02-25 at 9e5c0d2)
1260 + git add: -u/-A now affects the entire working tree
1262 Originally merged to 'next' on 2013-12-06
1264 Will merge to 'master' for 2.0.0
1267 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
1268 (merged to 'next' on 2014-02-25 at 62f6aeb)
1269 + core.statinfo: remove as promised in Git 2.0
1271 Originally merged to 'next' on 2013-12-06
1273 Will merge to 'master' for 2.0.0
1276 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
1277 (merged to 'next' on 2014-02-25 at 1f0e178)
1278 + push: switch default from "matching" to "simple"
1280 Originally merged to 'next' on 2013-12-06
1282 Will merge to 'master' for 2.0.0
1285 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
1286 (merged to 'next' on 2014-02-25 at a0d018a)
1287 + git add <pathspec>... defaults to "-A"
1289 Originally merged to 'next' on 2013-12-06
1291 Updated endgame for "git add <pathspec>" that defaults to "--all"
1292 aka "--no-ignore-removal".
1294 Will merge to 'master' for 2.0.0
1297 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
1298 (merged to 'next' on 2014-02-25 at ccfff88)
1299 + diff: remove "diff-files -q" in a version of Git in a distant future
1301 Originally merged to 'next' on 2013-12-06
1303 Remove deprecated "-q" option "git diff-files".
1305 Will cook in 'next' until a distant future.
1307 --------------------------------------------------
1310 * tb/repack-fix-renames (2014-02-05) 1 commit
1311 . repack.c: rename a few variables
1313 Perhaps unneeded, as the longer-term plan is to drop the codeblock
1314 this change touches.
1317 * ks/diff-c-with-diff-order (2014-02-03) 5 commits
1318 . combine-diff: simplify intersect_paths() further
1319 . combine-diff: combine_diff_path.len is not needed anymore
1320 . combine-diff: optimize combine_diff_path sets intersection
1321 . diff test: add tests for combine-diff with orderfile
1322 . diffcore-order: export generic ordering interface
1324 Now part of ks/combine-diff topic.
1327 * ks/tree-diff-more (2014-02-24) 15 commits
1328 - tree-diff: reuse base str(buf) memory on sub-tree recursion
1329 - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
1330 - tree-diff: rework diff_tree interface to be sha1 based
1331 - tree-diff: remove special-case diff-emitting code for empty-tree cases
1332 - tree-diff: simplify tree_entry_pathcmp
1333 - tree-diff: show_path prototype is not needed anymore
1334 - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
1335 - tree-diff: move all action-taking code out of compare_tree_entry()
1336 - tree-diff: don't assume compare_tree_entry() returns -1,0,1
1337 - tree-diff: consolidate code for emitting diffs and recursion in one place
1338 - tree-diff: show_tree() is not needed
1339 - tree-diff: no need to pass match to skip_uninteresting()
1340 - tree-diff: no need to manually verify that there is no mode change for a path
1341 - combine-diff: move changed-paths scanning logic into its own function
1342 - combine-diff: move show_log_first logic/action out of paths scanning
1343 (this branch is used by ks/tree-diff-nway; uses ks/combine-diff.)
1347 Now part of ks/tree-diff-nway.