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-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/ -------------------------------------------------- [Graduated to 'master'] * js/bundle-unbundle-fd-reuse-fix (2025-01-25) 1 commit (merged to 'next' on 2025-01-29 at e490587933) + bundle: avoid closing file descriptor twice The code path used when "git fetch" fetches from a bundle file closed the same file descriptor twice, which sometimes broke things unexpectedly when the file descriptor was reused, which has been corrected. source: <pull.1857.git.1737849456338.gitgitgadget@xxxxxxxxx> * ps/ci-misc-updates (2025-01-10) 10 commits (merged to 'next' on 2025-01-29 at 4d2f9d7f18) + ci: remove stale code for Azure Pipelines + ci: use latest Ubuntu release + ci: stop special-casing for Ubuntu 16.04 + gitlab-ci: add linux32 job testing against i386 + gitlab-ci: remove the "linux-old" job + github: simplify computation of the job's distro + github: convert all Linux jobs to be containerized + github: adapt containerized jobs to be rootless + t7422: fix flaky test caused by buffered stdout + t0060: fix EBUSY in MinGW when setting up runtime prefix (this branch is used by jk/ci-coverity-update.) CI updates (containerization, dropping stale ones, etc.). source: <20250110-b4-pks-ci-fixes-v4-0-6e4613446080@xxxxxx> * ps/leakfixes-0129 (2025-01-30) 2 commits (merged to 'next' on 2025-01-30 at 6dc24dfdaf) + scalar: free result of `remote_default_branch()` + unix-socket: fix memory leak when chdir(3p) fails A few more leakfixes. source: <20250130-b4-pks-memory-leaks-v2-0-fc29dc7d4b19@xxxxxx> * ps/zlib-ng (2025-01-28) 12 commits (merged to 'next' on 2025-01-30 at ecf8e8bbef) + ci: make "linux-musl" job use zlib-ng + ci: switch linux-musl to use Meson + compat/zlib: allow use of zlib-ng as backend + git-zlib: cast away potential constness of `next_in` pointer + compat/zlib: provide stubs for `deflateSetHeader()` + compat/zlib: provide `deflateBound()` shim centrally + git-compat-util: move include of "compat/zlib.h" into "git-zlib.h" + compat: introduce new "zlib.h" header + git-compat-util: drop `z_const` define + compat: drop `uncompress2()` compatibility shim + Merge branch 'ps/build-meson-fixes' into ps/zlib-ng + Merge branch 'ps/meson-weak-sha1-build' into ps/zlib-ng The code paths to interact with zlib has been cleaned up in preparation for building with zlib-ng. source: <20250128-b4-pks-compat-drop-uncompress2-v4-0-129bc36ae8f5@xxxxxx> -------------------------------------------------- [New Topics] * jt/rev-list-missing-print-info (2025-02-05) 2 commits - rev-list: extend print-info to print missing object type - rev-list: add print-info action to print missing object path "git rev-list --missing=" learned to accept "print-info" that gives known details expected of the missing objects, like path and type. Will merge to 'next'. cf. <CAP8UFD31kbtqXQDp9LyA+x+h+m592=HQHHbskSfar3S2GOfWVg@xxxxxxxxxxxxxx> source: <20250205004147.887106-1-jltobler@xxxxxxxxx> * pw/rebase-i-ff-empty-commit (2025-02-05) 1 commit - rebase -i: reword empty commit after fast-forward "git rebase -i" failed to allow rewording an empty commit that has been fast-forwarded. Expecting a reroll. cf. <xmqqtt98nt89.fsf@gitster.g> source: <pull.1860.git.1738751840816.gitgitgadget@xxxxxxxxx> * ib/diff-S-G-with-longhand (2025-02-06) 1 commit - diff: --patch-{modifies,grep} arg names for -S and -G The commands in the "diff" family learned longhands for "-S" and "-G" options. Expecting a reroll. cf. <xmqqseoqiybi.fsf@gitster.g> source: <20250206014324.1839232-2-illia.bobyr@xxxxxxxxx> * ps/doc-http-upload-archive-service (2025-02-06) 1 commit (merged to 'next' on 2025-02-06 at dd19c245e9) + doc: documentation for http.uploadarchive config option Doc update. Will merge to 'master'. source: <pull.1885.v2.git.git.1738863927849.gitgitgadget@xxxxxxxxx> * ps/reftable-windows-unlink-fix (2025-02-07) 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. source: <20250206-b4-pks-reftable-win32-in-use-errors-v2-1-56985a4f6186@xxxxxx> -------------------------------------------------- [Cooking] * jk/ci-coverity-update (2025-02-03) 2 commits (merged to 'next' on 2025-02-03 at 9597182d1d) + ci: set CI_JOB_IMAGE for coverity job + Merge branch 'ps/ci-misc-updates' into jk/ci-coverity-update CI update to make Coverity job work again. Will merge to 'master'. source: <20250131233015.GA3544301@xxxxxxxxxxxxxxxxxxxxxxx> * ps/repack-keep-unreachable-in-unpacked-repo (2025-02-04) 1 commit (merged to 'next' on 2025-02-04 at 96a862b6f8) + builtin/repack: fix `--keep-unreachable` when there are no packs "git repack --keep-unreachable" to send unreachable objects to the main pack "git repack -ad" produces did not work when there is no existing packs, which has been corrected. Will merge to 'master'. source: <20250204-b4-pks-repack-unreachable-objects-wo-packfiles-v2-1-1eae23366711@xxxxxx> * ac/t5401-use-test-path-is-file (2025-02-03) 1 commit (merged to 'next' on 2025-02-04 at 6bd1c91b06) + t5401: prefer test_path_is_* helper function Test clean-up. Will merge to 'master'. source: <20250201071210.30509-1-amch9605@xxxxxxxxx> * ac/t6423-unhide-git-exit-status (2025-02-03) 1 commit (merged to 'next' on 2025-02-04 at 5290fb63c2) + t6423: fix suppression of Git’s exit code in tests Test clean-up. Will merge to 'master'. source: <20250202120926.322417-1-ayu.chandekar@xxxxxxxxx> * bc/contrib-thunderbird-patch-inline-fix (2025-02-04) 1 commit - thunderbird-patch-inline: avoid bashism A thunderbird helper script lost its bashism. Expecting a reroll. cf. <Z6F-ySoYbDJxJ3xs@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> source: <20250204014652.3509928-1-sandals@xxxxxxxxxxxxxxxxxxxx> * da/help-autocorrect-one-fix (2025-02-03) 3 commits (merged to 'next' on 2025-02-05 at 74a3c43834) + help: add "show" as a valid configuration value + help: show the suggested command when help.autocorrect is false + Merge branch 'sc/help-autocorrect-one' into da/help-autocorrect-one-fix (this branch uses sc/help-autocorrect-one.) "git -c help.autocorrect=0 psuh" shows the suggested typofix, unlike the previous attempt in the base topic. Will merge to 'master'. source: <pull.1869.v4.git.git.1736760824201.gitgitgadget@xxxxxxxxx> * ms/remote-valid-remote-name (2025-02-04) 1 commit (merged to 'next' on 2025-02-05 at 3d58d63932) + remote: relocate valid_remote_name Code shuffling. Will merge to 'master'. source: <20250204142852.13035-1-meetsoni3017@xxxxxxxxx> * da/difftool-sans-the-repository (2025-02-06) 3 commits - difftool: eliminate use of USE_THE_REPOSITORY_VARIABLE - difftool: eliminate use of the_repository - difftool: eliminate use of global variables "git difftool" code clean-up. Will merge to 'next'. cf. <xmqq4j15hch1.fsf@gitster.g> source: <20250206042010.865947-3-davvid@xxxxxxxxx> * ps/build-meson-fixes-0130 (2025-01-30) 14 commits - gitlab-ci: restrict maximum number of link jobs on Windows - meson: consistently use custom program paths to resolve programs - meson: fix overwritten `git` variable - meson: prevent finding sed(1) in a loop - meson: improve handling of `sane_tool_path` option - meson: improve PATH handling - meson: drop separate version library - meson: stop linking libcurl into all executables - meson: introduce `libgit_curl` dependency - meson: simplify use of the common-main library - meson: inline the static 'git' library - meson: fix OpenSSL fallback when not explicitly required - meson: fix exec path with enabled runtime prefix - Merge branch 'ps/build-meson-fixes' into ps/build-meson-fixes-0130 Assorted fixes and improvements to the build procedure based on meson. Needs review. source: <20250130-b4-pks-meson-improvements-v2-0-2f05581ffb44@xxxxxx> * ps/setup-reinit-fixes (2025-01-30) 3 commits (merged to 'next' on 2025-02-03 at b4eb8f2fc8) + setup: fix reinit of repos with incompatible GIT_DEFAULT_HASH + setup: fix reinit of repos with incompatible GIT_DEFAULT_REF_FORMAT + t0001: remove duplicate test "git init" to reinitialize a repository that already exists cannot change the hash function and ref backends; such a request is silently ignored now. Will merge to 'master'. source: <20250130-b4-pks-reinit-default-ref-format-v1-0-d2769ca01207@xxxxxx> * pw/apply-ulong-overflow-check (2025-01-30) 1 commit (merged to 'next' on 2025-02-03 at e2b37c2c77) + apply: detect overflow when parsing hunk header "git apply" internally uses unsigned long for line numbers and uses strtoul() to parse numbers on the hunk headers. It however forgot to check parse errors. Will merge to 'master'. source: <pull.1858.git.1738235310815.gitgitgadget@xxxxxxxxx> * sk/unit-tests-0130 (2025-01-31) 4 commits (merged to 'next' on 2025-02-03 at 163109072c) + t/unit-tests: convert strcmp-offset test to use clar test framework + t/unit-tests: convert strbuf test to use clar test framework + t/unit-tests: adapt example decorate test to use clar test framework + t/unit-tests: convert hashmap test to use clar test framework Convert a handful of unit tests to work with the clar framework. Will merge to 'master'. source: <20250131221420.38161-1-kuforiji98@xxxxxxxxx> * jt/gitlab-ci-base-fix (2025-01-31) 1 commit (merged to 'next' on 2025-02-03 at bf225248c9) + ci: fix base commit fallback for check-whitespace and check-style Two CI tasks, whitespace check and style check, work on the difference from the base version and the version being checked, but the base was computed incorrectly in GitLab CI in some cases, which has been corrected. Will merge to 'master'. source: <20250131173938.3592899-1-jltobler@xxxxxxxxx> * op/worktree-is-main-bare-fix (2025-02-05) 1 commit (merged to 'next' on 2025-02-06 at 25c618bf37) + worktree: detect from secondary worktree if main worktree is bare Going into a secondary worktree and asking "is the main worktree bare?" did not work correctly when per-worktree configuration option was in use, which has been corrected. Will merge to 'master'. source: <pull.1829.v4.git.1738737014194.gitgitgadget@xxxxxxxxx> * ps/hash-cleanup (2025-01-31) 5 commits (merged to 'next' on 2025-02-03 at 98bdef7666) + global: adapt callers to use generic hash context helpers + hash: provide generic wrappers to update hash contexts + hash: stop typedeffing the hash context + hash: convert hashing context to a structure + Merge branch 'tb/unsafe-hash-cleanup' into ps/hash-cleanup Further code clean-up on the use of hash functions. Now the context object knows what hash function it is working with. Will merge to 'master'. source: <20250131-b4-pks-hash-context-direct-v1-0-67a6d3f49d6e@xxxxxx> * tc/clone-single-revision (2025-02-06) 7 commits (merged to 'next' on 2025-02-06 at d67b50d35c) + builtin/clone: teach git-clone(1) the --revision= option + parse-options: introduce die_for_incompatible_opt2() + clone: introduce struct clone_opts in builtin/clone.c + clone: add tags refspec earlier to fetch refspec + clone: refactor wanted_peer_refs() + clone: make it possible to specify --tags + clone: cut down on global variables in clone.c "git clone" learned to make a shallow clone for a single commit that is not necessarily be at the tip of any branch. Will merge to 'master'. cf. <xmqq4j16kefu.fsf@gitster.g> source: <20250206-toon-clone-refs-v7-0-4622b7392202@xxxxxxxxx> * jp/doc-trailer-config (2025-01-24) 1 commit (merged to 'next' on 2025-02-05 at 7bbd51e504) + config.txt: add trailer.* variables Documentaiton updates. Will merge to 'master'. source: <pull.1871.git.git.1736429142334.gitgitgadget@xxxxxxxxx> * ms/refspec-cleanup (2025-02-04) 5 commits (merged to 'next' on 2025-02-05 at 5b53c49215) + refspec: relocate apply_refspecs and related funtions + refspec: relocate matching related functions + remote: rename query_refspecs functions + refspec: relocate refname_matches_negative_refspec_item + remote: rename function omit_name_by_refspec Code clean-up. Will merge to 'master'. cf. <Z6G-toOJjMmK8iJG@xxxxxx> source: <20250204040558.34766-1-meetsoni3017@xxxxxxxxx> * ps/reftable-sans-compat-util (2025-02-07) 19 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()` - Merge branch 'ps/reftable-sign-compare' into ps/reftable-sans-compat-util (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? Otherwise looking good. cf. <Z6MNRVrhw3Nxz6Iw@xxxxxx> source: <20250207-pks-reftable-drop-git-compat-util-v5-0-ba2adc79110f@xxxxxx> * ac/doc-http-ssl-type-config (2025-02-05) 1 commit - docs: indicate http.sslCertType and sslKeyType Two configuration variables about SSL authentication material that weren't mentioned in the documentations are now mentioned. Will merge to 'next'? source: <20250205053856.72723-1-andrew@xxxxxxxxxxxxxxx> * bc/doc-adoc-not-txt (2025-01-21) 5 commits (merged to 'next' on 2025-01-24 at 737049d332) + Remove obsolete ".txt" extensions for AsciiDoc files + doc: use .adoc extension for AsciiDoc files + gitattributes: mark AsciiDoc files as LF-only + editorconfig: add .adoc extension + doc: update gitignore for .adoc extension All the documentation .txt files have been renamed to .adoc to help content aware editors. Will cook in 'next' for at least 3 weeks til mid Feb 2025. cf. <xmqqmsfl2gro.fsf@gitster.g> source: <20250120015603.1980991-1-sandals@xxxxxxxxxxxxxxxxxxxx> * js/libgit-rust (2025-01-29) 4 commits (merged to 'next' on 2025-02-05 at ac1fefbba1) + libgit: add higher-level libgit crate + libgit-sys: also export some config_set functions + libgit-sys: introduce Rust wrapper for libgit.a + common-main: split init and exit code into new files Foreign language interface for Rust into our code base has been added. Will merge to 'master'. source: <cover.1738187176.git.steadmon@xxxxxxxxxx> * zh/gc-expire-to (2025-01-24) 1 commit (merged to 'next' on 2025-02-05 at e075d609ae) + gc: add `--expire-to` option "git gc" learned the "--expire-to" option and passes it down to underlying "git repack". Will merge to 'master'. source: <pull.1843.v4.git.1737704954987.gitgitgadget@xxxxxxxxx> * kn/reflog-migration-fix-followup (2025-01-22) 4 commits (merged to 'next' on 2025-02-06 at 1b0fc3be42) + reftable: prevent 'update_index' changes after adding records + refs: use 'uint64_t' for 'ref_update.index' + refs: mark `ref_transaction_update_reflog()` as static + Merge branch 'kn/reflog-migration-fix' into kn/reflog-migration-fix-followup Code clean-up. Will merge to 'master'. cf. <Z6MNRVrhw3Nxz6Iw@xxxxxx> source: <20250122-461-corrupted-reftable-followup-v3-0-ae5f88bf04fa@xxxxxxxxx> * bf/fetch-set-head-fix (2025-01-27) 2 commits (merged to 'next' on 2025-02-06 at 9d20f0b55a) + fetch set_head: fix non-mirror remotes in bare repositories + fetch set_head: refactor to use remote directly Fetching into a bare repository incorrectly assumed it always used a mirror layout when deciding to update remote-tracking HEAD, which has been corrected. Will merge to 'master'. cf. <Z6MNRVrhw3Nxz6Iw@xxxxxx> source: <Z5Mrk02wMdABtrVZ@xxxxxx> * sj/ref-consistency-checks-more (2025-02-06) 8 commits - 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 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. Comments? source: <Z6RPJI10-2QkwyqH@ArchLinux> * sc/help-autocorrect-one (2025-01-13) 1 commit (merged to 'next' on 2025-02-05 at 1ecb7c7c9c) + help: interpret boolean string values for help.autocorrect (this branch is used by da/help-autocorrect-one-fix.) "[help] autocorrect = 1" used to be a way to say "please wait for 0.1 second after suggesting a typofix of the command name before running that command"; now it means "yes, if there is a plausible typofix for the command name, please run it immediately". Will merge together with da/help-autocorrect-one-fix to 'master'. source: <pull.1869.v4.git.git.1736760824201.gitgitgadget@xxxxxxxxx> * ua/os-version-capability (2025-02-05) 6 commits - agent: advertise OS name via agent capability - t5701: add setup test to remove side-effect dependency - version: extend get_uname_info() to hide system details - version: refactor get_uname_info() - version: refactor redact_non_printables() - version: replace manual ASCII checks with isprint() for clarity The value of "uname -s" is by default sent over the wire as a new capability, with an opt-out for privacy-concious folks. Under discussion. source: <20250205185246.111447-1-usmanakinyemi202@xxxxxxxxx> * 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> * cc/lop-remote (2025-01-27) 6 commits - doc: add technical design doc for large object promisors - promisor-remote: check advertised name or URL - Add 'promisor-remote' capability to protocol v2 - version: make redact_non_printables() non-static - version: refactor redact_non_printables() - version: replace manual ASCII checks with isprint() for clarity Needs review. source: <20250127151701.2321341-1-christian.couder@xxxxxxxxx> * ds/backfill (2025-02-03) 7 commits - backfill: assume --sparse when sparse-checkout is enabled - backfill: add --sparse option - backfill: add --min-batch-size=<n> option - backfill: basic functionality and tests - backfill: add builtin boilerplate - Merge branch 'master' into ds/backfill - Merge branch 'ds/path-walk-1' into ds/backfill Lazy-loading missing files in a blobless clone on demand is costly as it tends to be one-blob-at-a-time. "git backfill" is introduced to help bulk-download necessary files beforehand. Will merge to 'next'. cf. <Z6MQK6anxpMhlL9i@xxxxxx> source: <pull.1820.v3.git.1738602667.gitgitgadget@xxxxxxxxx> * tb/incremental-midx-part-2 (2024-11-20) 15 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 - Merge branch 'tb/pseudo-merge-bitmap-fixes' into tb/incremental-midx-part-2 - Merge branch 'tb/incremental-midx-part-1' into tb/incremental-midx-part-2 Incrementally updating multi-pack index files. Needs review. source: <cover.1732054032.git.me@xxxxxxxxxxxx> * ps/send-pack-unhide-error-in-atomic-push (2025-02-03) 8 commits - send-pack: gracefully close the connection for atomic push - t5543: atomic push reports exit code failure - send-pack: new return code "ERROR_SEND_PACK_BAD_REF_STATUS" - t5548: add porcelain push test cases for dry-run mode - t5548: add new porcelain test cases - t5548: refactor test cases by resetting upstream - t5548: refactor to reuse setup_upstream() function - t5504: modernize test by moving heredocs into test bodies "git push --atomic --porcelain" used to ignore failures from the other side, losing the error status from the child process, which has been corrected. Will merge to 'next'. cf. <xmqqh65azk3a.fsf@gitster.g> source: <20250203-pks-push-atomic-respect-exit-code-v5-0-d66481e36622@xxxxxx> * ds/name-hash-tweaks (2025-01-27) 7 commits (merged to 'next' on 2025-02-04 at d83bc700a7) + pack-objects: prevent name hash version change + test-tool: add helper for name-hash values + p5313: add size comparison test + pack-objects: add GIT_TEST_NAME_HASH_VERSION + repack: add --name-hash-version option + pack-objects: add --name-hash-version option + pack-objects: create new name-hash function version "git pack-objects" and its wrapper "git repack" learned an option to use an alternative path-hash function to improve delta-base selection to produce a packfile with deeper history than window size. Will merge to 'master'. cf. <Z51DHdS8SStRGalX@nand.local> source: <pull.1823.v4.git.1738004554.gitgitgadget@xxxxxxxxx> * ej/cat-file-remote-object-info (2025-01-14) 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. Comments? source: <20250114021502.41499-1-eric.peijian@xxxxxxxxx> * sk/maintenance-remote-prune (2025-01-03) 1 commit . maintenance: add prune-remote-refs task A new periodic maintenance task to run "git remote prune" has been introduced. Will discard. Has been expecting a reroll for too long. source: <pull.1838.v3.git.1735928035056.gitgitgadget@xxxxxxxxx>