1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Mar 2014, #05; Mon, 24)
4 X-master-at: 3f09db07b3dc0758756fad73c96abd0e47cbcd1b
5 X-next-at: f5e1d547771ba4cba473a0195e52a3c9bceeb5f9
7 What's cooking in git.git (Mar 2014, #05; Mon, 24)
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 More topics merged to 'master', some of which have been cooking
15 before the v1.9.0 final release, many of them fallouts from GSoC
16 microprojects. Many topics that have been marked to be discarded
17 are finally discarded.
19 There seems to be a crasher somewhere in the new pack bitmap
20 codepath that was introduced recently. I am hoping that the root
21 cause is found and fixed soonish. Other than that, things look more
22 or less calm on the 'next' and up.
24 You can find the changes described here in the integration branches
25 of the repositories listed at
27 http://git-blame.blogspot.com/p/git-public-repositories.html
29 --------------------------------------------------
30 [Graduated to "master"]
32 * dk/skip-prefix-scan-only-once (2014-03-03) 1 commit
33 (merged to 'next' on 2014-03-14 at ff375fc)
34 + skip_prefix(): scan prefix only once
36 Update implementation of skip_prefix() to scan only once; given
37 that most "prefix" arguments to the inline function are constant
38 strings whose strlen() can be determined at the compile time, this
39 might actually make things worse with a compiler with sufficient
43 * es/sh-i18n-envsubst (2014-03-12) 1 commit
44 (merged to 'next' on 2014-03-14 at e4d5603)
45 + sh-i18n--envsubst: retire unused string_list_member()
48 * jc/stash-pop-not-popped (2014-02-26) 1 commit
49 (merged to 'next' on 2014-03-14 at 9ba1de8)
50 + stash pop: mention we did not drop the stash upon failing to apply
52 "stash pop", upon failing to apply the stash, refrains from
53 discarding the stash to avoid information loss. Be more explicit
56 The wording may want to get a bit more bikeshedding.
59 * jk/shallow-update-fix (2014-03-17) 3 commits
60 (merged to 'next' on 2014-03-17 at 011942e)
61 + shallow: verify shallow file after taking lock
62 (merged to 'next' on 2014-03-12 at ce5abbf)
63 + shallow: automatically clean up shallow tempfiles
64 + shallow: use stat_validity to check for up-to-date file
66 Serving objects from a shallow repository needs to write a new file
67 to hold the temporary shallow boundaries but it was not cleaned
68 when we exit due to die() or a signal.
71 * jn/wt-status (2014-03-12) 4 commits
72 (merged to 'next' on 2014-03-14 at 8ac862c)
73 + wt-status: lift the artificual "at least 20 columns" floor
74 + wt-status: i18n of section labels
75 + wt-status: extract the code to compute width for labels
76 + wt-status: make full label string to be subject to l10n
78 Unify the codepaths that format new/modified/changed sections and
79 conflicted paths in the "git status" output and make it possible to
80 properly internationalize their output.
83 * lt/request-pull (2014-03-13) 6 commits
84 (merged to 'next' on 2014-03-17 at 21a598d)
85 + request-pull: documentation updates
86 + request-pull: resurrect "pretty refname" feature
87 + request-pull: test updates
88 + request-pull: pick up tag message as before
89 + request-pull: allow "local:remote" to specify names on both ends
90 + request-pull: more strictly match local/remote branches
92 Discard the accumulated "heuristics" to guess from which branch the
93 result wants to be pulled from and make sure what the end user
94 specified is not second-guessed by "git request-pull", to avoid
98 * nd/tag-version-sort (2014-02-27) 1 commit
99 (merged to 'next' on 2014-03-14 at 4e7f714)
100 + tag: support --sort=<spec>
102 Allow v1.9.0 sorted before v1.10.0 in "git tag --list" output.
105 * nd/upload-pack-shallow (2014-03-11) 1 commit
106 (merged to 'next' on 2014-03-14 at d40b8c3)
107 + upload-pack: send shallow info over stdin to pack-objects
109 Serving objects from a shallow repository needs to write a
110 temporary file to be used, but the serving upload-pack may not have
111 write access to the repository which is meant to be read-only.
112 Instead feed these temporary shallow bounds from the standard input
113 of pack-objects so that we do not have to use a temporary file.
116 * tc/commit-dry-run-exit-status-tests (2014-02-24) 1 commit
117 (merged to 'next' on 2014-03-12 at b839886)
118 + demonstrate git-commit --dry-run exit code behaviour
120 --------------------------------------------------
123 * ca/doc-config-third-party (2014-03-21) 1 commit
124 - config.txt: third-party tools may and do use their own variables
126 Will merge to 'next'.
129 * dw/doc-status-no-longer-shows-pound-prefix (2014-03-21) 1 commit
130 - doc: status, remove leftover statement about '#' prefix
132 Will merge to 'next'.
135 * js/userdiff-cc (2014-03-21) 10 commits
136 - userdiff: have 'cpp' hunk header pattern catch more C++ anchor points
137 - t4018: test cases showing that the cpp pattern misses many anchor points
138 - t4018: test cases for the built-in cpp pattern
139 - t4018: reduce test files for pattern compilation tests
140 - t4018: convert custom pattern test to the new infrastructure
141 - t4018: convert java pattern test to the new infrastructure
142 - t4018: convert perl pattern tests to the new infrastructure
143 - t4018: an infrastructure to test hunk headers
144 - userdiff: support unsigned and long long suffixes of integer constants
145 - userdiff: support C++ ->* and .* operators in the word regexp
147 Improves the pattern to match the hunk-header for C/C++.
149 Will merge to 'next'.
152 * dp/makefile-charset-lib-doc (2014-03-23) 1 commit
153 - Makefile: describe CHARSET_LIB better
155 Will merge to 'next'.
158 * ib/rev-parse-parseopt-argh (2014-03-24) 5 commits
159 - parse-options: make sure argh string does not have SP or _
160 - update-index: teach --cacheinfo a new syntax "mode,sha1,path"
161 - parse-options: multi-word argh should use dash to separate words
162 - t1502: protect runs of SPs used in the indentation
163 - rev-parse --parseopt: option argument name hints
165 Teaches the "rev-parse --parseopt" mechanism used by scripted
166 Porcelains to parse command line options and give help text how to
167 supply argv-help (the placeholder string for an option parameter,
168 e.g. "key-id" in "--gpg-sign=<key-id>").
170 Will merge to 'next'.
173 * rs/pickaxe-i (2014-03-24) 10 commits
174 - pickaxe: simplify kwset loop in contains()
175 - pickaxe: call strlen only when necessary in diffcore_pickaxe_count()
176 - pickaxe: move pickaxe() after pickaxe_match()
177 - pickaxe: merge diffcore_pickaxe_grep() and diffcore_pickaxe_count() into diffcore_pickaxe()
178 - pickaxe: honor -i when used with -S and --pickaxe-regex
179 - t4209: use helper functions to test --author
180 - t4209: use helper functions to test --grep
181 - t4209: factor out helper function test_log_icase()
182 - t4209: factor out helper function test_log()
183 - t4209: set up expectations up front
185 Allow the options -i/--regexp-ignore-case, --pickaxe-regex, and -S
186 to be used together and work as expected to perform a pickaxe
187 search using case-insensitive regular expression matching.
189 Will merge to 'next'.
192 * an/branch-config-message (2014-03-24) 1 commit
193 - branch.c: install_branch_config: simplify if chain
195 Will merge to 'next'.
197 --------------------------------------------------
200 * sz/mingw-index-pack-threaded (2014-03-19) 1 commit
201 - Enable index-pack threading in msysgit.
203 Still under discussion among Windows folks
206 * bc/blame-crlf-test (2014-02-18) 1 commit
207 - blame: add a failing test for a CRLF issue.
209 I have a feeling that a fix for this should be fairly isolated and
210 trivial (it should be just the matter of paying attention to the
211 crlf settings when synthesizing the fake commit)---perhaps somebody
212 can squash in a fix to this?
215 * jk/makefile (2014-02-05) 16 commits
217 - move LESS/LV pager environment to Makefile
218 - Makefile: teach scripts to include make variables
220 - Makefile: auto-build C strings from make variables
221 - Makefile: drop *_SQ variables
223 - Makefile: add c-quote helper function
224 - Makefile: introduce sq function for shell-quoting
225 - Makefile: always create files via make-var
226 - Makefile: store GIT-* sentinel files in MAKE/
227 - Makefile: prefer printf to echo for GIT-*
228 - Makefile: use tempfile/mv strategy for GIT-*
229 - Makefile: introduce make-var helper function
230 - Makefile: fix git-instaweb dependency on gitweb
231 - Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
233 Simplify the Makefile rules and macros that exist primarily for
234 quoting purposes, and make it easier to robustly express the
240 * kb/fast-hashmap-pack-struct (2014-02-24) 1 commit
241 - hashmap.h: make sure map entries are tightly packed
243 I am inclined to drop this; an alternative is to replace it with
244 the "more portable" one that uses #pragma, which I am willing to
245 try doing so on 'pu', though.
248 * po/everyday-doc (2014-01-27) 1 commit
249 - Make 'git help everyday' work
251 This may make the said command to emit something, but the source is
252 not meant to be formatted into a manual pages to begin with, and
253 also its contents are a bit stale. It may be a good first step in
254 the right direction, but needs more work to at least get the
255 mark-up right before public consumption.
260 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
261 - t1507 (rev-parse-upstream): fix typo in test title
262 - implement @{publish} shorthand
263 - branch_get: provide per-branch pushremote pointers
264 - branch_get: return early on error
265 - sha1_name: refactor upstream_mark
267 Give an easier access to the tracking branches from "other" side in
268 a triangular workflow by introducing B@{publish} that works in a
269 similar way to how B@{upstream} does.
271 Meant to be used as a basis for whatever Ram wants to build on.
276 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
277 - merge: drop unused arg from abort_commit method signature
278 - merge: make prepare_to_commit responsible for write_merge_state
279 - t7505: ensure cleanup after hook blocks merge
280 - t7505: add missing &&
282 Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
283 run during "git merge". The log message stresses too much on one
284 hook, prepare-commit-msg, but it would equally apply to other hooks
285 like post-merge, I think.
287 Waiting for a reroll.
290 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
291 - Teach checkout to recursively checkout submodules
292 - submodule: teach unpack_trees() to update submodules
293 - submodule: teach unpack_trees() to repopulate submodules
294 - submodule: teach unpack_trees() to remove submodule contents
295 - submodule: prepare for recursive checkout of submodules
300 * jc/graph-post-root-gap (2013-12-30) 3 commits
301 - WIP: document what we want at the end
302 - graph: remove unused code a bit
303 - graph: stuff the current commit into graph->columns[]
305 This was primarily a RFH ($gmane/239580).
308 * hv/submodule-ignore-fix (2013-12-06) 4 commits
309 - disable complete ignorance of submodules for index <-> HEAD diff
310 - always show committed submodules in summary after commit
311 - teach add -f option for ignored submodules
312 - fix 'git add' to skip submodules configured as ignored
314 Teach "git add" to be consistent with "git status" when changes to
315 submodules are set to be ignored, to avoid surprises after checking
316 with "git status" to see there isn't any change to be further added
317 and then see that "git add ." adds changes to them.
319 I think a reroll is coming, so this may need to be replaced, but I
320 needed some practice with heavy conflict resolution. It conflicts
321 with two changes to "git add" that have been scheduled for Git 2.0
322 quite badly, and I think I got the resolution right this time.
324 Waiting for a reroll.
327 * np/pack-v4 (2013-09-18) 90 commits
328 . packv4-parse.c: add tree offset caching
329 . t1050: replace one instance of show-index with verify-pack
330 . index-pack, pack-objects: allow creating .idx v2 with .pack v4
331 . unpack-objects: decode v4 trees
332 . unpack-objects: allow to save processed bytes to a buffer
335 Nico and Duy advancing the eternal vaporware pack-v4. This is here
336 primarily for wider distribution of the preview edition.
338 Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
339 this topic conflicts with.
342 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
343 - perf-lib: add test_perf_cleanup target
344 - perf-lib: split starting the test from the execution
346 Add test_perf_cleanup shell function to the perf suite, that allows
347 the script writers to define a test with a clean-up action.
352 * jc/format-patch (2013-04-22) 2 commits
353 - format-patch: --inline-single
354 - format-patch: rename "no_inline" field
356 A new option to send a single patch to the standard output to be
357 appended at the bottom of a message. I personally have no need for
358 this, but it was easy enough to cobble together. Tests, docs and
359 stripping out more MIMEy stuff are left as exercises to interested
363 * jc/show-branch (2013-06-07) 5 commits
364 - show-branch: use commit slab to represent bitflags of arbitrary width
365 - show-branch.c: remove "all_mask"
366 - show-branch.c: abstract out "flags" operation
367 - show-branch.c: lift all_mask/all_revs to a global static
368 - show-branch.c: update comment style
370 Waiting for the final step to lift the hard-limit before sending it out.
372 --------------------------------------------------
375 * jk/lib-terminal-lazy (2014-03-14) 1 commit
376 (merged to 'next' on 2014-03-20 at 5de832f)
377 + t/lib-terminal: make TTY a lazy prerequisite
379 The test helper lib-terminal always run an actual test_expect_* when
380 included, which screwed up with the use of skil-all that may have to
383 Will merge to 'master'.
386 * ah/doc-gitk-config (2014-03-20) 1 commit
387 (merged to 'next' on 2014-03-20 at d671b60)
388 + Documentation/gitk: document the location of the configulation file
390 Will merge to 'master'.
393 * as/grep-fullname-config (2014-03-20) 1 commit
394 - grep: add grep.fullName config variable
396 Will merge to 'next'.
399 * fr/add-interactive-argv-array (2014-03-18) 1 commit
400 (merged to 'next' on 2014-03-20 at 9d65f3d)
401 + add: use struct argv_array in run_add_interactive()
403 Will merge to 'master'.
406 * jk/pack-bitmap (2014-03-17) 1 commit
407 (merged to 'next' on 2014-03-20 at bba6246)
408 + pack-objects: turn off bitmaps when skipping objects
410 Instead of dying when asked to (re)pack with the reachability
411 bitmap when a bitmap cannot be built, just (re)pack without
412 producing a bitmap in such a case, with a warning.
414 Will merge to 'master', and probably to 'maint' later.
417 * jk/pack-bitmap-progress (2014-03-17) 2 commits
418 (merged to 'next' on 2014-03-20 at c7a83f9)
419 + pack-objects: show reused packfile objects in "Counting objects"
420 + pack-objects: show progress for reused packfiles
422 The progress output while repacking and transferring objects showed
423 an apparent large silence while writing the objects out of existing
424 packfiles, when the reachability bitmap was in use.
426 Will merge to 'master', and probably to 'maint' later.
429 * jk/subtree-prefix (2014-03-17) 1 commit
430 (merged to 'next' on 2014-03-20 at 81367fa)
431 + subtree: initialize "prefix" variable
433 A stray environment variable $prefix could have leaked into and
434 affected the behaviour of the "subtree" script.
436 Will merge to 'master'.
439 * nd/gc-aggressive (2014-03-17) 4 commits
440 - gc --aggressive: three phase repacking
441 - gc --aggressive: make --depth configurable
442 - pack-objects: support --keep
443 - environment.c: fix constness for odb_pack_keep()
446 * nd/index-pack-error-message (2014-03-17) 1 commit
447 (merged to 'next' on 2014-03-20 at 4d722ac)
448 + index-pack: report error using the correct variable
450 Will merge to 'master'.
453 * rr/doc-merge-strategies (2014-03-17) 1 commit
454 (merged to 'next' on 2014-03-20 at d31f415)
455 + Documentation/merge-strategies: avoid hyphenated commands
457 Will merge to 'master'.
460 * us/printf-not-echo (2014-03-18) 2 commits
461 (merged to 'next' on 2014-03-20 at 41205c8)
462 + test-lib.sh: do not "echo" caller-supplied strings
463 + rebase -i: do not "echo" random user-supplied strings
465 Will merge to 'master'.
468 * bb/diff-no-index-dotdot (2014-03-19) 2 commits
469 (merged to 'next' on 2014-03-20 at 352f48c)
470 + diff-no-index: replace manual "."/".." check with is_dot_or_dotdot()
471 + diff-no-index: rename read_directory()
473 Will merge to 'master'.
476 * bg/rebase-off-of-previous-branch (2014-03-19) 1 commit
477 (merged to 'next' on 2014-03-21 at 916b759)
478 + rebase: allow "-" short-hand for the previous branch
480 Will merge to 'master'.
483 * dt/tests-with-env-not-subshell (2014-03-19) 1 commit
484 - tests: use "env" to run commands with temporary env-var settings
485 (this branch is used by jk/tests-cleanup.)
487 Will merge to 'next'.
490 * hs/simplify-bit-setting-in-fsck-tree (2014-03-20) 1 commit
491 - fsck: use bitwise-or assignment operator to set flag
493 Will merge to 'next'.
496 * mm/status-porcelain-format-i18n-fix (2014-03-20) 2 commits
497 - SQUASH??? fix decl-after-stmt and simplify
498 - status: disable translation when --porcelain is used
500 Will merge to 'next' after squashing in the fixup.
503 * ss/test-on-mingw-rsync-path-no-absolute (2014-03-19) 1 commit
504 (merged to 'next' on 2014-03-20 at 2b7b95d)
505 + t5510: Do not use $(pwd) when fetching / pushing / pulling via rsync
507 Will merge to 'master'.
510 * ap/remote-hg-skip-null-bookmarks (2014-03-21) 2 commits
512 - remote-hg: do not fail on invalid bookmarks
514 Will merge to 'next' after squashing in the fix.
515 Thanks Torsten for testing.
518 * mh/remove-subtree-long-pathname-fix (2014-03-13) 2 commits
519 (merged to 'next' on 2014-03-17 at 68cc994)
520 + entry.c: fix possible buffer overflow in remove_subtree()
521 + checkout_entry(): use the strbuf throughout the function
523 Will merge to 'master'.
526 * nd/indent-fix-connect-c (2014-03-13) 1 commit
527 (merged to 'next' on 2014-03-17 at a109efc)
528 + connect.c: SP after "}", not TAB
530 Will merge to 'master'.
533 * ys/fsck-commit-parsing (2014-03-19) 2 commits
534 (merged to 'next' on 2014-03-21 at 2728983)
535 + fsck.c:fsck_commit(): use skip_prefix() to verify and skip constant
536 + fsck.c:fsck_ident(): ident points at a const string
538 Will merge to 'master'.
541 * jk/warn-on-object-refname-ambiguity (2014-03-13) 4 commits
542 (merged to 'next' on 2014-03-17 at 3f8e98e)
543 + rev-list: disable object/refname ambiguity check with --stdin
544 + cat-file: restore warn_on_object_refname_ambiguity flag
545 + cat-file: fix a minor memory leak in batch_objects
546 + cat-file: refactor error handling of batch_objects
548 Will merge to 'master'.
551 * bp/commit-p-editor (2014-03-18) 7 commits
552 (merged to 'next' on 2014-03-21 at 23b6b06)
553 + run-command: mark run_hook_with_custom_index as deprecated
554 + merge hook tests: fix and update tests
555 + merge: fix GIT_EDITOR override for commit hook
556 + commit: fix patch hunk editing with "commit -p -m"
557 + test patch hunk editing with "commit -p -m"
558 + merge hook tests: use 'test_must_fail' instead of '!'
559 + merge hook tests: fix missing '&&' in test
561 When it is not necessary to edit a commit log message (e.g. "git
562 commit -m" is given a message without specifying "-e"), we used to
563 disable the spawning of the editor by overriding GIT_EDITOR, but
564 this means all the uses of the editor, other than to edit the
565 commit log message, are also affected.
567 Will merge to 'master'.
570 * cp/am-patch-format-doc (2014-03-17) 2 commits
571 (merged to 'next' on 2014-03-17 at 7437c77)
572 + Documentation/git-am: typofix
573 (merged to 'next' on 2014-03-12 at 17c3ada)
574 + Documentation/git-am: Document supported --patch-format options
576 Will merge to 'master'.
579 * dm/configure-iconv-locale-charset (2014-03-11) 1 commit
580 (merged to 'next' on 2014-03-20 at 4443bfd)
581 + configure.ac: link with -liconv for locale_charset()
583 Will merge to 'master'.
586 * jk/mv-submodules-fix (2014-03-17) 2 commits
587 (merged to 'next' on 2014-03-17 at 7cae3b1)
588 + mv: prevent mismatched data when ignoring errors.
589 + builtin/mv: fix out of bounds write
591 Will merge to 'master'.
594 * cn/fetch-prune-overlapping-destination (2014-03-24) 3 commits
595 - SQUASH??? style and leak fix
596 - fetch: handle overlaping refspecs on --prune
597 - fetch: add a failing test for prunning with overlapping refspecs
599 Protect refs in a hierarchy that can come from more than one remote
600 hierarcies from incorrect removal by "git fetch --prune".
602 Since I didn't get any responses to my earlier "Comments?", I ended
603 up reading it myself again and found a small leak.
605 Hoping to be able to merge a fix for this issue soonish.
608 * nd/commit-editor-cleanup (2014-02-25) 3 commits
609 (merged to 'next' on 2014-03-17 at 986605d)
610 + commit: add --cleanup=scissors
611 + wt-status.c: move cut-line print code out to wt_status_add_cut_line
612 + wt-status.c: make cut_line[] const to shrink .data section a bit
614 "git commit --cleanup=<mode>" learned a new mode, scissors.
616 Will merge to 'master'.
619 * nd/multiple-work-trees (2014-03-17) 28 commits
620 - count-objects: report unused files in $GIT_DIR/repos/...
621 - gc: support prune --repos
622 - gc: style change -- no SP before closing bracket
623 - prune: strategies for linked checkouts
624 - checkout: detach if the branch is already checked out elsewhere
625 - checkout: clean up half-prepared directories in --to mode
626 - checkout: support checking out into a new working directory
627 - use new wrapper write_file() for simple file writing
628 - wrapper.c: wrapper to open a file, fprintf then close
629 - setup.c: support multi-checkout repo setup
630 - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
631 - setup.c: convert check_repository_format_gently to use strbuf
632 - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
633 - setup.c: convert is_git_directory() to use strbuf
634 - git-stash: avoid hardcoding $GIT_DIR/logs/....
635 - *.sh: avoid hardcoding $GIT_DIR/hooks/...
636 - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
637 - $GIT_COMMON_DIR: a new environment variable
638 - commit: use SEQ_DIR instead of hardcoding "sequencer"
639 - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
640 - reflog: avoid constructing .lock path with git_path
641 - *.sh: respect $GIT_INDEX_FILE
642 - git_path(): be aware of file relocation in $GIT_DIR
643 - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
644 - path.c: rename vsnpath() to do_git_path()
645 - git_snpath(): retire and replace with strbuf_git_path()
646 - path.c: make get_pathname() call sites return const char *
647 - path.c: make get_pathname() return strbuf instead of static buffer
649 A replacement for contrib/workdir/git-new-workdir that does not
650 rely on symbolic links and make sharing of objects and refs safer
651 by making the borrowee and borrowers aware of each other.
653 Reported to break on a worktree whose leading path component has a
654 symbolic link in it ($gmane/244822).
657 * ks/tree-diff-nway (2014-03-20) 19 commits
658 - combine-diff: speed it up, by using multiparent diff tree-walker directly
659 - tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
660 - Portable alloca for Git
661 - tree-diff: reuse base str(buf) memory on sub-tree recursion
662 - tree-diff: no need to call "full" diff_tree_sha1 from show_path()
663 - tree-diff: rework diff_tree interface to be sha1 based
664 - tree-diff: diff_tree() should now be static
665 - tree-diff: remove special-case diff-emitting code for empty-tree cases
666 - tree-diff: simplify tree_entry_pathcmp
667 - tree-diff: show_path prototype is not needed anymore
668 - tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
669 - tree-diff: move all action-taking code out of compare_tree_entry()
670 - tree-diff: don't assume compare_tree_entry() returns -1,0,1
671 (merged to 'next' on 2014-03-21 at d872679)
672 + tree-diff: consolidate code for emitting diffs and recursion in one place
673 + tree-diff: show_tree() is not needed
674 + tree-diff: no need to pass match to skip_uninteresting()
675 + tree-diff: no need to manually verify that there is no mode change for a path
676 + combine-diff: move changed-paths scanning logic into its own function
677 + combine-diff: move show_log_first logic/action out of paths scanning
679 Instead of running N pair-wise diff-trees when inspecting a
680 N-parent merge, find the set of paths that were touched by walking
681 N+1 trees in parallel. These set of paths can then be turned into
682 N pair-wise diff-tree results to be processed through rename
683 detections and such. And N=2 case nicely degenerates to the usual
684 2-way diff-tree, which is very nice.
687 * nd/log-show-linear-break (2014-03-20) 2 commits
688 - log: add --show-linear-break to help see non-linear history
689 - object.h: centralize object flag allocation
691 Attempts to show where a single-strand-of-pearls break in "git log"
694 The implementation seems to have got worse compared to the previous
698 * tr/remerge-diff (2014-02-26) 5 commits
699 . log --remerge-diff: show what the conflict resolution changed
700 . name-hash: allow dir hashing even when !ignore_case
701 . merge-recursive: allow storing conflict hunks in index
702 . revision: fold all merge diff variants into an enum merge_diff_mode
703 . combine-diff: do not pass revs->dense_combined_merges redundantly
704 (this branch uses tr/merge-recursive-index-only.)
706 "log -p" output learns a new way to let users inspect a merge
707 commit by showing the differences between the automerged result
708 with conflicts the person who recorded the merge would have seen
709 and the final conflict resolution that was recorded in the merge.
711 RFC. This latest round clashes with the kb/fast-hashmap topic in
715 * cc/interpret-trailers (2014-03-07) 11 commits
716 - Documentation: add documentation for 'git interpret-trailers'
717 - trailer: add tests for commands in config file
718 - trailer: execute command from 'trailer.<name>.command'
719 - trailer: add tests for "git interpret-trailers"
720 - trailer: add interpret-trailers command
721 - trailer: put all the processing together and print
722 - trailer: parse trailers from stdin
723 - trailer: process command line trailer arguments
724 - trailer: read and process config information
725 - trailer: process trailers from stdin and arguments
726 - trailers: add data structures and basic functions
728 A new filter to programatically edit the tail end of the commit log
732 * tr/merge-recursive-index-only (2014-02-05) 3 commits
733 - merge-recursive: -Xindex-only to leave worktree unchanged
734 - merge-recursive: internal flag to avoid touching the worktree
735 - merge-recursive: remove dead conditional in update_stages()
736 (this branch is used by tr/remerge-diff.)
740 --------------------------------------------------
743 * jk/diff-funcname-cpp-regex (2014-03-05) 1 commit
744 . diff: simplify cpp funcname regex
749 * pw/branch-config-message (2014-03-13) 1 commit
750 . install_branch_config(): simplify verbose messages logic
752 Among the many attempts to microproject #8, this seemed to be the
753 most "done" among the table based ones; I however tend to think
754 that the original with minimum refactoring would be easier to read.
756 an/branch-config-message supersedes this topic.