To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Oct 2021, #02; Wed, 6)
-X-master-at: 106298f7f9cca4158a980de149ef217751e1f943
-X-next-at: 6e70778dc91e2139466c15ff15a02a22a2ada2d1
+Subject: What's cooking in git.git (Oct 2021, #03; Mon, 11)
+X-master-at: 2a97289ad8b103625d3a1a12f66c27f50df822ce
+X-next-at: b88fcb3f61432d526395a9937acaea0c67ee1aaf
-What's cooking in git.git (Oct 2021, #02; Wed, 6)
+What's cooking in git.git (Oct 2021, #03; Mon, 11)
--------------------------------------------------
Here are the topics that have been cooking in my tree. Commits
'seen'. The ones marked with '.' do not appear in any of the
integration branches, but I am still holding onto them.
-The eleventh batch is in.
+The eleventh and twelfth batches of topics are in the 'master'
+branch, and quite a many topics started cooking in 'next'.
Copies of the source code to Git live in many repositories, and the
following is a list of the ones I push into or their mirrors. Some
--------------------------------------------------
[Graduated to 'master']
-* ab/repo-settings-cleanup (2021-09-22) 5 commits
- (merged to 'next' on 2021-09-28 at 43d70c31e1)
- + repository.h: don't use a mix of int and bitfields
- + repo-settings.c: simplify the setup
- + read-cache & fetch-negotiator: check "enum" values in switch()
- + environment.c: remove test-specific "ignore_untracked..." variable
- + wrapper.c: add x{un,}setenv(), and use xsetenv() in environment.c
+* ab/designated-initializers (2021-09-27) 5 commits
+ (merged to 'next' on 2021-10-03 at 179f652de6)
+ + cbtree.h: define cb_init() in terms of CBTREE_INIT
+ + *.h: move some *_INIT to designated initializers
+ + *.h _INIT macros: don't specify fields equal to 0
+ + *.[ch] *_INIT macros: use { 0 } for a "zero out" idiom
+ + submodule-config.h: remove unused SUBMODULE_INIT macro
+ (this branch is used by ab/designated-initializers-more.)
- Code cleanup.
+ Code clean-up.
-* ab/retire-decl-of-missing-unused-funcs (2021-10-01) 4 commits
- (merged to 'next' on 2021-10-03 at a49287eaa9)
- + config.h: remove unused git_config_get_untracked_cache() declaration
- + log-tree.h: remove unused function declarations
- + grep.h: remove unused grep_threads_ok() declaration
- + builtin.h: remove cmd_tar_tree() declaration
+* ab/http-pinned-public-key-mismatch (2021-09-27) 1 commit
+ (merged to 'next' on 2021-10-03 at cd67328eed)
+ + http: check CURLE_SSL_PINNEDPUBKEYNOTMATCH when emitting errors
- Remove external declaration of functions that no longer exist.
+ HTTPS error handling updates.
-* ab/retire-refs-unused-funcs (2021-09-28) 5 commits
- (merged to 'next' on 2021-10-03 at f91e74fa7d)
- + refs/ref-cache.[ch]: remove "incomplete" from create_dir_entry()
- + refs/ref-cache.c: remove "mkdir" parameter from find_containing_dir()
- + refs/ref-cache.[ch]: remove unused add_ref_entry()
- + refs/ref-cache.[ch]: remove unused remove_entry_from_dir()
- + refs.[ch]: remove unused ref_storage_backend_exists()
+* ab/retire-git-config-key-is-valid (2021-09-28) 1 commit
+ (merged to 'next' on 2021-10-03 at fc7a0a55d1)
+ + config.c: remove unused git_config_key_is_valid()
Code cleanup.
-* ab/retire-string-list-init (2021-09-28) 1 commit
- (merged to 'next' on 2021-10-03 at 4834949cc3)
- + string-list.[ch]: remove string_list_init() compatibility function
+* ab/sanitize-leak-ci (2021-09-23) 2 commits
+ (merged to 'next' on 2021-10-03 at dcd62a3fc6)
+ + tests: add a test mode for SANITIZE=leak, run it in CI
+ + Makefile: add SANITIZE=leak flag to GIT-BUILD-OPTIONS
+ (this branch is used by ab/mark-leak-free-tests, ab/mark-leak-free-tests-more and ab/unpack-trees-leakfix.)
- Code cleanup.
+ CI learns to run the leak sanitizer builds.
-* ew/midx-doc-update (2021-09-24) 1 commit
- (merged to 'next' on 2021-09-28 at f2cbe598eb)
- + doc/technical: update note about core.multiPackIndex
+* da/difftool (2021-09-30) 6 commits
+ (merged to 'next' on 2021-10-03 at 3ba0335e4e)
+ + difftool: add a missing space to the run_dir_diff() comments
+ + difftool: remove an unnecessary call to strbuf_release()
+ + difftool: refactor dir-diff to write files using helper functions
+ + difftool: create a tmpdir path without repeated slashes
+ + Merge branch 'da/difftool-dir-diff-symlink-fix' into da/difftool
+ + Merge branch 'ab/retire-option-argument' into da/difftool
- Doc tweak.
+ Code clean-up in "git difftool".
-* gc/doc-first-contribution-reroll (2021-09-22) 1 commit
- (merged to 'next' on 2021-09-29 at b7dea55eae)
- + MyFirstContribution: Document --range-diff option when writing v2
+* jk/ref-paranoia (2021-09-27) 16 commits
+ (merged to 'next' on 2021-10-03 at 8c2cb6a3a6)
+ + refs: drop "broken" flag from for_each_fullref_in()
+ + ref-filter: drop broken-ref code entirely
+ + ref-filter: stop setting FILTER_REFS_INCLUDE_BROKEN
+ + repack, prune: drop GIT_REF_PARANOIA settings
+ + refs: turn on GIT_REF_PARANOIA by default
+ + refs: omit dangling symrefs when using GIT_REF_PARANOIA
+ + refs: add DO_FOR_EACH_OMIT_DANGLING_SYMREFS flag
+ + refs-internal.h: reorganize DO_FOR_EACH_* flag documentation
+ + refs-internal.h: move DO_FOR_EACH_* flags next to each other
+ + t5312: be more assertive about command failure
+ + t5312: test non-destructive repack
+ + t5312: create bogus ref as necessary
+ + t5312: drop "verbose" helper
+ + t5600: provide detached HEAD for corruption failures
+ + t5516: don't use HEAD ref for invalid ref-deletion tests
+ + t7900: clean up some more broken refs
+ (this branch is used by jt/no-abuse-alternate-odb-for-submodules.)
- Doc update.
+ The ref iteration code used to optionally allow dangling refs to be
+ shown, which has been tightened up.
-* jk/grep-haystack-is-read-only (2021-09-22) 5 commits
- (merged to 'next' on 2021-09-28 at 1660a6be89)
- + grep: store grep_source buffer as const
- + grep: mark "haystack" buffers as const
- + grep: stop modifying buffer in grep_source_1()
- + grep: stop modifying buffer in show_line()
- + grep: stop modifying buffer in strip_timestamp
- (this branch is used by hm/paint-hits-in-log-grep.)
+* js/win-lazyload-buildfix (2021-09-28) 3 commits
+ (merged to 'next' on 2021-10-03 at 26802e5d73)
+ + Makefile: restrict -Wpedantic and -Wno-pedantic-ms-format better
+ + lazyload.h: use an even more generic function pointer than FARPROC
+ + lazyload.h: fix warnings about mismatching function pointer types
- Code clean-up in the "grep" machinery.
+ Compilation fix.
-* jt/add-submodule-odb-clean-up (2021-09-09) 3 commits
- (merged to 'next' on 2021-09-28 at 4d843448be)
- + revision: remove "submodule" from opt struct
- + repository: support unabsorbed in repo_submodule_init
- + submodule: remove unnecessary unabsorbed fallback
- (this branch is used by jt/no-abuse-alternate-odb-for-submodules.)
+* mr/bisect-in-c-4 (2021-10-01) 1 commit
+ (merged to 'next' on 2021-10-06 at c13c14238d)
+ + bisect--helper: add space between colon and following sentence
- More code paths that use the hack to add submodule's object
- database to the set of alternate object store have been cleaned up.
+ Message fix.
-* lh/systemd-timers (2021-09-27) 1 commit
- (merged to 'next' on 2021-10-03 at 81834609ea)
- + maintenance: fix test t7900-maintenance.sh
+* rs/p3400-lose-tac (2021-10-03) 1 commit
+ (merged to 'next' on 2021-10-06 at 688dc7137c)
+ + p3400: stop using tac(1)
- Testfix.
+ Test portability update.
-* os/status-docfix (2021-09-28) 1 commit
- (merged to 'next' on 2021-10-03 at a13019916a)
- + doc: fix capitalization in "git status --porcelain=v2" description
+* sg/test-split-index-fix (2021-09-07) 7 commits
+ (merged to 'next' on 2021-09-29 at 661ae75778)
+ + read-cache: fix GIT_TEST_SPLIT_INDEX
+ + tests: disable GIT_TEST_SPLIT_INDEX for sparse index tests
+ + read-cache: look for shared index files next to the index, too
+ + t1600-index: disable GIT_TEST_SPLIT_INDEX
+ + t1600-index: don't run git commands upstream of a pipe
+ + t1600-index: remove unnecessary redirection
+ + Merge branch 'ds/sparse-index-ignored-files' into sg/test-split-index-fix
+
+ Test updates.
- Docfix.
+* tb/aggregate-ignore-leading-whitespaces (2021-10-04) 1 commit
+ (merged to 'next' on 2021-10-06 at 619a7db2d4)
+ + t/perf/aggregate.perl: tolerate leading spaces
+
+ Test portability update.
-* pw/rebase-of-a-tag-fix (2021-09-22) 10 commits
- (merged to 'next' on 2021-09-28 at 980add2a67)
- + rebase: dereference tags
- + rebase: use lookup_commit_reference_by_name()
- + rebase: use our standard error return value
- + t3407: rework rebase --quit tests
- + t3407: strengthen rebase --abort tests
- + t3407: use test_path_is_missing
- + t3407: rename a variable
- + t3407: use test_cmp_rev
- + t3407: use test_commit
- + t3407: run tests in $TEST_DIRECTORY
- (this branch is used by pw/fix-some-issues-in-reset-head.)
- "git rebase <upstream> <tag>" failed when aborted in the middle, as
- it mistakenly tried to write the tag object instead of peeling it
- to HEAD.
+* tb/midx-write-propagate-namehash (2021-09-17) 7 commits
+ (merged to 'next' on 2021-09-29 at 24732fcfc8)
+ + t5326: test propagating hashcache values
+ + p5326: generate pack bitmaps before writing the MIDX bitmap
+ + p5326: don't set core.multiPackIndex unnecessarily
+ + p5326: create missing 'perf-tag' tag
+ + midx.c: respect 'pack.writeBitmapHashcache' when writing bitmaps
+ + pack-bitmap.c: propagate namehash values from existing bitmaps
+ + t/helper/test-bitmap.c: add 'dump-hashes' mode
+ "git multi-pack-index write --bitmap" learns to propagate the
+ hashcache from original bitmap to resulting bitmap.
-* pw/rebase-reread-todo-after-editing (2021-09-24) 2 commits
- (merged to 'next' on 2021-09-28 at c67d5e383e)
- + rebase: fix todo-list rereading
- + sequencer.c: factor out a function
+--------------------------------------------------
+[New Topics]
- The code to re-read the edited todo list in "git rebase -i" was
- made more robust.
+* ab/mark-leak-free-tests (2021-10-07) 11 commits
+ - leak tests: mark some misc tests as passing with SANITIZE=leak
+ - leak tests: mark various "generic" tests as passing with SANITIZE=leak
+ - leak tests: mark some read-tree tests as passing with SANITIZE=leak
+ - leak tests: mark some ls-files tests as passing with SANITIZE=leak
+ - leak tests: mark all checkout-index tests as passing with SANITIZE=leak
+ - leak tests: mark all trace2 tests as passing with SANITIZE=leak
+ - leak tests: mark all ls-tree tests as passing with SANITIZE=leak
+ - leak tests: mark t0000-init.sh as passing with SANITIZE=leak
+ - leak tests: run various "test-tool" tests in t00*.sh SANITIZE=leak
+ - leak tests: run various built-in tests in t00*.sh SANITIZE=leak
+ - Merge branch 'ab/sanitize-leak-ci' into ab/mark-leak-free-tests
+
+ Bunch of tests are marked as "passing leak check".
+ Expecting a reroll.
+ cf. <xmqqmtnko3zn.fsf@gitster.g>
-* tb/commit-graph-usage-fix (2021-09-22) 2 commits
- (merged to 'next' on 2021-09-28 at f021339c39)
- + builtin/multi-pack-index.c: disable top-level --[no-]progress
- + builtin/commit-graph.c: don't accept common --[no-]progress
- Regression in "git commit-graph" command line parsing has been
- corrected.
+* ab/mark-leak-free-tests-more (2021-10-07) 8 commits
+ - merge: add missing strbuf_release()
+ - ls-files: add missing string_list_clear()
+ - ls-files: fix a trivial dir_clear() leak
+ - tests: fix test-oid-array leak, test in SANITIZE=leak
+ - tests: fix a memory leak in test-oidtree.c
+ - tests: fix a memory leak in test-parse-options.c
+ - tests: fix a memory leak in test-prio-queue.c
+ - Merge branch 'ab/sanitize-leak-ci' into ab/mark-leak-free-tests-more
+ Bunch of tests are marked as "passing leak check".
-* ws/refer-to-forkpoint-config-in-rebase-doc (2021-09-20) 1 commit
- (merged to 'next' on 2021-09-29 at 49181eaafb)
- + Document `rebase.forkpoint` in rebase man page
+ Will merge to 'next'?
- Doc update.
---------------------------------------------------
-[New Topics]
+* ab/unpack-trees-leakfix (2021-10-07) 2 commits
+ - unpack-trees: don't leak memory in verify_clean_subdirectory()
+ - Merge branch 'ab/sanitize-leak-ci' into ab/unpack-trees-leakfix
-* gc/use-repo-settings (2021-10-04) 3 commits
- - gc: perform incremental repack when implictly enabled
- - fsck: verify multi-pack-index when implictly enabled
- - fsck: verify commit graph when implicitly enabled
+ Leakfix.
- It is wrong to read some settings directly from the config
- subsystem, as things like feature.experimental can affect their
- default values.
+ Will merge to 'next'?
+
+
+* jk/cat-file-batch-all-wo-replace (2021-10-08) 5 commits
+ (merged to 'next' on 2021-10-11 at 9415f7c43a)
+ + cat-file: use packed_object_info() for --batch-all-objects
+ + cat-file: split ordered/unordered batch-all-objects callbacks
+ + cat-file: disable refs/replace with --batch-all-objects
+ + cat-file: mention --unordered along with --batch-all-objects
+ + t1006: clean up broken objects
+
+ "git cat-file --batch" with the "--batch-all-objects" option is
+ supposed to iterate over all the objects found in a repository, but
+ it used to translate these object names using the replace mechanism,
+ which defeats the point of enumerating all objects in the repository.
+ This has been corrected.
+
+ Will merge to 'master'.
+
+
+* js/userdiff-cpp (2021-10-10) 6 commits
+ - userdiff-cpp: learn the C++ spaceship operator
+ - userdiff-cpp: permit the digit-separating single-quote in numbers
+ - userdiff-cpp: prepare test cases with yet unsupported features
+ - userdiff-cpp: tighten word regex
+ - t4034: add tests showing problematic cpp tokenizations
+ - t4034/cpp: actually test that operator tokens are not split
+
+ Userdiff patterns for the C++ language has been updated.
+
+ Will merge to 'next'?
+
+
+* mp/absorb-submodule-git-dir-upon-deinit (2021-10-07) 1 commit
+ - submodule: absorb git dir instead of dying on deinit
+
+ "git submodule deinit" for a submodule whose .git metadata
+ directory is embedded in its working tree refused to work, until
+ the submodule gets converted to use the "absorbed" form where the
+ metadata directory is stored in superproject, and a gitfile at the
+ top-level of the working tree of the submodule points at it. The
+ command is taught to convert such submodules to the absorbed form
+ as needed.
Under review.
- cf. <70aca052-716f-40ed-47c4-1882fdbd221e@gmail.com>
+ cf. <xmqqwnmopqqk.fsf@gitster.g>
-* jh/perf-remove-test-times (2021-10-04) 1 commit
- - t/perf/perf-lib.sh: remove test_times.* at the end test_perf_()
+* ns/remerge-diff (2021-10-08) 8 commits
+ - doc/diff-options: explain the new --remerge-diff option
+ - show, log: adapt Elijah Newren's changes to common tmp-objdir API
+ - show, log: provide a --remerge-diff capability
+ - merge-ort: capture and print ll-merge warnings in our preferred fashion
+ - ll-merge: add API for capturing warnings in a strbuf instead of stderr
+ - merge-ort: add ability to record conflict messages in a file
+ - merge-ort: mark a few more conflict messages as omittable
+ - Merge branch 'ns/tmp-objdir' into ns/remerge-diff
+ (this branch uses ns/tmp-objdir.)
- Perf test fix.
+ A new presentation for two-parent merge "--remerge-diff" can be
+ used to show the difference between mechanical (and possibly
+ conflicted) merge results and the recorded resolution.
+
+ On hold.
+ This is Elijah's remerge-diff rebased on ns/tmp-objdir to share the
+ "create objects temporarily, only to discard without committing
+ them to longer-term storage" infrastructure with another topic.
- Will merge to 'next'.
+
+* ns/tmp-objdir (2021-10-04) 2 commits
+ - tmp-objdir: disable ref updates when replacing the primary odb
+ - tmp-objdir: new API for creating temporary writable databases
+ (this branch is used by ns/batched-fsync and ns/remerge-diff.)
+
+ New interface into the tmp-objdir API to help in-core use of the
+ quarantine feature.
+
+ Will merge to 'next'?
+
+
+* pw/sparse-cache-tree-verify-fix (2021-10-07) 1 commit
+ (merged to 'next' on 2021-10-11 at 2f90c87850)
+ + sparse index: fix use-after-free bug in cache_tree_verify()
+
+ Recent sparse-index addition, namely any use of index_name_pos(),
+ can expand sparse index entries and breaks any code that walks
+ cache-tree or existing index entries. One such instance of such a
+ breakage has been corrected.
+
+ Will merge to 'master'.
+
+
+* rs/make-verify-path-really-verify-again (2021-10-07) 3 commits
+ (merged to 'next' on 2021-10-11 at 6b4358876f)
+ + read-cache: let verify_path() reject trailing dir separators again
+ + read-cache: add verify_path_internal()
+ + t3905: show failure to ignore sub-repo
+
+ Recent sparse-index work broke safety against attempts to add paths
+ with trailing slashes to the index, which has been corrected.
+
+ Will merge to 'master'.
+
+
+* vd/sparse-reset (2021-10-07) 8 commits
+ - unpack-trees: improve performance of next_cache_entry
+ - reset: make --mixed sparse-aware
+ - reset: make sparse-aware (except --mixed)
+ - reset: integrate with sparse index
+ - reset: expand test coverage for sparse checkouts
+ - update-index: add --force-full-index option for expand/collapse test
+ - reset: preserve skip-worktree bit in mixed reset
+ - reset: rename is_missing to !is_in_reset_tree
+
+ Various operating modes of "git reset" have been made to work
+ better with the sparse index.
+
+ Needs review.
--------------------------------------------------
[Stalled]
Kicked out of 'seen' to make room for es/superproject-aware-submodules
which is among the topics this topic stomps on.
+
+* pw/diff-color-moved-fix (2021-08-05) 13 commits
+ - diff: drop unused options parameter from cmp_in_block_with_wsd()
+ - diff --color-moved: intern strings
+ - diff: use designated initializers for emitted_diff_symbol
+ - diff --color-moved-ws=allow-indentation-change: improve hash lookups
+ - diff --color-moved: stop clearing potential moved blocks
+ - diff --color-moved: shrink potential moved blocks as we go
+ - diff --color-moved: unify moved block growth functions
+ - diff --color-moved: call comparison function directly
+ - diff --color-moved-ws=allow-indentation-change: simplify and optimize
+ - diff: simplify allow-indentation-change delta calculation
+ - diff --color-moved: avoid false short line matches and bad zerba coloring
+ - diff --color-moved=zebra: fix alternate coloring
+ - diff --color-moved: add perf tests
+
+ Originally merged to 'next' on 2021-08-05
+
+ Long-overdue correctness and performance update to "diff
+ --color-moved" feature.
+
+ Expecting a reroll.
+ cf. <8bec1a6d-5052-50c3-4100-e6348289d581@gmail.com>
+
+
+* cf/fetch-set-upstream-while-detached (2021-07-06) 1 commit
+ - fetch: fix segfault on --set-upstream while on a detached HEAD
+
+ "git fetch --set-upstream" while on detached HEAD segfaulted
+ instead of noticing that such an operation did not make sense.
+
+ Expecting a reroll.
+ cf. <xmqqsg0ri5mq.fsf@gitster.g>
+
--------------------------------------------------
[Cooking]
-* pw/fix-some-issues-in-reset-head (2021-10-06) 13 commits
- - sparse index: fix use-after-free bug in cache_tree_verify()
+* gc/use-repo-settings (2021-10-04) 3 commits
+ - gc: perform incremental repack when implictly enabled
+ - fsck: verify multi-pack-index when implictly enabled
+ - fsck: verify commit graph when implicitly enabled
+
+ It is wrong to read some settings directly from the config
+ subsystem, as things like feature.experimental can affect their
+ default values.
+
+ Under review.
+ cf. <70aca052-716f-40ed-47c4-1882fdbd221e@gmail.com>
+
+
+* jh/perf-remove-test-times (2021-10-04) 1 commit
+ - t/perf/perf-lib.sh: remove test_times.* at the end test_perf_()
+
+ Perf test fix.
+
+ Will merge to 'next'.
+
+
+* pw/fix-some-issues-in-reset-head (2021-10-01) 12 commits
- rebase -m: don't fork git checkout
- rebase --apply: set ORIG_HEAD correctly
- rebase --apply: fix reflog
protect the fixes.
-* rs/mergesort (2021-10-01) 9 commits
+* rs/mergesort (2021-10-08) 10 commits
+ (merged to 'next' on 2021-10-08 at 2e83706316)
+ + test-mergesort: use repeatable random numbers
(merged to 'next' on 2021-10-03 at 29a672574f)
+ mergesort: use ranks stack
+ p0071: test performance of llist_mergesort()
Will merge to 'master'.
-* bs/doc-blame-color-lines (2021-10-01) 2 commits
- - blame: document --color-* options
- - blame: describe default output format
+* bs/doc-blame-color-lines (2021-10-08) 2 commits
+ (merged to 'next' on 2021-10-11 at a2cb7768b6)
+ + blame: document --color-* options
+ + blame: describe default output format
The "--color-lines" and "--color-by-age" options of "git blame"
have been missing, which are now documented.
- Expecting a reroll.
- cf. <CAPig+cSWutBRQK+Qy=nkaDZRvy4trVNPuo+cF-quC2rBwNe2fw@mail.gmail.com>
-
-
-* mr/bisect-in-c-4 (2021-10-01) 1 commit
- (merged to 'next' on 2021-10-06 at c13c14238d)
- + bisect--helper: add space between colon and following sentence
-
- Message fix.
-
Will merge to 'master'.
* cm/save-restore-terminal (2021-10-06) 2 commits
- - editor: save and reset terminal after calling EDITOR
- - terminal: teach git how to save/restore its terminal settings
+ (merged to 'next' on 2021-10-11 at 962bb3e75b)
+ + editor: save and reset terminal after calling EDITOR
+ + terminal: teach git how to save/restore its terminal settings
An editor session launched during a Git operation (e.g. during 'git
commit') can leave the terminal in a funny state. The code path
has updated to save the terminal state before, and restore it
after, it spawns an editor.
- Will merge to 'next'.
-
-
-* rs/p3400-lose-tac (2021-10-03) 1 commit
- (merged to 'next' on 2021-10-06 at 688dc7137c)
- + p3400: stop using tac(1)
-
- Test portability update.
-
Will merge to 'master'.
Will merge to 'master'.
-* tb/aggregate-ignore-leading-whitespaces (2021-10-04) 1 commit
- (merged to 'next' on 2021-10-06 at 619a7db2d4)
- + t/perf/aggregate.perl: tolerate leading spaces
-
- Test portability update.
-
- Will merge to 'master'.
-
-
-* ab/designated-initializers (2021-09-27) 5 commits
- (merged to 'next' on 2021-10-03 at 179f652de6)
- + cbtree.h: define cb_init() in terms of CBTREE_INIT
- + *.h: move some *_INIT to designated initializers
- + *.h _INIT macros: don't specify fields equal to 0
- + *.[ch] *_INIT macros: use { 0 } for a "zero out" idiom
- + submodule-config.h: remove unused SUBMODULE_INIT macro
- (this branch is used by ab/designated-initializers-more.)
-
- Code clean-up.
-
- Will merge to 'master'.
-
-
* ab/designated-initializers-more (2021-10-01) 6 commits
- - builtin/remote.c: add and use SHOW_INFO_INIT
- - builtin/remote.c: add and use a REF_STATES_INIT
- - urlmatch.[ch]: add and use URLMATCH_CONFIG_INIT
- - builtin/blame.c: refactor commit_info_init() to COMMIT_INFO_INIT macro
- - daemon.c: refactor hostinfo_init() to HOSTINFO_INIT macro
- - Merge branch 'ab/designated-initializers' into ab/designated-initializers-more
- (this branch uses ab/designated-initializers.)
+ (merged to 'next' on 2021-10-11 at 9b9836c3df)
+ + builtin/remote.c: add and use SHOW_INFO_INIT
+ + builtin/remote.c: add and use a REF_STATES_INIT
+ + urlmatch.[ch]: add and use URLMATCH_CONFIG_INIT
+ + builtin/blame.c: refactor commit_info_init() to COMMIT_INFO_INIT macro
+ + daemon.c: refactor hostinfo_init() to HOSTINFO_INIT macro
+ + Merge branch 'ab/designated-initializers' into ab/designated-initializers-more
Code clean-up.
- Will merge to 'next'.
+ Will merge to 'master'.
-* ab/parse-options-cleanup (2021-10-01) 11 commits
+* ab/parse-options-cleanup (2021-10-08) 10 commits
- parse-options: change OPT_{SHORT,UNSET} to an enum
- parse-options tests: test optname() output
- parse-options.[ch]: make opt{bug,name}() "static"
- commit-graph: stop using optname()
- parse-options.c: move optname() earlier in the file
- parse-options.h: make the "flags" in "struct option" an enum
- - parse-options.c: use exhaustive "case" arms for "enum parse_opt_type"
- parse-options.c: use exhaustive "case" arms for "enum parse_opt_result"
- parse-options.[ch]: consistently use "enum parse_opt_result"
- parse-options.[ch]: consistently use "enum parse_opt_flags"
Will merge to 'next'?
-* ab/retire-git-config-key-is-valid (2021-09-28) 1 commit
- (merged to 'next' on 2021-10-03 at fc7a0a55d1)
- + config.c: remove unused git_config_key_is_valid()
-
- Code cleanup.
-
- Will merge to 'master'.
-
-
* mt/grep-submodule-textconv (2021-09-29) 1 commit
(merged to 'next' on 2021-10-06 at 1950944b8c)
+ grep: demonstrate bug with textconv attributes and submodules
Will merge to 'master'.
-* ab/http-pinned-public-key-mismatch (2021-09-27) 1 commit
- (merged to 'next' on 2021-10-03 at cd67328eed)
- + http: check CURLE_SSL_PINNEDPUBKEYNOTMATCH when emitting errors
-
- HTTPS error handling updates.
-
- Will merge to 'master'.
-
-
-* jk/ref-paranoia (2021-09-27) 16 commits
- (merged to 'next' on 2021-10-03 at 8c2cb6a3a6)
- + refs: drop "broken" flag from for_each_fullref_in()
- + ref-filter: drop broken-ref code entirely
- + ref-filter: stop setting FILTER_REFS_INCLUDE_BROKEN
- + repack, prune: drop GIT_REF_PARANOIA settings
- + refs: turn on GIT_REF_PARANOIA by default
- + refs: omit dangling symrefs when using GIT_REF_PARANOIA
- + refs: add DO_FOR_EACH_OMIT_DANGLING_SYMREFS flag
- + refs-internal.h: reorganize DO_FOR_EACH_* flag documentation
- + refs-internal.h: move DO_FOR_EACH_* flags next to each other
- + t5312: be more assertive about command failure
- + t5312: test non-destructive repack
- + t5312: create bogus ref as necessary
- + t5312: drop "verbose" helper
- + t5600: provide detached HEAD for corruption failures
- + t5516: don't use HEAD ref for invalid ref-deletion tests
- + t7900: clean up some more broken refs
- (this branch is used by jt/no-abuse-alternate-odb-for-submodules.)
-
- The ref iteration code used to optionally allow dangling refs to be
- shown, which has been tightened up.
-
- Will merge to 'master'.
-
-
-* js/win-lazyload-buildfix (2021-09-28) 3 commits
- (merged to 'next' on 2021-10-03 at 26802e5d73)
- + Makefile: restrict -Wpedantic and -Wno-pedantic-ms-format better
- + lazyload.h: use an even more generic function pointer than FARPROC
- + lazyload.h: fix warnings about mismatching function pointer types
-
- Compilation fix.
-
- Will merge to 'master'.
-
-
* ab/make-sparse-for-real (2021-09-22) 1 commit
(merged to 'next' on 2021-10-06 at 10e3c31d6a)
+ Makefile: make the "sparse" target non-.PHONY
Will merge to 'master'.
-* jt/no-abuse-alternate-odb-for-submodules (2021-10-01) 10 commits
- - fixup! refs: plumb repo into ref stores
+* jt/no-abuse-alternate-odb-for-submodules (2021-10-08) 9 commits
- submodule: trace adding submodule ODB as alternate
- submodule: pass repo to check_has_commit()
- object-file: only register submodule ODB if needed
- refs: plumb repo into ref stores
- Merge branch 'jk/ref-paranoia' into jt/no-abuse-alternate-odb-for-submodules
- Merge branch 'jt/add-submodule-odb-clean-up' into jt/no-abuse-alternate-odb-for-submodules
- (this branch uses jk/ref-paranoia.)
Follow through the work to use the repo interface to access
submodule objects in-process, instead of abusing the alternate
object database interface.
- Expecting a reroll.
+ Will merge to 'next'?
-* tp/send-email-completion (2021-09-22) 3 commits
+* tp/send-email-completion (2021-10-07) 3 commits
- send-email docs: add format-patch options
- - send-email: move bash completions to core script
+ - send-email: programmatically generate bash completions
- send-email: terminate --git-completion-helper with LF
The command line complation for "git send-email" options have been
tweaked to make it easier to keep it in sync with the command itself.
- Stalled.
- cf. <YU6+BWC+xvGJP3b0@carlos-mbp.lan>
+ Expecting a reroll.
+ cf. <87fst7lkjx.fsf@evledraar.gmail.com>
-* hm/paint-hits-in-log-grep (2021-09-29) 3 commits
+* hm/paint-hits-in-log-grep (2021-10-08) 5 commits
+ - SQUASH???
+ - grep: fix an edge case concerning ascii patterns and UTF-8 data
- pretty: colorize pattern matches in commit messages
- grep: refactor next_match() and match_one_pattern() for external use
- Merge branch 'jk/grep-haystack-is-read-only' into hm/paint-hits-in-log-grep
like "git grep string" does.
Expecting a reroll.
- cf. <87v92bju64.fsf@evledraar.gmail.com>
-
-
-* da/difftool (2021-09-30) 6 commits
- (merged to 'next' on 2021-10-03 at 3ba0335e4e)
- + difftool: add a missing space to the run_dir_diff() comments
- + difftool: remove an unnecessary call to strbuf_release()
- + difftool: refactor dir-diff to write files using helper functions
- + difftool: create a tmpdir path without repeated slashes
- + Merge branch 'da/difftool-dir-diff-symlink-fix' into da/difftool
- + Merge branch 'ab/retire-option-argument' into da/difftool
-
- Code clean-up in "git difftool".
-
- Will merge to 'master'.
+ cf. <xmqq1r4vjji3.fsf@gitster.g>
* en/removing-untracked-fixes (2021-09-27) 12 commits
cf. <m27df9lvm1.fsf@gmail.com>
-* ns/batched-fsync (2021-10-04) 9 commits
- . core.fsyncobjectfiles: performance tests for add and stash
- . core.fsyncobjectfiles: tests for batch mode
- . unpack-objects: use the bulk-checkin infrastructure
- . update-index: use the bulk-checkin infrastructure
- . core.fsyncobjectfiles: add windows support for batch mode
- . core.fsyncobjectfiles: batched disk flushes
- . bulk-checkin: rename 'state' variable and separate 'plugged' boolean
- . tmp-objdir: disable ref updates when replacing the primary odb
- . tmp-objdir: new API for creating temporary writable databases
+* ns/batched-fsync (2021-10-08) 8 commits
+ - core.fsyncobjectfiles: performance tests for add and stash
+ - core.fsyncobjectfiles: tests for batch mode
+ - unpack-objects: use the bulk-checkin infrastructure
+ - update-index: use the bulk-checkin infrastructure
+ - core.fsyncobjectfiles: add windows support for batch mode
+ - core.fsyncobjectfiles: batched disk flushes
+ - bulk-checkin: rename 'state' variable and separate 'plugged' boolean
+ - Merge branch 'ns/tmp-objdir' into ns/batched-fsync
+ (this branch uses ns/tmp-objdir.)
The "core.fsyncobjectfiles" configuration variable can now be set
to "batch" for improved performance.
- Under discussion.
-
- Handling of temporary object directory is worked out with the
- en/remerge-diff topic.
+ Will merge to 'next'?
* jh/builtin-fsmonitor-part1 (2021-09-20) 7 commits
Will merge to 'master'.
-* tb/repack-write-midx (2021-10-01) 9 commits
+* tb/repack-write-midx (2021-10-07) 10 commits
+ (merged to 'next' on 2021-10-08 at ff8fec247e)
+ + test-read-midx: fix leak of bitmap_index struct
(merged to 'next' on 2021-10-06 at ccdd5aaf2a)
+ builtin/repack.c: pass `--refs-snapshot` when writing bitmaps
+ builtin/repack.c: make largest pack preferred
Will merge to 'master'.
-* tb/midx-write-propagate-namehash (2021-09-17) 7 commits
- (merged to 'next' on 2021-09-29 at 24732fcfc8)
- + t5326: test propagating hashcache values
- + p5326: generate pack bitmaps before writing the MIDX bitmap
- + p5326: don't set core.multiPackIndex unnecessarily
- + p5326: create missing 'perf-tag' tag
- + midx.c: respect 'pack.writeBitmapHashcache' when writing bitmaps
- + pack-bitmap.c: propagate namehash values from existing bitmaps
- + t/helper/test-bitmap.c: add 'dump-hashes' mode
-
- "git multi-pack-index write --bitmap" learns to propagate the
- hashcache from original bitmap to resulting bitmap.
-
- Will merge to 'master'.
-
-
* en/zdiff3 (2021-09-20) 2 commits
- update documentation for new zdiff3 conflictStyle
- xdiff: implement a zealous diff3, or "zdiff3"
"Zealous diff3" style of merge conflict presentation has been added.
-* js/scalar (2021-09-14) 15 commits
+* js/scalar (2021-10-07) 15 commits
- scalar: accept -C and -c options before the subcommand
- scalar: implement the `version` command
- scalar: implement the `delete` command
Add pieces from "scalar" to contrib/.
- Waiting for a response.
- cf. <pull.1005.v4.git.1631630356.gitgitgadget@gmail.com>
-
-
-* ab/sanitize-leak-ci (2021-09-23) 2 commits
- (merged to 'next' on 2021-10-03 at dcd62a3fc6)
- + tests: add a test mode for SANITIZE=leak, run it in CI
- + Makefile: add SANITIZE=leak flag to GIT-BUILD-OPTIONS
-
- CI learns to run the leak sanitizer builds.
-
- Will merge to 'master'.
-
* ms/customizable-ident-expansion (2021-09-01) 1 commit
- keyword expansion: make "$Id$" string configurable
Instead of "$Id$", user-specified string (like $FreeBSD$) can be
used as an in-blob placeholder for keyword expansion.
+ What's the status of this one? Meh?
+
* js/retire-preserve-merges (2021-09-07) 11 commits
(merged to 'next' on 2021-09-10 at f645ffd7a3)
Will cook in 'next'.
-* en/remerge-diff (2021-08-31) 7 commits
- - doc/diff-options: explain the new --remerge-diff option
- - show, log: provide a --remerge-diff capability
- - tmp-objdir: new API for creating and removing primary object dirs
- - merge-ort: capture and print ll-merge warnings in our preferred fashion
- - ll-merge: add API for capturing warnings in a strbuf instead of stderr
- - merge-ort: add ability to record conflict messages in a file
- - merge-ort: mark a few more conflict messages as omittable
-
- A new presentation for two-parent merge "--remerge-diff" can be
- used to show the difference between mechanical (and possibly
- conflicted) merge results and the recorded resolution.
-
- Expecting a reroll.
-
- Handling of temporary object directory is worked out with the
- ns/batched-fsync topic.
-
-
-* sg/test-split-index-fix (2021-09-07) 7 commits
- (merged to 'next' on 2021-09-29 at 661ae75778)
- + read-cache: fix GIT_TEST_SPLIT_INDEX
- + tests: disable GIT_TEST_SPLIT_INDEX for sparse index tests
- + read-cache: look for shared index files next to the index, too
- + t1600-index: disable GIT_TEST_SPLIT_INDEX
- + t1600-index: don't run git commands upstream of a pipe
- + t1600-index: remove unnecessary redirection
- + Merge branch 'ds/sparse-index-ignored-files' into sg/test-split-index-fix
-
- Test updates.
-
- Will merge to 'master'.
-
-
* ab/refs-errno-cleanup (2021-08-25) 4 commits
- refs: make errno output explicit for refs_resolve_ref_unsafe
- refs: explicitly return failure_errno from parse_loose_ref_contents
The "remainder" of hn/refs-errno-cleanup topic.
- What's the status of this one? Meh?
-
* ab/lib-subtest (2021-09-22) 9 commits
(merged to 'next' on 2021-10-06 at e8fa261811)
Further tweaks on progress API.
+ Under review.
+ cf. <20211010212949.GC571180@szeder.dev>
+
* fs/ssh-signing (2021-09-10) 9 commits
- - ssh signing: test that gpg fails for unknown keys
- - ssh signing: tests for logs, tags & push certs
- - ssh signing: duplicate t7510 tests for commits
- - ssh signing: verify signatures using ssh-keygen
- - ssh signing: provide a textual signing_key_id
- - ssh signing: retrieve a default key from ssh-agent
- - ssh signing: add ssh key format and signing code
- - ssh signing: add test prereqs
- - ssh signing: preliminary refactoring and clean-up
+ (merged to 'next' on 2021-10-11 at b456b95672)
+ + ssh signing: test that gpg fails for unknown keys
+ + ssh signing: tests for logs, tags & push certs
+ + ssh signing: duplicate t7510 tests for commits
+ + ssh signing: verify signatures using ssh-keygen
+ + ssh signing: provide a textual signing_key_id
+ + ssh signing: retrieve a default key from ssh-agent
+ + ssh signing: add ssh key format and signing code
+ + ssh signing: add test prereqs
+ + ssh signing: preliminary refactoring and clean-up
Use ssh public crypto for object and push-cert signing.
- Will merge to 'next'.
-
-
-* cf/fetch-set-upstream-while-detached (2021-07-06) 1 commit
- - fetch: fix segfault on --set-upstream while on a detached HEAD
-
- "git fetch --set-upstream" while on detached HEAD segfaulted
- instead of noticing that such an operation did not make sense.
-
- Expecting a reroll.
- cf. <xmqqsg0ri5mq.fsf@gitster.g>
-
-
-* pw/diff-color-moved-fix (2021-08-05) 13 commits
- - diff: drop unused options parameter from cmp_in_block_with_wsd()
- - diff --color-moved: intern strings
- - diff: use designated initializers for emitted_diff_symbol
- - diff --color-moved-ws=allow-indentation-change: improve hash lookups
- - diff --color-moved: stop clearing potential moved blocks
- - diff --color-moved: shrink potential moved blocks as we go
- - diff --color-moved: unify moved block growth functions
- - diff --color-moved: call comparison function directly
- - diff --color-moved-ws=allow-indentation-change: simplify and optimize
- - diff: simplify allow-indentation-change delta calculation
- - diff --color-moved: avoid false short line matches and bad zerba coloring
- - diff --color-moved=zebra: fix alternate coloring
- - diff --color-moved: add perf tests
-
- Originally merged to 'next' on 2021-08-05
-
- Long-overdue correctness and performance update to "diff
- --color-moved" feature.
-
- Expecting a reroll.
- cf. <8bec1a6d-5052-50c3-4100-e6348289d581@gmail.com>
+ Will merge to 'master'.
-* hn/reftable (2021-10-01) 24 commits
- - reftable: avoid non portable compile time pointer to function
- - config.mak.uname: last release and snapshots of Minix still use zlib 1.2.3
- - fixup! reftable: implement stack, a mutable database of reftable files.
- - fixup! reftable: add a heap-based priority queue for reftable records
- - squash! reftable: reading/writing blocks
+* hn/reftable (2021-10-08) 19 commits
- Add "test-tool dump-reftable" command.
- reftable: add dump utility
- reftable: implement stack, a mutable database of reftable files.
- reftable: add blocksource, an abstraction for random access reads
- reftable: utility functions
- reftable: add error related functionality
- - reftable: RFC: add LICENSE
+ - reftable: add LICENSE
- hash.h: provide constants for the hash IDs
The "reftable" backend for the refs API, without integrating into
the refs subsystem.
- Expecting a reroll.
-
--------------------------------------------------
[Discarded]
-* ao/p4-avoid-decoding (2021-04-12) 2 commits
- . git-p4: do not decode data from perforce by default
- . git-p4: avoid decoding more data from perforce
-
- "git p4" in Python-2 days used to accept a lot more kinds of data
- from Perforce server as uninterrupted byte sequence, but after
- switching to Python-3, too many things are expected to be in UTF-8,
- which broke traditional use cases.
-
- Have been stalled for too long.
- cf. <20210504220153.1d9f0cb2@ado-tr>
-
-
-* tv/p4-fallback-encoding (2021-04-30) 1 commit
- . git-p4: git-p4.fallbackEncoding to specify non UTF-8 charset
-
- "git p4" learns the fallbackEncoding configuration variable to
- safely accept changeset descriptions that aren't written in UTF-8.
-
- Have been stalled for too long.
- cf. <CAKu1iLUaLuAZWqjNK4tfhhR=YaSt4MdQ+90ZY-JcEh_SeHyYCw@mail.gmail.com>
-
-
-* jh/builtin-fsmonitor (2021-09-03) 37 commits
- . fixup! fsmonitor--daemon: implement handle_client callback
- . SQUASH??? https://github.com/git/git/runs/3438543601?check_suite_focus=true#step:5:136
- . BANDAID: sparse fixes
- . t7527: test FS event reporing on MacOS WRT case and Unicode
- . fsmonitor: handle shortname for .git
- . t7527: test status with untracked-cache and fsmonitor--daemon
- . fsmonitor: force update index after large responses
- . fsmonitor: enhance existing comments
- . fsmonitor--daemon: use a cookie file to sync with file system
- . fsmonitor--daemon: periodically truncate list of modified files
- . t7527: create test for fsmonitor--daemon
- . t/perf/p7519: add fsmonitor--daemon test cases
- . t/perf: avoid copying builtin fsmonitor files into test repo
- . t/perf/p7519: speed up test using "test-tool touch"
- . t/helper/test-touch: add helper to touch a series of files
- . fsmonitor--daemon: implement handle_client callback
- . fsmonitor-fs-listen-macos: implement FSEvent listener on MacOS
- . fsmonitor-fs-listen-macos: add macos header files for FSEvent
- . fsmonitor-fs-listen-win32: implement FSMonitor backend on Windows
- . fsmonitor--daemon: create token-based changed path cache
- . fsmonitor--daemon: define token-ids
- . fsmonitor--daemon: add pathname classification
- . fsmonitor: do not try to operate on bare repos
- . fsmonitor--daemon: implement 'start' command
- . fsmonitor--daemon: implement 'run' command
- . fsmonitor-fs-listen-macos: stub in backend for MacOS
- . fsmonitor-fs-listen-win32: stub in backend for Windows
- . t/helper/fsmonitor-client: create IPC client to talk to FSMonitor Daemon
- . fsmonitor--daemon: implement 'stop' and 'status' commands
- . fsmonitor--daemon: add a built-in fsmonitor daemon
- . fsmonitor: use IPC to query the builtin FSMonitor daemon
- . fsmonitor: config settings are repository-specific
- . help: include fsmonitor--daemon feature flag in version info
- . fsmonitor-ipc: create client routines for git-fsmonitor--daemon
- . fsmonitor--daemon: update fsmonitor documentation
- . fsmonitor--daemon: man page
- . simple-ipc: preparations for supporting binary messages.
-
- An attempt to write and ship with a watchman equivalent tailored
- for our use.
-
- Will be rerolled in pieces.
-
-
-* ab/config-based-hooks-base (2021-09-09) 36 commits
- . hooks: fix a TOCTOU in "did we run a hook?" heuristic
- . receive-pack: convert receive hooks to hook.h
- . post-update: use hook.h library
- . receive-pack: convert 'update' hook to hook.h
- . hooks: allow callers to capture output
- . run-command: allow capturing of collated output
- . reference-transaction: use hook.h to run hooks
- . hook tests: use a modern style for "pre-push" tests
- . hook tests: test for exact "pre-push" hook input
- . transport: convert pre-push hook to hook.h
- . hook: convert 'post-rewrite' hook in sequencer.c to hook.h
- . hook: provide stdin by string_list or callback
- . run-command: add stdin callback for parallelization
- . am: convert 'post-rewrite' hook to hook.h
- . hook: support passing stdin to hooks
- . run-command: allow stdin for run_processes_parallel
- . run-command: remove old run_hook_{le,ve}() hook API
- . receive-pack: convert push-to-checkout hook to hook.h
- . read-cache: convert post-index-change to use hook.h
- . commit: convert {pre-commit,prepare-commit-msg} hook to hook.h
- . git-p4: use 'git hook' to run hooks
- . send-email: use 'git hook run' for 'sendemail-validate'
- . git hook run: add an --ignore-missing flag
- . merge: convert post-merge to use hook.h
- . hooks: convert 'post-checkout' hook to hook library
- . am: convert applypatch to use hook.h
- . rebase: convert pre-rebase to use hook.h
- . gc: use hook library for pre-auto-gc hook
- . hook: add 'run' subcommand
- . hook-list.h: add a generated list of hooks, like config-list.h
- . hook.c users: use "hook_exists()" instead of "find_hook()"
- . hook.c: add a hook_exists() wrapper and use it in bugreport.c
- . hook.[ch]: move find_hook() from run-command.c to hook.c
- . Makefile: remove an out-of-date comment
- . Makefile: stop hardcoding {command,config}-list.h
- . Makefile: mark "check" target as .PHONY
- (this branch is used by es/config-based-hooks.)
-
- Restructuring of (a subset of) Emily's config-based-hooks series,
- to demonstrate that a series can be presented as a more logical and
- focused progression.
-
- Will be rerolled in pieces.
-
-
-* es/config-based-hooks (2021-09-09) 6 commits
- . hook: allow out-of-repo 'git hook' invocations
- . hook: include hooks from the config
- . hook: introduce "git hook list"
- . hook: allow parallel hook execution
- . fixup! hook: run a list of hooks instead
- . hook: run a list of hooks instead
- (this branch uses ab/config-based-hooks-base.)
-
- Revamp the hooks subsystem to allow multiple of them to trigger
- upon the same event and control via the configuration variables.
-
-
-* cb/make-compdb-fix (2021-09-22) 1 commit
- . Makefile: avoid breaking compilation database generation with DEVELOPER
-
- Adjust to recent change to use -pedantic for developer builds.
-
- Replaced by the ab/make-compdb-fix topic that uses the same
- approach as the ab/auto-depend-with-pedantic topic.
-
-
-* ab/pack-objects-stdin (2021-07-09) 5 commits
- . pack-objects.c: make use of REV_INFO_STDIN_LINE_PROCESS
- . pack-objects.c: do stdin parsing via revision.c's API
- . revision.[ch]: add a "handle_stdin_line" API
- . revision.h: refactor "disable_stdin" and "read_from_stdin"
- . upload-pack: run is_repository_shallow() before setup_revisions()
-
- Introduce handle_stdin_line callback to revision API and uses it.
-
- Retracted for now.
-
-
-* ah/unleak-revisions (2021-09-20) 2 commits
- . log: UNLEAK original pending objects
- . log: UNLEAK rev to silence a large number of leaks
-
- Mark a few structures with UNLEAK() to help leak detection CI jobs.
-
- Retracted.
- cf. <05754f9c-cd58-30f5-e2d3-58b9221d2770@ahunt.org>
-
-
-* rs/p5311-use-test-file-size (2021-10-03) 1 commit
- . p5311: handle spaces in wc(1) output
-
- Test portability update.
+* en/remerge-diff (2021-08-31) 7 commits
+ . doc/diff-options: explain the new --remerge-diff option
+ . show, log: provide a --remerge-diff capability
+ . tmp-objdir: new API for creating and removing primary object dirs
+ . merge-ort: capture and print ll-merge warnings in our preferred fashion
+ . ll-merge: add API for capturing warnings in a strbuf instead of stderr
+ . merge-ort: add ability to record conflict messages in a file
+ . merge-ort: mark a few more conflict messages as omittable
- The tb/aggregate-ignore-leading-whitespaces supersedes this topic.
+ A new presentation for two-parent merge "--remerge-diff" can be
+ used to show the difference between mechanical (and possibly
+ conflicted) merge results and the recorded resolution.