Subject: What's cooking in git.git (Feb 2024, #01; Fri, 2)

From: Junio C Hamano <[email-masked]>
Date: Fri, 02 Feb 2024 16:43:06 -0800

Here are the topics that have been cooking in my tree.  Commits
prefixed with '+' are in 'next' (being in 'next' is a sign that a
topic is stable enough to be used and are candidate to be in a
future release).  Commits prefixed with '-' are only in 'seen', and
aren't considered "accepted" at all and may be annotated with an URL
to a message that raises issues but they are no means exhaustive.  A
topic without enough support may be discarded after a long period of
no activity (of course they can be resubmit when new interests
arise).

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
repositories have only a subset of branches.

With maint, master, next, seen, todo:

	git://git.kernel.org/pub/scm/git/git.git/
	git://repo.or.cz/alt-git.git/
	https://kernel.googlesource.com/pub/scm/git/git/
	https://github.com/git/git/
	https://gitlab.com/git-vcs/git/

With all the integration branches and topics broken out:

	https://github.com/gitster/git/

Even though the preformatted documentation in HTML and man format
are not sources, they are published in these repositories for
convenience (replace "htmldocs" with "manpages" for the manual
pages):

	git://git.kernel.org/pub/scm/git/git-htmldocs.git/
	https://github.com/gitster/git-htmldocs.git/

Release tarballs are available at:

	https://www.kernel.org/pub/software/scm/git/

--------------------------------------------------
[Graduated to 'master']

* ad/custom-merge-placeholder-for-symbolic-pathnames (2024-01-24) 1 commit
  (merged to 'next' on 2024-01-24 at d9cf4e227d)
 + merge-ll: expose revision names to custom drivers

 The labels on conflict markers for the common ancestor, our version,
 and the other version are available to custom 3-way merge driver
 via %S, %X, and %Y placeholders.
 source: <[email-masked]>

* jc/coc-whitespace-fix (2024-01-23) 1 commit
  (merged to 'next' on 2024-01-26 at 6fb290ad59)
 + CoC: whitespace fix

 Docfix.
 source: <[email-masked]>

* jc/ls-files-doc-update (2024-01-25) 1 commit
  (merged to 'next' on 2024-01-26 at a71aeec3d3)
 + ls-files: avoid the verb "deprecate" for individual options

 The documentation for the --exclude-per-directory option marked it
 as deprecated, which confused readers into thinking there may be a
 plan to remove it in the future, which was not our intention.
 source: <[email-masked]>

* jc/reffiles-tests (2024-01-22) 12 commits
  (merged to 'next' on 2024-01-24 at 0d1aaa6807)
 + t5312: move reffiles specific tests to t0601
 + t4202: move reffiles specific tests to t0600
 + t3903: make drop stash test ref backend agnostic
 + t1503: move reffiles specific tests to t0600
 + t1415: move reffiles specific tests to t0601
 + t1410: move reffiles specific tests to t0600
 + t1406: move reffiles specific tests to t0600
 + t1405: move reffiles specific tests to t0601
 + t1404: move reffiles specific tests to t0600
 + t1414: convert test to use Git commands instead of writing refs manually
 + remove REFFILES prerequisite for some tests in t1405 and t2017
 + t3210: move to t0601

 Tests on ref API are moved around to prepare for reftable.
 cf. <Za5TW-q4cKS8pNNc@tanuki>
 source: <[email-masked]>

* jk/fetch-auto-tag-following-fix (2024-01-24) 1 commit
  (merged to 'next' on 2024-01-26 at d058f1511b)
 + transport-helper: re-examine object dir after fetching

 Fetching via protocol v0 over Smart HTTP transport sometimes failed
 to correctly auto-follow tags.
 source: <[email-masked]>

* jx/remote-archive-over-smart-http (2024-01-22) 6 commits
  (merged to 'next' on 2024-01-23 at 5fa4633015)
 + transport-helper: call do_take_over() in process_connect
 + transport-helper: call do_take_over() in connect_helper
 + http-backend: new rpc-service for git-upload-archive
 + transport-helper: protocol v2 supports upload-archive
 + remote-curl: supports git-upload-archive service
 + transport-helper: no connection restriction in connect_helper

 "git archive --remote=<remote>" learned to talk over the smart
 http (aka stateless) transport.
 source: <[email-masked]>

* kl/allow-working-in-dot-git-in-non-bare-repository (2024-01-20) 1 commit
  (merged to 'next' on 2024-01-24 at e77b796e11)
 + setup: allow cwd=.git w/ bareRepository=explicit

 The "disable repository discovery of a bare repository" check,
 triggered by setting safe.bareRepository configuration variable to
 'explicit', has been loosened to exclude the ".git/" directory inside
 a non-bare repository from the check.  So you can do "cd .git &&
 git cmd" to run a Git command that works on a bare repository without
 explicitly specifying $GIT_DIR now.
 source: <[email-masked]>

* pb/ci-github-skip-logs-for-broken-tests (2024-01-22) 1 commit
  (merged to 'next' on 2024-01-23 at f5e3ab2092)
 + ci(github): also skip logs of broken test cases

 GitHub CI update.
 cf. <[email-masked]>
 source: <[email-masked]>

* pb/complete-log-more (2024-01-22) 4 commits
  (merged to 'next' on 2024-01-24 at 081d2a92fa)
 + completion: complete missing 'git log' options
 + completion: complete --encoding
 + completion: complete --patch-with-raw
 + completion: complete missing rev-list options

 The completion script (in contrib/) learned more options that can
 be used with "git log".
 source: <[email-masked]>

* rj/advice-disable-how-to-disable (2024-01-16) 2 commits
  (merged to 'next' on 2024-01-23 at f456f4937d)
 + advice: allow disabling the automatic hint in advise_if_enabled()
 + Merge branch 'rj/advice-delete-branch-not-fully-merged' into rj/advice-disable-how-to-disable

 All conditional "advice" messages show how to turn them off, which
 becomes repetitive.  Setting advice.* configuration explicitly on
 now omits the instruction part.
 source: <[email-masked]>

* rs/parse-options-with-keep-unknown-abbrev-fix (2024-01-22) 2 commits
  (merged to 'next' on 2024-01-23 at a216b482cd)
 + parse-options: simplify positivation handling
 + parse-options: fully disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN

 "git diff --no-rename A B" did not disable rename detection but did
 not trigger an error from the command line parser.
 source: <[email-masked]>
 source: <[email-masked]>

* sd/negotiate-trace-fix (2024-01-03) 1 commit
  (merged to 'next' on 2024-01-24 at 6305853ab2)
 + push: region_leave trace for negotiate_using_fetch

 Tracing fix.
 source: <[email-masked]>

* zf/subtree-split-fix (2024-01-25) 1 commit
  (merged to 'next' on 2024-01-26 at a09e02f208)
 + subtree: fix split processing with multiple subtrees present

 "git subtree" (in contrib/) update.
 source: <[email-masked]>

--------------------------------------------------
[New Topics]

* jc/t0091-with-unknown-git (2024-01-30) 1 commit
  (merged to 'next' on 2024-01-31 at 3dfcad1b18)
 + t0091: allow test in a repository without tags

 The test did not work when Git was built from a repository without
 tags.

 Will merge to 'master'.
 source: <[email-masked]>

* ps/reftable-backend (2024-02-02) 3 commits
 - ci: add jobs to test with the reftable backend
 - refs: introduce reftable backend
 - Merge branch 'ps/tests-with-ref-files-backend' into ps/reftable-backend
 (this branch uses ps/tests-with-ref-files-backend.)

 Integrate the reftable code into the refs framework as a backend.

 Needs review.
 source: <[email-masked]>

* js/win32-retry-pipe-write-on-enospc (2024-01-30) 1 commit
  (merged to 'next' on 2024-01-31 at 60ad589fd0)
 + win32: special-case `ENOSPC` when writing to a pipe

 Update to the code that writes to pipes on Windows.

 Will merge to 'master'.
 source: <[email-masked]>

* jc/make-libpath-template (2024-01-31) 2 commits
  (merged to 'next' on 2024-01-31 at 559d5138bc)
 + Makefile: simplify output of the libpath_template
 + Makefile: reduce repetitive library paths

 The Makefile often had to say "-L$(path) -R$(path)" that repeats
 the path to the same library directory for link time and runtime.
 A Makefile template is used to reduce such repetition.

 Will merge to 'master'.
 source: <[email-masked]>

* cb/use-freebsd-13-2-at-cirrus-ci (2024-01-31) 1 commit
  (merged to 'next' on 2024-01-31 at f89dc8a289)
 + ci: update FreeBSD cirrus job

 Cirrus CI jobs started breaking because we specified version of
 FreeBSD that is no longer available, which has been corrected.

 Will merge to 'master'.
 source: <[email-masked]>

* cc/rev-list-allow-missing-tips (2024-02-01) 3 commits
 - rev-list: add --allow-missing-tips to be used with --missing=...
 - t6022: fix 'even though' typo in comment
 - revision: clarify a 'return NULL' in get_reference()

 "git rev-list --missing=print" have learned to optionally take
 "--allow-missing-tips", which allows the objects at the starting
 points to be missing.

 Needs review.
 source: <[email-masked]>

* ps/reftable-iteration-perf (2024-02-01) 7 commits
 - reftable/reader: add comments to `table_iter_next()`
 - reftable/record: don't try to reallocate ref record name
 - reftable/block: swap buffers instead of copying
 - reftable/pq: allocation-less comparison of entry keys
 - reftable/merged: skip comparison for records of the same subiter
 - reftable/merged: allocation-less dropping of shadowed records
 - reftable/record: introduce function to compare records by key

 The code to iterate over refs with the reftable backend has seen
 some optimization.

 Needs review.
 source: <[email-masked]>

* ps/reftable-styles (2024-02-01) 9 commits
 - reftable/record: improve semantics when initializing records
 - reftable/merged: refactor initialization of iterators
 - reftable/merged: refactor seeking of records
 - reftable/stack: use `size_t` to track stack length
 - reftable/stack: use `size_t` to track stack slices during compaction
 - reftable/stack: index segments with `size_t`
 - reftable/stack: fix parameter validation when compacting range
 - reftable: introduce macros to allocate arrays
 - reftable: introduce macros to grow arrays

 Code clean-up in various reftable code paths.

 Needs review.
 source: <[email-masked]>

* pb/imap-send-wo-curl-build-fix (2024-02-01) 1 commit
 - imap-send: add missing "strbuf.h" include under NO_CURL

 Build fix.

 Will merge to 'next'.
 source: <[email-masked]>

* jc/github-actions-update (2024-02-02) 1 commit
 - Merge branch 'jc/maint-github-actions-update' into jc/github-actions-update
 (this branch uses jc/maint-github-actions-update.)

 An evil merge of the other topic to a more modern codebase.

 Will merge to 'next'?

* jc/maint-github-actions-update (2024-02-02) 2 commits
 - GitHub Actions: update to github-script@v7
 - GitHub Actions: update to checkout@v4
 (this branch is used by jc/github-actions-update.)

 Squelch node.js 16 deprecation warnings from GitHub Actions CI
 by updating actions/github-script and actions/checkout that use
 node.js 20.

 Needs review.
 source: <[email-masked]>

* jh/sparse-index-expand-to-path-fix (2024-02-02) 1 commit
 - sparse-index: pass string length to index_file_exists()

 A caller called index_file_exists() that takes a string expressed
 as <ptr, length> with a wrong length, which has been corrected.

 Will merge to 'next'.
 source: <[email-masked]>

--------------------------------------------------
[Cooking]

* jc/comment-style-fixes (2024-01-29) 3 commits
  (merged to 'next' on 2024-01-30 at a58d48a9ce)
 + reftable/pq_test: comment style fix
 + merge-ort.c: comment style fix
 + builtin/worktree: comment style fixes

 Rewrite //-comments to /* comments */ in files whose comments
 prevalently use the latter.

 Will merge to 'master'.
 source: <[email-masked]>

* jk/diff-external-with-no-index (2024-01-29) 1 commit
  (merged to 'next' on 2024-01-30 at 30c3e9f91d)
 + diff: handle NULL meta-info when spawning external diff

 "git diff --no-index file1 file2" segfaulted while invoking the
 external diff driver, which has been corrected.

 Reverted out of 'next' for now, seems to break "win test (n)" jobs.
 cf. <[email-masked]>
 source: <[email-masked]>

* jk/unit-tests-buildfix (2024-01-31) 3 commits
  (merged to 'next' on 2024-01-31 at 00df31c4c8)
 + t/Makefile: get UNIT_TESTS list from C sources
 + Makefile: remove UNIT_TEST_BIN directory with "make clean"
 + Makefile: use mkdir_p_parent_template for UNIT_TEST_BIN

 Build dependency around unit tests has been fixed.

 Will merge to 'master'.
 source: <[email-masked]>

* js/merge-tree-3-trees (2024-01-29) 1 commit
  (merged to 'next' on 2024-01-30 at 0c77b04e59)
 + merge-tree: accept 3 trees as arguments

 "git merge-tree" has learned that the three trees involved in the
 3-way merge only need to be trees, not necessarily commits.

 Will merge to 'master'.
 source: <[email-masked]>

* jt/p4-spell-re-with-raw-string (2024-01-29) 1 commit
  (merged to 'next' on 2024-01-30 at 42b03b58eb)
 + git-p4: use raw string literals for regular expressions

 "git p4" update to squelch warnings from Python.

 Will merge to 'master'.
 source: <[email-masked]>

* kh/maintenance-use-xdg-when-it-should (2024-01-29) 1 commit
  (merged to 'next' on 2024-01-30 at c449ac74bf)
 + config: add back code comment

 Comment fix.

 Will merge to 'master'.
 source: <[email-masked]>

* mh/credential-oauth-refresh-token-with-wincred (2024-01-29) 1 commit
 - credential/wincred: store oauth_refresh_token

 Teach wincred credential backend to support oauth refresh token the
 same way as credential-cache and credential-libsecret backends.

 Will merge to 'next'.
 source: <[email-masked]>

* pb/complete-config (2024-01-29) 5 commits
 - completion: add an use _ _git_compute_second_level_config_vars_for_section
 - builtin/help: add --config-all-for-completion
 - completion: add and use _ _git_compute_first_level_config_vars_for_section
 - completion: complete 'submodule.*' config variables
 - completion: add space after config variable names also in Bash 3

 The command line completion script (in contrib/) learned to
 complete configuration variable names better.

 Needs review.
 source: <[email-masked]>

* rj/complete-reflog (2024-01-26) 4 commits
 - completion: reflog show <log-options>
 - completion: reflog with implicit "show"
 - completion: introduce __git_find_subcommand
 - completion: introduce __gitcomp_subcommand

 The command line completion script (in contrib/) learned to
 complete "git reflog" better.

 Needs review.
 source: <[email-masked]>

* rj/test-with-leak-check (2024-01-29) 4 commits
  (merged to 'next' on 2024-01-31 at 76e4596666)
 + t0080: mark as leak-free
 + test-lib: check for TEST_PASSES_SANITIZE_LEAK
 + t6113: mark as leak-free
 + t5332: mark as leak-free

 More tests that are supposed to pass leak sanitizer are marked as such.

 Will merge to 'master'.
 source: <[email-masked]>

* tb/pack-bitmap-drop-unused-struct-member (2024-01-29) 1 commit
  (merged to 'next' on 2024-01-30 at f3749b15fc)
 + pack-bitmap: drop unused `reuse_objects`

 Code clean-up.

 Will merge to 'master'.
 source: <[email-masked]>

* ps/reftable-compacted-tables-permission-fix (2024-01-26) 1 commit
  (merged to 'next' on 2024-01-29 at dbb06e1571)
 + reftable/stack: adjust permissions of compacted tables

 Reftable bugfix.

 Will merge to 'master'.
 source: <[email-masked]>

* jc/index-pack-fsck-levels (2024-02-01) 2 commits
  (merged to 'next' on 2024-02-02 at 0e4ef26aa1)
 + index-pack: --fsck-objects to take an optional argument for fsck msgs
 + index-pack: test and document --strict=<msg-id>=<severity>...

 The "--fsck-objects" option of "git index-pack" now can take the
 optional parameter to tweak severity of different fsck errors.

 Will merge to 'master'.
 source: <[email-masked]>

* ps/reftable-multi-level-indices-fix (2024-02-01) 6 commits
 - reftable: document reading and writing indices
 - reftable/writer: fix writing multi-level indices
 - reftable/writer: simplify writing index records
 - reftable/writer: use correct type to iterate through index entries
 - reftable/reader: be more careful about errors in indexed seeks
 - Merge branch 'jc/reftable-core-fsync' into ps/reftable-multi-level-indices-fix
 (this branch uses jc/reftable-core-fsync.)

 Write multi-level indices for reftable has been corrected.

 Needs review.
 source: <[email-masked]>

* jc/reftable-core-fsync (2024-01-30) 2 commits
  (merged to 'next' on 2024-01-30 at c3a79b6172)
 + reftable/stack: fsync "tables.list" during compaction
  (merged to 'next' on 2024-01-24 at cea12beddb)
 + reftable: honor core.fsync
 (this branch is used by ps/reftable-multi-level-indices-fix.)

 The write codepath for the reftable data learned to honor
 core.fsync configuration.

 Will merge to 'master'.
 source: <[email-masked]>

* cp/unit-test-prio-queue (2024-01-22) 1 commit
  (merged to 'next' on 2024-02-01 at 38aa6559b0)
 + tests: move t0009-prio-queue.sh to the new unit testing framework

 Migrate priority queue test to unit testing framework.

 Will merge to 'master'.
 source: <[email-masked]>

* ml/log-merge-with-cherry-pick-and-other-pseudo-heads (2024-01-17) 2 commits
 - revision: implement `git log --merge` also for rebase/cherry_pick/revert
 - revision: ensure MERGE_HEAD is a ref in prepare_show_merge

 "git log --merge" learned to pay attention to CHERRY_PICK_HEAD and
 other kinds of *_HEAD pseudorefs.

 Comments?
 source: <[email-masked]>

* kn/for-all-refs (2024-01-29) 4 commits
  (merged to 'next' on 2024-01-30 at e7a9234a8b)
 + for-each-ref: avoid filtering on empty pattern
 + refs: introduce `refs_for_each_all_refs()`
 + refs: extract out `loose_fill_ref_dir_regular_file()`
 + refs: introduce `is_pseudoref()` and `is_headref()`

 "git for-each-ref" filters its output with prefixes given from the
 command line, but it did not honor an empty string to mean "pass
 everything", which has been corrected.

 Will merge to 'master'.
 source: <[email-masked]>

* bk/complete-bisect (2024-01-29) 9 commits
 - SQUASH???
 - completion: add tests for git-bisect
 - completion: bisect: recognize but do not complete view subcommand
 - completion: bisect: complete log opts for visualize subcommand
 - completion: log: use __git_complete_log_opts
 - completion: new function __git_complete_log_opts
 - completion: bisect: complete missing --first-parent and --no-checkout options
 - completion: bisect: complete custom terms and related options
 - completion: bisect: complete bad, new, old, and help subcommands

 Command line completion support (in contrib/) has been
 updated for "git bisect".

 Comments?
 cf. <ZaofJhHsFjRxx7a3@tanuki>
 source: <[email-masked]>

* bk/complete-dirname-for-am-and-format-patch (2024-01-12) 1 commit
 - completion: dir-type optargs for am, format-patch

 Command line completion support (in contrib/) has been
 updated for a few commands to complete directory names where a
 directory name is expected.

 Needs review.
 source: <[email-masked]>

* bk/complete-send-email (2024-01-12) 1 commit
 - completion: don't complete revs when --no-format-patch

 Command line completion support (in contrib/) has been taught to
 avoid offering revision names as candidates to "git send-email" when
 the command is used to send pre-generated files.

 Needs review.
 source: <[email-masked]>

* la/trailer-api (2024-01-30) 10 commits
 - trailer: introduce "template" term for readability
 - trailer: delete obsolete argument handling code from API
 - trailer: move arg handling to interpret-trailers.c
 - trailer: prepare to move parse_trailers_from_command_line_args() to builtin
 - trailer: spread usage of "trailer_block" language
 - trailer: make trailer_info struct private
 - sequencer: use the trailer iterator
 - trailer: unify trailer formatting machinery
 - trailer: move interpret_trailers() to interpret-trailers.c
 - trailer: prepare to expose functions as part of API

 Code clean-up.

 Needs review.
 cf. <[email-masked]>
 source: <[email-masked]>

* ps/tests-with-ref-files-backend (2024-01-29) 6 commits
  (merged to 'next' on 2024-01-30 at 376b9c9c1b)
 + t: mark tests regarding git-pack-refs(1) to be backend specific
 + t5526: break test submodule differently
 + t1419: mark test suite as files-backend specific
 + t1302: make tests more robust with new extensions
 + t1301: mark test for `core.sharedRepository` as reffiles specific
 + t1300: make tests more robust with non-default ref backends
 (this branch is used by ps/reftable-backend.)

 Prepare existing tests on refs to work better with non-default
 backends.

 Will merge to 'master'.
 source: <[email-masked]>

* cp/apply-core-filemode (2023-12-26) 3 commits
 - apply: code simplification
 - apply: correctly reverse patch's pre- and post-image mode bits
 - apply: ignore working tree filemode when !core.filemode

 "git apply" on a filesystem without filemode support have learned
 to take a hint from what is in the index for the path, even when
 not working with the "--index" or "--cached" option, when checking
 the executable bit match what is required by the preimage in the
 patch.

 Needs review.
 source: <[email-masked]>

* ja/doc-placeholders-fix (2023-12-26) 2 commits
 - doc: enforce placeholders in documentation
 - doc: enforce dashes in placeholders

 Docfix.

 Will merge to 'next'.
 source: <[email-masked]>

* jc/bisect-doc (2023-12-09) 1 commit
 - bisect: document "terms" subcommand more fully

 Doc update.

 Needs review.
 source: <[email-masked]>

* tb/pair-chunk-expect (2023-11-10) 8 commits
 - midx: read `OOFF` chunk with `pair_chunk_expect()`
 - midx: read `OIDL` chunk with `pair_chunk_expect()`
 - commit-graph: read `BIDX` chunk with `pair_chunk_expect()`
 - commit-graph: read `GDAT` chunk with `pair_chunk_expect()`
 - commit-graph: read `CDAT` chunk with `pair_chunk_expect()`
 - commit-graph: read `OIDL` chunk with `pair_chunk_expect()`
 - chunk-format: introduce `pair_chunk_expect()` helper
 - Merge branch 'jk/chunk-bounds-more' into HEAD

 Further code clean-up.

 Needs review.
 source: <[email-masked]>

* tb/path-filter-fix (2024-01-31) 16 commits
 - bloom: introduce `deinit_bloom_filters()`
 - commit-graph: reuse existing Bloom filters where possible
 - object.h: fix mis-aligned flag bits table
 - commit-graph: new Bloom filter version that fixes murmur3
 - commit-graph: unconditionally load Bloom filters
 - bloom: prepare to discard incompatible Bloom filters
 - bloom: annotate filters with hash version
 - repo-settings: introduce commitgraph.changedPathsVersion
 - t4216: test changed path filters with high bit paths
 - t/helper/test-read-graph: implement `bloom-filters` mode
 - bloom.h: make `load_bloom_filter_from_graph()` public
 - t/helper/test-read-graph.c: extract `dump_graph_info()`
 - gitformat-commit-graph: describe version 2 of BDAT
 - commit-graph: ensure Bloom filters are read with consistent settings
 - revision.c: consult Bloom filters for root commits
 - t/t4216-log-bloom.sh: harden `test_bloom_filters_not_used()`

 The Bloom filter used for path limited history traversal was broken
 on systems whose "char" is unsigned; update the implementation and
 bump the format version to 2.
 source: <[email-masked]>

* ak/color-decorate-symbols (2023-10-23) 7 commits
 - log: add color.decorate.pseudoref config variable
 - refs: exempt pseudorefs from pattern prefixing
 - refs: add pseudorefs array and iteration functions
 - log: add color.decorate.ref config variable
 - log: add color.decorate.symbol config variable
 - log: use designated inits for decoration_colors
 - config: restructure color.decorate documentation

 A new config for coloring.

 Needs review.
 source: <[email-masked]>

* eb/hash-transition (2023-10-02) 30 commits
 - t1016-compatObjectFormat: add tests to verify the conversion between objects
 - t1006: test oid compatibility with cat-file
 - t1006: rename sha1 to oid
 - test-lib: compute the compatibility hash so tests may use it
 - builtin/ls-tree: let the oid determine the output algorithm
 - object-file: handle compat objects in check_object_signature
 - tree-walk: init_tree_desc take an oid to get the hash algorithm
 - builtin/cat-file: let the oid determine the output algorithm
 - rev-parse: add an --output-object-format parameter
 - repository: implement extensions.compatObjectFormat
 - object-file: update object_info_extended to reencode objects
 - object-file-convert: convert commits that embed signed tags
 - object-file-convert: convert commit objects when writing
 - object-file-convert: don't leak when converting tag objects
 - object-file-convert: convert tag objects when writing
 - object-file-convert: add a function to convert trees between algorithms
 - object: factor out parse_mode out of fast-import and tree-walk into in object.h
 - cache: add a function to read an OID of a specific algorithm
 - tag: sign both hashes
 - commit: export add_header_signature to support handling signatures on tags
 - commit: convert mergetag before computing the signature of a commit
 - commit: write commits for both hashes
 - object-file: add a compat_oid_in parameter to write_object_file_flags
 - object-file: update the loose object map when writing loose objects
 - loose: compatibilty short name support
 - loose: add a mapping between SHA-1 and SHA-256 for loose objects
 - repository: add a compatibility hash algorithm
 - object-names: support input of oids in any supported hash
 - oid-array: teach oid-array to handle multiple kinds of oids
 - object-file-convert: stubs for converting from one object format to another

 Teach a repository to work with both SHA-1 and SHA-256 hash algorithms.

 Needs review.
 source: <[email-masked]>

* jc/rerere-cleanup (2023-08-25) 4 commits
 - rerere: modernize use of empty strbuf
 - rerere: try_merge() should use LL_MERGE_ERROR when it means an error
 - rerere: fix comment on handle_file() helper
 - rerere: simplify check_one_conflict() helper function

 Code clean-up.

 Not ready to be reviewed yet.
 source: <[email-masked]>