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). Now Git 2.49 is out, we may see some regression reports, in which case we would have to first deal with them. I'll be on vacation for a few weeks, and will be back in early April. I may occasionally be online to merge some topics down but I will generally be much slower than usual during the latter half of this month. 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-scm/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/ -------------------------------------------------- [New Topics] * aj/doc-restore-p-update (2025-03-18) 1 commit - doc: restore: remove note on --patch w/ pathspecs Stale description in "git restore -p" documentation has been updated. Will merge to 'next'. source: <pull.1504.v2.git.git.1685654097812.gitgitgadget@xxxxxxxxx> * en/random-cleanups (2025-03-17) 5 commits (merged to 'next' on 2025-03-18 at 87acd24a85) + merge-ort: remove extraneous word in comment + merge-ort: fix accidental strset<->strintmap + t7615: be more explicit about diff algorithm used + t6423: fix a comment that accidentally reversed two commits + stash: remove merge-recursive.h include Miscellaneous code clean-ups. Will merge to 'master'. source: <pull.1882.git.1742108339.gitgitgadget@xxxxxxxxx> * es/meson-building-docs-requires-perl (2025-03-17) 1 commit (merged to 'next' on 2025-03-18 at 1c1d88dcb7) + meson: fix perl detection when docs are enabled, but perl bindings aren't Build update. Will merge to 'master'. source: <20250316060605.166364-1-eschwartz@xxxxxxxxxx> * hj/doc-rev-list-ancestry-fix (2025-03-18) 1 commit (merged to 'next' on 2025-03-18 at e94155a9ec) + doc: add missing commit C to the graph for --ancestry-path=H D..M Doc update. Will merge to 'master'. source: <pull.1883.git.1742089659610.gitgitgadget@xxxxxxxxx> * ja/doc-branch-markup (2025-03-17) 2 commits - doc: apply new format to git-branch man page - completion: take into account the formatting backticks for options Expecting a reroll to lose GNUism. cf. <2773494.mvXUDI8C0e@cayenne> source: <pull.1880.git.1742056310.gitgitgadget@xxxxxxxxx> * jc/ci-meson-check-build-docs-fix (2025-03-14) 1 commit - install meson for Documentation job (this branch uses ps/ci-meson-check-build-docs.) The documentation CI job tries to build test documentation pages with both make- and meson-based build procedures, but somehow forgot to install meson in the Ci environment, which has been corrected. Will discard. Karthik root-caused the issue. cf. <xmqqmsdi49h8.fsf_-_@gitster.g> cf. <CAOLa=ZRODjYfDXQ8m+hDosV7RBGDWeehzSvsR-+-HCmbS+tAcQ@xxxxxxxxxxxxxx> source: <20250314184130.GA578421@xxxxxxxxxxxxxxxxxxxxxxx> * ps/mingw-creat-excl-fix (2025-03-13) 2 commits - compat/mingw: fix EACCESS when opening files with `O_CREAT | O_EXCL` - compat/mingw: handle O_CLOEXEC in `mingw_open_existing()` Attempt to fix lockfile contention in reftable code on Windows. The second step needs rethinking. cf. <Z9g85X8sNqFOwRaU@xxxxxx> source: <20250313-b4-pks-mingw-lockfile-flake-v1-0-bc5d3e70f516@xxxxxx> * rs/xdiff-context-length-fix (2025-03-14) 1 commit (merged to 'next' on 2025-03-18 at aca4b320d2) + xdiff: avoid arithmetic overflow in xdl_get_hunk() The xdiff code on 32-bit platform misbehaved when an insanely large context size is given, which has been corrected. Will merge to 'master'. source: <4e9b6b4c-aaa1-4c6f-93f4-7bb04607e843@xxxxxx> * sj/meson-test-environ-fix (2025-03-14) 1 commit - meson: use test_environment conditionally. meson-based build procedure was overly aggressive in using test environment in two contrib/ directories, which was corrected. Needs review. source: <3d127f293818f935efdb9ca7bb556e6a8f233ef7.1741975557.git.sam@xxxxxxxxxx> * tb/combine-cruft-below-size (2025-03-17) 6 commits - repack: begin combining cruft packs with `--combine-cruft-below-size` - repack: avoid combining cruft packs with `--max-cruft-size` - t/t7704-repack-cruft.sh: consolidate `write_blob()` - t/t7704-repack-cruft.sh: clarify wording in --max-cruft-size tests - t/t5329-pack-objects-cruft.sh: evict 'repack'-related tests - Merge branch 'tb/multi-cruft-pack-refresh-fix' into tb/combine-cruft-below-size (this branch uses tb/multi-cruft-pack-refresh-fix.) "git repack" learned "--combine-cruft-below-size" option that controls how cruft-packs are combined. Needs review. source: <cover.1742252411.git.me@xxxxxxxxxxxx> * jh/hash-init-fixes (2025-03-18) 1 commit - index-pack, unpack-objects: restore missing ->init_fn An earlier code refactoring of the hash machinery missed a few required calls to init_fn. Needs review. source: <20250318111616.113941-1-hmz007@xxxxxxxxx> * jk/fetch-follow-remote-head-fix (2025-03-18) 3 commits - fetch: don't ask for remote HEAD if followRemoteHEAD is "never" - fetch: only respect followRemoteHEAD with configured refspecs - Merge branch 'jk/fetch-ref-prefix-cleanup' into jk/fetch-follow-remote-head-fix (this branch uses jk/fetch-ref-prefix-cleanup.) "git fetch [<remote>]" with only the configured fetch refspec should be the only thing to update refs/remotes/<remote>/HEAD, but the code was overly eager to do so in other cases. Will merge to 'next'? source: <20250318053905.GA2051217@xxxxxxxxxxxxxxxxxxxxxxx> * pw/build-breaking-changes-doc (2025-03-18) 1 commit - docs: add BreakingChanges to TECH_DOCS target A documentation page was left out from formatting and installation, which has been corrected. Will merge to 'next'. source: <pull.1921.git.git.1742308900290.gitgitgadget@xxxxxxxxx> * pw/doc-pack-refs-markup-fix (2025-03-18) 1 commit - pack-refs doc: fix indentation for --exclude Doc markup fix. Will merge to 'next'. source: <pull.1920.git.git.1742308828163.gitgitgadget@xxxxxxxxx> * sc/bundle-uri-use-all-refs-in-bundle (2025-03-18) 2 commits - bundle-uri: add test for bundle-uri clones with tags - bundle-uri: copy all bundle references ino the refs/bundle space Bundle-URI feature did not use refs recorded in the bundle other than normal branches as anchoring points to optimize the follow-up fetch during "git clone"; now it is told to utilize all. Comments? source: <pull.1897.v3.git.git.1742312173.gitgitgadget@xxxxxxxxx> -------------------------------------------------- [Cooking] * en/diff-rename-follow-fix (2025-03-14) 1 commit (merged to 'next' on 2025-03-18 at 56808a7eda) + diffcore-rename: fix BUG when break detection and --follow used together A corner-case bug in "git log --follow -B" has been fixed. Will merge to 'master'. source: <pull.1876.v2.git.1742000894041.gitgitgadget@xxxxxxxxx> * en/merge-ort-prepare-to-remove-recursive (2025-03-18) 6 commits (merged to 'next' on 2025-03-18 at a911944a1c) + am: switch from merge_recursive_generic() to merge_ort_generic() + merge-ort: fix merge.directoryRenames=false + t3650: document bug when directory renames are turned off + merge-ort: support having merge verbosity be set to 0 + merge-ort: allow rename detection to be disabled + merge-ort: add new merge_ort_generic() function First step of deprecating and removing merge-recursive. Will merge to 'master'. source: <pull.1875.v2.git.1741834001.gitgitgadget@xxxxxxxxx> * jk/use-wunreachable-code-for-devs (2025-03-17) 3 commits (merged to 'next' on 2025-03-18 at fe32168eef) + config.mak.dev: enable -Wunreachable-code + git-compat-util: add NOT_CONSTANT macro and use it in atfork_prepare() + run-command: use errno to check for sigfillset() error Enable -Wunreachable-code for developer builds. Will merge to 'master'. source: <20250317235329.809302-1-gitster@xxxxxxxxx> * ab/decorate-code-cleanup (2025-03-10) 1 commit (merged to 'next' on 2025-03-18 at 7ede1484eb) + decorate: fix sign comparison warnings Code clean-up. Will merge to 'master'. source: <7c219279-8151-49c0-8fc0-8abe2624aca9@xxxxxxxxx> * ds/path-walk-2 (2025-03-10) 13 commits - pack-objects: allow --shallow and --path-walk - path-walk: add new 'edge_aggressive' option - pack-objects: thread the path-based compression - pack-objects: refactor path-walk delta phase - scalar: enable path-walk during push via config - pack-objects: enable --path-walk via config - repack: add --path-walk option - t5538: add tests to confirm deltas in shallow pushes - pack-objects: introduce GIT_TEST_PACK_PATH_WALK - p5313: add performance tests for --path-walk - pack-objects: update usage to match docs - pack-objects: add --path-walk option - pack-objects: extract should_attempt_deltas() "git pack-objects" learns to find delta bases from blobs at the same path, using the --path-walk API. source: <pull.1819.git.1741571455.gitgitgadget@xxxxxxxxx> * ja/doc-block-delimiter-markup-fix (2025-03-10) 1 commit (merged to 'next' on 2025-03-11 at 8d6641a77e) + doc: add a blank line around block delimiters Doc markup updates. Will merge to 'master'. source: <pull.1878.git.1741549511665.gitgitgadget@xxxxxxxxx> * jc/name-rev-stdin (2025-03-12) 6 commits - name-rev: remove "--stdin" support - t6120: further modernize - t6120: avoid hiding "git" exit status - t: introduce WITH_BREAKING_CHANGES prerequisite - t: extend test_lazy_prereq - t: document test_lazy_prereq Using "git name-rev --stdin" as an example, improve the framework to prepare tests to pretend to be in the future where the breaking changes have already happened. Will merge to 'next'. source: <20250311212505.2920181-1-gitster@xxxxxxxxx> * jk/fetch-ref-prefix-cleanup (2025-03-10) 9 commits (merged to 'next' on 2025-03-18 at ab3e5cf19f) + fetch: use ref prefix list to skip ls-refs + fetch: avoid ls-refs only to ask for HEAD symref update + fetch: stop protecting additions to ref-prefix list + fetch: ask server to advertise HEAD for config-less fetch + refspec_ref_prefixes(): clean up refspec_item logic + t5516: beef up exact-oid ref prefixes test + t5516: drop NEEDSWORK about v2 reachability behavior + t5516: prefer "oid" to "sha1" in some test titles + t5702: fix typo in test name (this branch is used by jk/fetch-follow-remote-head-fix.) In protocol v2 where the refs advertisement is constrained, we try to tell the server side not to limit the advertisement when there is no specific need to, which has been the source of confusion and recent bugs. Revamp the logic to simplify. Will merge to 'master'. source: <20250309030101.GA2334064@xxxxxxxxxxxxxxxxxxxxxxx> * jt/rev-list-z (2025-03-13) 6 commits - rev-list: support NUL-delimited --missing option - rev-list: support NUL-delimited --boundary option - rev-list: support delimiting objects with NUL bytes - revision: support NUL-delimited --stdin mode - rev-list: refactor early option parsing - rev-list: inline `show_object_with_name()` in `show_object()` "git rev-list" learns machine-parsable output format that delimits each field with NUL. Will merge to 'next'? source: <20250313001706.3390502-1-jltobler@xxxxxxxxx> * kn/reflog-drop (2025-03-17) 2 commits - reflog: implement subcommand to drop reflogs - reflog: improve error for when reflog is not found "git reflog" learns "drop" subcommand, that discards the entire reflog data for a ref. Will merge to 'next'? source: <20250314-493-add-command-to-purge-reflog-entries-v3-0-c24e23a6146d@xxxxxxxxx> * am/dir-dedup-decl-of-repository (2025-03-11) 1 commit (merged to 'next' on 2025-03-18 at 9075454132) + dir.h: remove duplicate forward declaration of struct repository Code cleanup. Will merge to 'master'. source: <pull.1879.git.1741705175922.gitgitgadget@xxxxxxxxx> * cc/lop-remote (2025-03-18) 4 commits - promisor-remote: compare remote names case sensitively - promisor-remote: fix possible issue when no URL is advertised - promisor-remote: fix segfault when remote URL is missing - t5710: arrange to delete the client before cloning Bugfix in newly introduced large-object-promisor remote support. Will merge to 'next'. source: <20250318110008.656695-1-christian.couder@xxxxxxxxx> * ps/ci-meson-check-build-docs (2025-03-12) 1 commit - ci: perform build and smoke tests for Meson docs (this branch is used by jc/ci-meson-check-build-docs-fix.) CI update. On hold waiting for the fix-up to settle. source: <20250312-b4-pks-ci-meson-docs-v1-1-5e7cf7ac959a@xxxxxx> * ps/meson-with-breaking-changes (2025-03-12) 3 commits (merged to 'next' on 2025-03-18 at 15b1c62eff) + meson: don't install git-pack-redundant(1) docs with breaking changes + meson: don't compile git-pack-redundant(1) with breaking changes + meson: define WITH_BREAKING_CHANGES when enabling breaking changes Update meson based build procedure for breaking changes support. Will merge to 'master'. source: <20250312-b4-pks-meson-breaking-changes-v1-0-b89e9a59d228@xxxxxx> * md/t1403-path-is-file (2025-03-04) 1 commit - t1403: verify that path exists and is a file Test tweak. source: <20250304112728.41228-2-danimahendra0904@xxxxxxxxx> * sk/clar-trailer-urlmatch-norm-test (2025-03-04) 2 commits - t/unit-tests: convert urlmatch-normalization test to clar - t/unit-tests: convert trailer test to use clar A few traditional unit tests have been rewritten to use the clar framework. Comments? source: <20250304113323.10564-1-kuforiji98@xxxxxxxxx> * dm/completion-remote-names-fix (2025-03-18) 2 commits - completion: fix bugs with slashes in remote names - completion: add helper to count path components The bash command line completion script (in contrib/) has been updated to cope with remote repository nicknames with slashes in them. Will merge to 'next'. source: <1587533591c81d38977e62165784f8eb@xxxxxxxxxxxxxx> * tb/refs-exclude-fixes (2025-03-06) 2 commits (merged to 'next' on 2025-03-06 at 50707f29db) + refs.c: stop matching non-directory prefixes in exclude patterns + refs.c: remove empty '--exclude' patterns The refname exclusion logic in the packed-ref backend has been broken for some time, which confused upload-pack to advertise different set of refs. This has been corrected. Will merge to 'master'. source: <cover.1741275245.git.me@xxxxxxxxxxxx> * en/merge-process-renames-crash-fix (2025-03-06) 2 commits (merged to 'next' on 2025-03-06 at 8f38331e32) + merge-ort: fix slightly overzealous assertion for rename-to-self + t6423: add a testcase causing a failed assertion in process_renames The merge-recursive and merge-ort machinery crashed in corner cases when certain renames are involved. Will merge to 'master'. source: <pull.1873.git.1741275027.gitgitgadget@xxxxxxxxx> * kn/non-transactional-batch-updates (2025-03-12) 9 commits . update-ref: add --allow-partial flag for stdin mode . refs: support partial update rejections during F/D checks . refs: implement partial reference transaction support . refs: introduce enum-based transaction error types . refs/reftable: extract code from the transaction preparation . refs/files: remove duplicate duplicates check . refs: move duplicate refname update check to generic layer . refs/files: remove redundant check in split_symref_update() . Merge branch 'ps/refname-avail-check-optim' into kn/non-transactional-batch-updates (this branch uses ps/refname-avail-check-optim.) Updating multiple references have only been possible in all-or-none fashion with transactions, but it can be more efficient to batch multiple updates even when some of them are allowed to fail in a best-effort manner. A new "best effort batches of updates" mode has been introduced. Trips up -Wunreachable-code checker. source: <20250305-245-partially-atomic-ref-updates-v3-0-0c64e3052354@xxxxxxxxx> * ps/object-wo-the-repository (2025-03-10) 12 commits - hash: stop depending on `the_repository` in `null_oid()` - hash: fix "-Wsign-compare" warnings - object-file: split out logic regarding hash algorithms - delta-islands: stop depending on `the_repository` - object-file-convert: stop depending on `the_repository` - pack-bitmap-write: stop depending on `the_repository` - pack-revindex: stop depending on `the_repository` - pack-check: stop depending on `the_repository` - environment: move access to "core.bigFileThreshold" into repo settings - pack-write: stop depending on `the_repository` and `the_hash_algo` - object: stop depending on `the_repository` - csum-file: stop depending on `the_repository` The object layer has been updated to take an explicit repository instance as a parameter in more code paths. Looking good. source: <20250310-b4-pks-objects-without-the-repository-v4-0-f201b8ec57ba@xxxxxx> * ua/some-builtins-wo-the-repository (2025-03-07) 8 commits (merged to 'next' on 2025-03-07 at 01f2b84529) + builtin/checkout-index: stop using `the_repository` + builtin/for-each-ref: stop using `the_repository` + builtin/ls-files: stop using `the_repository` + builtin/pack-refs: stop using `the_repository` + builtin/send-pack: stop using `the_repository` + builtin/verify-commit: stop using `the_repository` + builtin/verify-tag: stop using `the_repository` + config: teach repo_config to allow `repo` to be NULL A handful of built-in command implementations have been rewritten to use the repository instance supplied by git.c:run_builtin(), its caller. Will merge to 'master'. source: <20250307233543.1721552-1-usmanakinyemi202@xxxxxxxxx> * ps/maintenance-reflog-expire (2025-02-26) 6 commits - builtin/maintenance: introduce "reflog-expire" task - builtin/gc: split out function to expire reflog entries - builtin/reflog: make functions regarding `reflog_expire_options` public - builtin/reflog: stop storing per-reflog expiry dates globally - builtin/reflog: stop storing default reflog expiry dates globally - reflog: rename `cmd_reflog_expire_cb` to `reflog_expire_options` "git maintenance" learns a new task to expire reflog entries. Needs (real) review. source: <20250226-pks-maintenance-reflog-expire-v1-0-a1204a814952@xxxxxx> * ps/refname-avail-check-optim (2025-03-12) 16 commits (merged to 'next' on 2025-03-18 at 726197f7e0) + refs: reuse iterators when determining refname availability + refs/iterator: implement seeking for files iterators + refs/iterator: implement seeking for packed-ref iterators + refs/iterator: implement seeking for ref-cache iterators + refs/iterator: implement seeking for reftable iterators + refs/iterator: implement seeking for merged iterators + refs/iterator: provide infrastructure to re-seek iterators + refs/iterator: separate lifecycle from iteration + refs: stop re-verifying common prefixes for availability + refs/files: batch refname availability checks for initial transactions + refs/files: batch refname availability checks for normal transactions + refs/reftable: batch refname availability checks + refs: introduce function to batch refname availability checks + builtin/update-ref: skip ambiguity checks when parsing object IDs + object-name: allow skipping ambiguity checks in `get_oid()` family + object-name: introduce `repo_get_oid_with_flags()` (this branch is used by kn/non-transactional-batch-updates.) The code paths to check whether a refname X is available (by seeing if another ref X/Y exists, etc.) have been optimized. Will merge to 'master'. source: <20250312-pks-update-ref-optimization-v6-0-f778e0414f55@xxxxxx> * tb/multi-cruft-pack-refresh-fix (2025-03-13) 1 commit (merged to 'next' on 2025-03-18 at e3f090e427) + builtin/pack-objects.c: freshen objects from existing cruft packs (this branch is used by tb/combine-cruft-below-size.) Certain "cruft" objects would have never been refreshed when there are multiple cruft packs in the repository, which has been corrected. Will merge to 'master'. source: <1563552bbda0bc910c9f41b0fabc3225c4d778fc.1741889018.git.me@xxxxxxxxxxxx> * jk/zlib-inflate-fixes (2025-02-25) 10 commits - unpack_loose_rest(): rewrite return handling for clarity - unpack_loose_rest(): simplify error handling - unpack_loose_rest(): never clean up zstream - unpack_loose_rest(): avoid numeric comparison of zlib status - unpack_loose_header(): avoid numeric comparison of zlib status - git_inflate(): skip zlib_post_call() sanity check on Z_NEED_DICT - unpack_loose_header(): fix infinite loop on broken zlib input - unpack_loose_header(): report headers without NUL as "bad" - unpack_loose_header(): simplify next_out assignment - loose_object_info(): BUG() on inflating content with unknown type Fix our use of zlib corner cases. Still being discussed. cf. <20250304065501.GB1283901@xxxxxxxxxxxxxxxxxxxxxxx> source: <20250225062518.GA1293854@xxxxxxxxxxxxxxxxxxxxxxx> * cc/signed-fast-export-import (2025-03-10) 6 commits (merged to 'next' on 2025-03-18 at d98973e2cb) + fast-export, fast-import: add support for signed-commits + fast-export: do not modify memory from get_commit_buffer + git-fast-export.adoc: clarify why 'verbatim' may not be a good idea + fast-export: rename --signed-tags='warn' to 'warn-verbatim' + fast-export: fix missing whitespace after switch + git-fast-import.adoc: add missing LF in the BNF "git fast-export | git fast-import" learns to deal with commit and tag objects with embedded signatures a bit better. Will merge to 'master'. cf. <CABPp-BGyA8iBA0BFO8FcpZAMca94aVu2vHHRi4Oz=nCWxJSDPg@xxxxxxxxxxxxxx> source: <20250310155746.879481-1-christian.couder@xxxxxxxxx> * jt/diff-pairs (2025-03-03) 4 commits (merged to 'next' on 2025-03-03 at 32346e0c3b) + builtin/diff-pairs: allow explicit diff queue flush + builtin: introduce diff-pairs command + diff: add option to skip resolving diff statuses + diff: return diff_filepair from diff queue helpers A post-processing filter for "diff --raw" output has been introduced. Will merge to 'master'. source: <20250228213346.1335224-1-jltobler@xxxxxxxxx> * ib/diff-S-G-with-longhand (2025-02-12) 10 commits - diff: docs: Use --patch-{grep,modifies} over -G/-S - diff: --pickaxe-{all,regex} help: Add --patch-{grep,modifies} - diff: test: Use --patch-{grep,modifies} over -G/-S - completion: Support --patch-{grep,modifies} - diff: --patch-{grep,modifies} arg names for -G and -S - docs: gitdiffcore: -G and -S: Use regex/string placeholders - diff: short help: Add -G and --pickaxe-grep - diff: short help: Correct -S description - diff: -G description: Correct copy/paste error - t/t4209-log-pickaxe: Naming typo: -G takes a regex The commands in the "diff" family learned longhands for "-S" and "-G" options. The core part looked mostly good. source: <20250212032657.1807939-1-illia.bobyr@xxxxxxxxx> * ps/reftable-windows-unlink-fix (2025-02-18) 2 commits - reftable: ignore file-in-use errors when unlink(3p) fails on Windows - Merge branch 'ps/reftable-sans-compat-util' into ps/reftable-windows-unlink-fix (this branch uses ps/reftable-sans-compat-util.) Portability fix. Waiting for the base topic to settle. source: <20250206-b4-pks-reftable-win32-in-use-errors-v2-1-56985a4f6186@xxxxxx> * ps/reftable-sans-compat-util (2025-02-18) 18 commits - Makefile: skip reftable library for Coccinelle - reftable: decouple from Git codebase by pulling in "compat/posix.h" - git-compat-util.h: split out POSIX-emulating bits - compat/mingw: split out POSIX-related bits - reftable/basics: introduce `REFTABLE_UNUSED` annotation - reftable/basics: stop using `SWAP()` macro - reftable/stack: stop using `sleep_millisec()` - reftable/system: introduce `reftable_rand()` - reftable/reader: stop using `ARRAY_SIZE()` macro - reftable/basics: provide wrappers for big endian conversion - reftable/basics: stop using `st_mult()` in array allocators - reftable: stop using `BUG()` in trivial cases - reftable/record: don't `BUG()` in `reftable_record_cmp()` - reftable/record: stop using `BUG()` in `reftable_record_init()` - reftable/record: stop using `COPY_ARRAY()` - reftable/blocksource: stop using `xmmap()` - reftable/stack: stop using `write_in_full()` - reftable/stack: stop using `read_in_full()` (this branch is used by ps/reftable-windows-unlink-fix.) Make the code in reftable library less reliant on the service routines it used to borrow from Git proper, to make it easier to use by external users of the library. Waiting for Acks, especially for Windows bits? source: <20250218-pks-reftable-drop-git-compat-util-v6-0-8c1f39fb4c02@xxxxxx> * sj/ref-consistency-checks-more (2025-02-27) 9 commits (merged to 'next' on 2025-03-05 at 6bea9376c4) + builtin/fsck: add `git refs verify` child process + packed-backend: check whether the "packed-refs" is sorted + packed-backend: add "packed-refs" entry consistency check + packed-backend: check whether the refname contains NUL characters + packed-backend: add "packed-refs" header consistency check + packed-backend: check if header starts with "# pack-refs with: " + packed-backend: check whether the "packed-refs" is regular file + builtin/refs: get worktrees without reading head information + t0602: use subshell to ensure working directory unchanged "git fsck" becomes more careful when checking the refs. Will merge to 'master'. source: <Z8CMx7O19PMs9sVY@ArchLinux> * jc/doc-attr-tree (2024-12-14) 1 commit - doc: give attr.tree a bit more visibility Make sure that "git --attr-source=X", GIT_ATTR_SOURCE, and attr.tree configuration variables appear at the same places in the documentation. On hold. cf. <20241216111112.GA2201417@xxxxxxxxxxxxxxxxxxxxxxx> source: <xmqq5xnladwi.fsf@gitster.g> * tb/incremental-midx-part-2 (2025-03-14) 13 commits - midx: implement writing incremental MIDX bitmaps - pack-bitmap.c: use `ewah_or_iterator` for type bitmap iterators - pack-bitmap.c: keep track of each layer's type bitmaps - ewah: implement `struct ewah_or_iterator` - pack-bitmap.c: apply pseudo-merge commits with incremental MIDXs - pack-bitmap.c: compute disk-usage with incremental MIDXs - pack-bitmap.c: teach `rev-list --test-bitmap` about incremental MIDXs - pack-bitmap.c: support bitmap pack-reuse with incremental MIDXs - pack-bitmap.c: teach `show_objects_for_type()` about incremental MIDXs - pack-bitmap.c: teach `bitmap_for_commit()` about incremental MIDXs - pack-bitmap.c: open and store incremental bitmap layers - pack-revindex: prepare for incremental MIDX bitmaps - Documentation: describe incremental MIDX bitmaps Incrementally updating multi-pack index files. Will merge to 'next'. source: <cover.1741983492.git.me@xxxxxxxxxxxx> * ej/cat-file-remote-object-info (2025-02-24) 8 commits - cat-file: add remote-object-info to batch-command - transport: add client support for object-info - serve: advertise object-info feature - fetch-pack: move fetch initialization - fetch-pack: refactor packet writing - t1006: split test utility functions into new "lib-cat-file.sh" - cat-file: add declaration of variable i inside its for loop - git-compat-util: add strtoul_ul() with error handling "git cat-file --batch" and friends can optionally ask a remote server about objects it does not have. source: <20250221190451.12536-1-eric.peijian@xxxxxxxxx>