diff --git a/whats-cooking.txt b/whats-cooking.txt index b4432e314b..563bb068b6 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org -Subject: What's cooking in git.git (Oct 2025, #11; Tue, 28) -X-master-at: 57da342c786f59eaeb436c18635cc1c7597733d9 -X-next-at: a50a493c49d755bf293be8b21ea65208572816ae +Subject: What's cooking in git.git (Oct 2025, #12; Thu, 30) +X-master-at: a99f379adf116d53eb11957af5bab5214915f91d +X-next-at: c1ab5b90caafe0e01395e0937868c10fd1c06ddf Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Oct 2025, #11; Tue, 28) +What's cooking in git.git (Oct 2025, #12; Thu, 30) -------------------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -48,245 +48,15 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* cc/fast-import-strip-signed-tags (2025-10-13) 5 commits - (merged to 'next' on 2025-10-22 at c25f8aa54a) - + fast-import: add '--signed-tags=' option - + fast-export: handle all kinds of tag signatures - + t9350: properly count annotated tags - + lib-gpg: allow tests with GPGSM or GPGSSH prereq first - + doc: git-tag: stop focusing on GPG signed tags - - "git fast-import" is taught to handle signed tags, just like it - recently learned to handle signed commits, in different ways. - - source: <20251013084857.1646783-1-christian.couder@gmail.com> - - -* ds/sparse-checkout-clean (2025-10-20) 8 commits - (merged to 'next' on 2025-10-20 at afc50f3401) - + sparse-index: improve advice message instructions - (merged to 'next' on 2025-09-25 at 00b296f153) - + t: expand tests around sparse merges and clean - + sparse-index: point users to new 'clean' action - + sparse-checkout: add --verbose option to 'clean' - + dir: add generic "walk all files" helper - + sparse-checkout: match some 'clean' behavior - + sparse-checkout: add basics of 'clean' command - + sparse-checkout: remove use of the_repository - - "git sparse-checkout" subcommand learned a new "clean" action to - prune otherwise unused working-tree files that are outside the - areas of interest. - - source: - - -* ps/ci-rust (2025-10-14) 8 commits - (merged to 'next' on 2025-10-22 at 89129fa777) - + rust: support for Windows - + ci: verify minimum supported Rust version - + ci: check for common Rust mistakes via Clippy - + rust/varint: add safety comments - + ci: check formatting of our Rust code - + ci: deduplicate calls to `apt-get update` - + Merge branch 'ps/gitlab-ci-windows-improvements' into ps/ci-rust - + Merge branch 'ps/rust-balloon' into ps/ci-rust - (this branch is used by ps/rust-cbindgen and qj/doc-first-contrib-check-lore.) - - CI improvements to handle the recent Rust integration better. - - source: <20251015-b4-pks-ci-rust-v3-0-13810af33bd5@pks.im> - --------------------------------------------------- -[New Topics] - -* qj/doc-my1stcontrib-email-verify (2025-10-27) 1 commit - - MyFirstContribution: add note on confirming patches - - The "MyFirstContribution" tutorial tells the reader how to send out - their patches; the section gained a hint to verify the message - reached the mailing list. - - Will merge to 'next'. - source: <20251027111600.1481-1-qjessa662@gmail.com> - - -* xr/ref-debug-remove-on-disk (2025-10-24) 1 commit - - refs: add missing remove_on_disk implementation for debug backend - - The "debug" ref-backend was missing a method implementation, which - has been corrected. - - Will merge to 'next'. - source: - - -* ad/blame-diff-algorithm (2025-10-28) 1 commit - - blame: make diff algorithm configurable - - source: - - -* cc/fast-import-export-i18n-cleanup (2025-10-28) 5 commits - - gpg-interface: mark a string for translation - - fast-import: mark strings for translation - - fast-export: mark strings for translation - - gpg-interface: use left shift to define GPG_VERIFY_* - - gpg-interface: simplify ssh fingerprint parsing - - source: <20251028081232.3068147-1-christian.couder@gmail.com> - - -* eb/t1016-hash-transition-fix (2025-10-28) 1 commit - - t1016-compatObjectFormat: really freeze time for reproduciblity - - source: <87frb310d2.fsf_-_@email.froward.int.ebiederm.org> - - -* ps/packed-git-in-object-store (2025-10-28) 9 commits - - packfile: track packs via the MRU list exclusively - - packfile: always add packfiles to MRU when adding a pack - - packfile: move list of packs into the packfile store - - builtin/pack-objects: simplify logic to find kept or nonlocal objects - - packfile: fix approximation of object counts - - http: refactor subsystem to use `packfile_list`s - - packfile: move the MRU list into the packfile store - - packfile: use a `strmap` to store packs by name - - Merge branch 'ps/remove-packfile-store-get-packs' into ps/packed-git-in-object-store - (this branch uses ps/remove-packfile-store-get-packs and tb/incremental-midx-part-3.1.) - - source: <20251028-pks-packfiles-store-drop-list-v1-0-1a3b82030a7a@pks.im> - --------------------------------------------------- -[Cooking] - -* tu/credential-install (2025-10-25) 1 commit - (merged to 'next' on 2025-10-28 at 43589c4832) - + contrib/credential: add install target - - Contributed credential helpers (obviously in contrib/) now have "cd - $there && make install" target. - - Will merge to 'master'. - source: - - -* jk/diff-patch-dry-run-cleanup (2025-10-24) 6 commits - (merged to 'next' on 2025-10-26 at 28426e9102) - + diff: simplify run_external_diff() quiet logic - + diff: drop dry-run redirection to /dev/null - + diff: replace diff_options.dry_run flag with NULL file - + diff: drop save/restore of color_moved in dry-run mode - + diff: send external diff output to diff_options.file - + Merge branch 'ly/diff-name-only-with-diff-from-content' into jk/diff-patch-dry-run-cleanup - (this branch uses ly/diff-name-only-with-diff-from-content.) - - Finishing touches to fixes to the recent regression in "git diff -w - --quiet" and anything that needs to internally generate patch to - see if it turns empty. - - Will merge to 'master'. - source: <20251024170522.GA2344972@coredump.intra.peff.net> - - -* qj/doc-first-contrib-check-lore (2025-10-24) 1 commit - - MyFirstContribution: add tip to confirm patches reached the mailing list - (this branch uses ps/rust-cbindgen.) - - Doc update. - - Comments? - source: <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im> - - -* rs/merge-base-optim (2025-10-24) 1 commit - (merged to 'next' on 2025-10-26 at 45f9bd4b81) - + commit-reach: avoid commit_list_insert_by_date() - - The code to walk revision graph to compute merge base has been - optimized. - - Will merge to 'master'. - source: <87a00cb8-8faf-48ec-91aa-009e6e906363@web.de> - - -* rs/add-patch-quit (2025-10-24) 2 commits - (merged to 'next' on 2025-10-26 at 859e2555b2) - + add-patch: quit on EOF - + add-patch: quit without skipping undecided hunks - - The 'q'(uit) command in "git add -p" has been improved to quit - without doing any meaningless work before leaving, and giving EOF - (typically control-D) to the prompt is made to behave the same way. - - Will merge to 'master'. - source: <13529bee-1e02-4c20-9461-6569312bfe4f@web.de> - - * ey/commit-graph-changed-paths-config (2025-10-17) 1 commit (merged to 'next' on 2025-10-23 at 48fd936ff1) + commit-graph: add new config for changed-paths & recommend it in scalar A new configuration variable commitGraph.changedPaths allows to turn "--changed-paths" on by default for "git commit-graph". - - Will merge to 'master'. source: -* ob/gpg-interface-cleanup (2025-10-23) 2 commits - (merged to 'next' on 2025-10-24 at ce6d041635) - + gpg-interface: do not use misdesigned strbuf_split*() - + gpg-interface: do not use misdesigned strbuf_split*() - - strbuf_split*() to split a string into multiple strbufs is often a - wrong API to use. A few uses of it have been removed by - simplifying the code. - - Will merge to 'master'. - cf. - source: - - -* rz/bisect-help-unknown (2025-10-22) 1 commit - (merged to 'next' on 2025-10-24 at d0633ab14d) - + bisect: fix handling of `help` and invalid subcommands - - "git bisect" command did not react correctly to "git bisect help" - and "git bisect unknown", which has been corrected. - - Will merge to 'master'. - source: - - -* ps/rust-cbindgen (2025-10-24) 6 commits - - rust: generate bindings via cbindgen - - meson: rename Rust library target - - ci: use Debian instead of deprecated i386/ubuntu - - gitlab-ci: backfill missing Linux jobs - - gitlab-ci: reorder Linux job matrix to match GitHub's order - - Merge branch 'ps/ci-rust' into ps/rust-cbindgen - (this branch is used by qj/doc-first-contrib-check-lore.) - - Introduce cbindgen in the build framework to help interfacing with - Rust. - - Another dependency in an ecosystem that is not mature yet complicates things a bit too much? - source: <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im> - - -* jk/match-pathname-fix (2025-10-26) 2 commits - (merged to 'next' on 2025-10-26 at f18b45f0df) - + match_pathname(): give fnmatch one char of prefix context - + match_pathname(): reorder prefix-match check - - The wildmatch code had a corner case bug that mistakenly makes - "foo**/bar" match with "foobar", which has been corrected. - - Will merge to 'master'. - source: <20251026154036.GA2173430@coredump.intra.peff.net> - - * kf/log-shortlog-completion-fix (2025-10-20) 1 commit (merged to 'next' on 2025-10-24 at 2300659a0a) + completion: complete some 'git log' options @@ -294,34 +64,9 @@ Release tarballs are available at: "git shortlog" knows "--committer" and "--author" options, which the command line completion (in contrib/) did not handle well, which has been corrected. - - Will merge to 'master'. source: -* kn/refs-optim-cleanup (2025-10-20) 4 commits - - t/pack-refs-tests: move the 'test_done' to callees - - refs: rename 'pack_refs_opts' to 'refs_optimize_opts' - - refs: move to using the '.optimize' functions - - Merge branch 'ps/ref-peeled-tags' into kn/refs-optim-cleanup - (this branch uses jt/repo-structure, ps/ref-peeled-tags and tb/incremental-midx-part-3.1.) - - Code clean-up. - - Will merge to 'next' after base topics are merged. - source: <20251020-refs-code-cleanup-v2-0-f5349ed0f6a5@gmail.com> - - -* lo/repo-info-all (2025-10-26) 2 commits - - repo: add --all to git-repo-info - - repo: factor out field printing to dedicated function - - "git repo info" learned "--all" option. - - Will merge to 'next'? - source: <20251026225409.46647-1-lucasseikioshiro@gmail.com> - - * ly/diff-name-only-with-diff-from-content (2025-10-19) 3 commits (merged to 'next' on 2025-10-24 at 237c19e4e6) + diff: stop output garbled message in dry run mode @@ -330,162 +75,19 @@ Release tarballs are available at: (this branch is used by jk/diff-patch-dry-run-cleanup.) Regression fixes for a topic that has already been merged. - - Will merge to 'master'. source: <20251019163024.18939-1-yldhome2d2@gmail.com> -* jt/repo-structure (2025-10-21) 7 commits - - builtin/repo: add progress meter for structure stats - - builtin/repo: add keyvalue and nul format for structure stats - - builtin/repo: add object counts in structure output - - builtin/repo: introduce structure subcommand - - ref-filter: export ref_kind_from_refname() - - ref-filter: allow NULL filter pattern - - builtin/repo: rename repo_info() to cmd_repo_info() - (this branch is used by kn/refs-optim-cleanup and ps/ref-peeled-tags.) +* ob/gpg-interface-cleanup (2025-10-23) 2 commits + (merged to 'next' on 2025-10-24 at ce6d041635) + + gpg-interface: do not use misdesigned strbuf_split*() + + gpg-interface: do not use misdesigned strbuf_split*() - "git repo structure", a new command. - - Will merge to 'next'. - cf. - cf. - source: <20251021182601.2687284-1-jltobler@gmail.com> - - -* ps/maintenance-geometric (2025-10-27) 12 commits - (merged to 'next' on 2025-10-27 at 839fc31de9) - + t7900: fix a flaky test due to git-repack always regenerating MIDX - (merged to 'next' on 2025-10-26 at 505f26dcf7) - + builtin/maintenance: introduce "geometric" strategy - + builtin/maintenance: make "gc" strategy accessible - + builtin/maintenance: extend "maintenance.strategy" to manual maintenance - + builtin/maintenance: run maintenance tasks depending on type - + builtin/maintenance: improve readability of strategies - + builtin/maintenance: don't silently ignore invalid strategy - + builtin/maintenance: make the geometric factor configurable - + builtin/maintenance: introduce "geometric-repack" task - + builtin/gc: make `too_many_loose_objects()` reusable without GC config - + builtin/gc: remove global `repack` variable - + Merge branch 'tb/incremental-midx-part-3.1' into ps/maintenance-geometric - (this branch uses tb/incremental-midx-part-3.1.) - - "git maintenance" command learns the "geometric" strategy where it - avoids doing maintenance tasks that rebuilds everything from - scratch. - - Will merge to 'master'. - source: <20251024-pks-maintenance-geometric-strategy-v3-0-9b5b3bdb4387@pks.im> - source: <20251027-pks-maintenance-geometric-strategy-v4-0-18049e4a0adf@pks.im> - - -* en/xdiff-cleanup-2 (2025-10-15) 9 commits - - xdiff: rename rindex -> reference_index - - xdiff: change rindex from long to size_t in xdfile_t - - xdiff: make xdfile_t.nreff a size_t instead of long - - xdiff: make xdfile_t.nrec a size_t instead of long - - xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash - - xdiff: use unambiguous types in xdl_hash_record() - - xdiff: use size_t for xrecord_t.size - - xdiff: make xrecord_t.ptr a uint8_t instead of char - - xdiff: use ssize_t for dstart/dend, make them last in xdfile_t - - Code clean-up. - source: - - -* ar/run-command-hook (2025-10-17) 10 commits - - receive-pack: convert receive hooks to hook API - - receive-pack: convert update hooks to new API - - hooks: allow callers to capture output - - run-command: allow capturing of collated output - - reference-transaction: use hook API instead of run-command - - hook: allow overriding the ungroup option - - transport: convert pre-push to hook API - - hook: convert 'post-rewrite' hook in sequencer.c to hook API - - hook: provide stdin via callback - - run-command: add stdin callback for parallelization - - Use hook API to replace ad-hoc invocation of hook scripts with the - run_command() API. - - Comments? - source: <20251017141544.1538542-1-adrian.ratiu@collabora.com> - - -* je/doc-reset (2025-10-17) 4 commits - - doc: git-reset: clarify `git reset ` - - doc: git-reset: clarify `git reset [mode]` - - doc: git-reset: clarify intro - - doc: git-reset: reorder the forms - - Documentation updates. - - Expecting a reroll. - cf. <8099e7ef-2673-407e-8cca-e6b566b99549@app.fastmail.com> - source: - - -* ps/symlink-symref-deprecation (2025-10-14) 1 commit - (merged to 'next' on 2025-10-24 at b37ca35280) - + refs/files: deprecate writing symrefs as symbolic links - - "Symlink symref" has been added to the list of things that will - disappear at Git 3.0 boundary. - - Will merge to 'master'. - source: <20251015-pks-ref-files-deprecate-symbolic-links-v2-1-0529ba48db41@pks.im> - - -* kh/doc-patch-id-1 (2025-10-13) 2 commits - (merged to 'next' on 2025-10-26 at e284077116) - + doc: patch-id: convert to the modern synopsis style - + Merge branch 'kh/doc-patch-id-markup-fix' into kh/doc-patch-id-1 - - Will merge to 'master'. - source: - - -* tz/test-prepare-gnupghome (2024-07-03) 2 commits - - t/lib-gpg: call prepare_gnupghome() in GPG2 prereq - - t/lib-gpg: add prepare_gnupghome() to create GNUPGHOME dir - - Tests did not set up GNUPGHOME correctly, which is fixed but some - flaky tests are exposed in t1016, which needs to be addressed - before this topic can move forward. - - Will merge to 'next'. - cf. - cf. - cf. <87frb310d2.fsf_-_@email.froward.int.ebiederm.org> - source: <20240703153738.916469-1-tmz@pobox.com> - - -* ps/ref-peeled-tags (2025-10-23) 16 commits - - ref-filter: parse objects on demand - - ref-filter: detect broken tags when dereferencing them - - refs: don't store peeled object IDs for invalid tags - - object: add flag to `peel_object()` to verify object type - - refs: drop infrastructure to peel via iterators - - refs: drop `current_ref_iter` hack - - builtin/show-ref: convert to use `reference_get_peeled_oid()` - - ref-filter: propagate peeled object ID - - upload-pack: convert to use `reference_get_peeled_oid()` - - refs: expose peeled object ID via the iterator - - refs: refactor reference status flags - - refs: fully reset `struct ref_iterator::ref` on iteration - - refs: introduce `.ref` field for the base iterator - - refs: introduce wrapper struct for `each_ref_fn` - - Merge branch 'jt/repo-structure' into ps/ref-peeled-tags - - Merge branch 'tb/incremental-midx-part-3.1' into ps/ref-peeled-tags - (this branch is used by kn/refs-optim-cleanup; uses jt/repo-structure and tb/incremental-midx-part-3.1.) - - Some ref backend storage can hold not just the object name of an - annotated tag, but the object name of the object the tag points at. - The code to handle this information has been streamlined. - - Will merge to 'next' after base topics are merged. - source: <20251023-b4-pks-ref-filter-skip-parsing-objects-v4-0-2be68ce82c9a@pks.im> + strbuf_split*() to split a string into multiple strbufs is often a + wrong API to use. A few uses of it have been removed by + simplifying the code. + cf. + source: * ps/remove-packfile-store-get-packs (2025-10-09) 7 commits @@ -497,22 +99,29 @@ Release tarballs are available at: + builtin/gc: convert to use `packfile_store_get_all_packs()` + object-name: convert to use `packfile_store_get_all_packs()` + Merge branch 'tb/incremental-midx-part-3.1' into ps/remove-packfile-store-get-packs - (this branch is used by ps/packed-git-in-object-store; uses tb/incremental-midx-part-3.1.) + (this branch is used by ps/packed-git-in-object-store.) Two slightly different ways to get at "all the packfiles" in API has been cleaned up. - - Will merge to 'master'. source: <20251009-pks-packfiles-convert-get-all-v2-0-0d73b87ce711@pks.im> -* je/doc-data-model (2025-10-27) 1 commit - - doc: add an explanation of Git's data model +* ps/symlink-symref-deprecation (2025-10-14) 1 commit + (merged to 'next' on 2025-10-24 at b37ca35280) + + refs/files: deprecate writing symrefs as symbolic links - Add a new manual that describes the data model. + "Symlink symref" has been added to the list of things that will + disappear at Git 3.0 boundary. + source: <20251015-pks-ref-files-deprecate-symbolic-links-v2-1-0529ba48db41@pks.im> - Comments? - source: + +* rz/bisect-help-unknown (2025-10-22) 1 commit + (merged to 'next' on 2025-10-24 at d0633ab14d) + + bisect: fix handling of `help` and invalid subcommands + + "git bisect" command did not react correctly to "git bisect help" + and "git bisect unknown", which has been corrected. + source: * tb/incremental-midx-part-3.1 (2025-10-15) 50 commits @@ -571,9 +180,419 @@ Release tarballs are available at: Clean-up "git repack" machinery to prepare for incremental update of midx files. + source: + +-------------------------------------------------- +[New Topics] + +* kh/doc-checkout-markup-fix (2025-10-28) 1 commit + (merged to 'next' on 2025-10-29 at f106c77f74) + + doc: git-checkout: fix placeholder markup + + Doc mark-up fix. Will merge to 'master'. - source: + source: + + +* rz/t0450-bisect-doc-update (2025-10-28) 1 commit + - bisect: update usage and docs to match each other + + The help text and manual page of "git bisect" command have been + made consistent with each other. + + Will merge to 'next'. + source: + + +* bc/sha1-256-interop-02 (2025-10-29) 15 commits + - SQUASH??? downgrade build.rs syntax + - object-file-convert: always make sure object ID algo is valid + - rust: add a small wrapper around the hashfile code + - rust: add a new binary loose object map format + - rust: add functionality to hash an object + - rust: add a build.rs script for tests + - hash: expose hash context functions to Rust + - write-or-die: add an fsync component for the loose object map + - csum-file: define hashwrite's count as a uint32_t + - hash: add a function to look up hash algo structs + - rust: add a hash algorithm abstraction + - rust: add a ObjectID struct + - hash: use uint32_t for object_id algorithm + - conversion: don't crash when no destination algo + - repository: require Rust support for interoperability + + The code to maintain mapping between object names in multiple hash + functions is being added, written in Rust. + + Expecting a reroll. + source: <20251027004404.2152927-1-sandals@crustytoothpaste.net> + + +* jk/doc-backslash-in-exclude (2025-10-29) 1 commit + (merged to 'next' on 2025-10-30 at 29790121d5) + + doc: document backslash in gitignore patterns + + The patterns used in the .gitignore files use backslash in the way + documented for fnmatch(3); document as such to reduce confusion. + + Will merge to 'master'. + source: <20251029153237.GA1133542@coredump.intra.peff.net> + + +* jk/test-delete-gpgsig-leakfix (2025-10-29) 1 commit + (merged to 'next' on 2025-10-30 at 097810cb65) + + test-tool: fix leak in delete-gpgsig command + + Leakfix. + + Will merge to 'master'. + source: <20251029191031.GA1257596@coredump.intra.peff.net> + +-------------------------------------------------- +[Cooking] + +* qj/doc-my1stcontrib-email-verify (2025-10-27) 1 commit + (merged to 'next' on 2025-10-29 at 33f961f37a) + + MyFirstContribution: add note on confirming patches + + The "MyFirstContribution" tutorial tells the reader how to send out + their patches; the section gained a hint to verify the message + reached the mailing list. + + Will merge to 'master'. + source: <20251027111600.1481-1-qjessa662@gmail.com> + + +* xr/ref-debug-remove-on-disk (2025-10-24) 1 commit + (merged to 'next' on 2025-10-29 at 316e4afdbf) + + refs: add missing remove_on_disk implementation for debug backend + + The "debug" ref-backend was missing a method implementation, which + has been corrected. + + Will merge to 'master'. + source: + + +* ad/blame-diff-algorithm (2025-10-28) 1 commit + - blame: make diff algorithm configurable + + "git blame" learns "--diff-algorithm=" option. + + Expecting a reroll. + cf. + source: + + +* cc/fast-import-export-i18n-cleanup (2025-10-30) 5 commits + - gpg-interface: mark a string for translation + - fast-import: mark strings for translation + - fast-export: mark strings for translation + - gpg-interface: use left shift to define GPG_VERIFY_* + - gpg-interface: simplify ssh fingerprint parsing + + Messages from fast-import/export are now marked for i18n. + + Will merge to 'next'? + source: <20251030123332.3337684-1-christian.couder@gmail.com> + + +* eb/t1016-hash-transition-fix (2025-10-28) 1 commit + (merged to 'next' on 2025-10-30 at b743410ab6) + + t1016-compatObjectFormat: really freeze time for reproduciblity + + Test fix. + + Will merge to 'master'. + source: <87frb310d2.fsf_-_@email.froward.int.ebiederm.org> + + +* ps/packed-git-in-object-store (2025-10-30) 9 commits + - packfile: track packs via the MRU list exclusively + - packfile: always add packfiles to MRU when adding a pack + - packfile: move list of packs into the packfile store + - builtin/pack-objects: simplify logic to find kept or nonlocal objects + - packfile: fix approximation of object counts + - http: refactor subsystem to use `packfile_list`s + - packfile: move the MRU list into the packfile store + - packfile: use a `strmap` to store packs by name + - Merge branch 'ps/remove-packfile-store-get-packs' into ps/packed-git-in-object-store + + The list of packfiles used in a running Git process is moved from + the object-database layer down to object-store layer. + + Will merge to 'next'? + source: <20251030-pks-packfiles-store-drop-list-v2-0-84654f080cc0@pks.im> + + +* tu/credential-install (2025-10-25) 1 commit + (merged to 'next' on 2025-10-28 at 43589c4832) + + contrib/credential: add install target + + Contributed credential helpers (obviously in contrib/) now have "cd + $there && make install" target. + + Will merge to 'master'. + source: + + +* jk/diff-patch-dry-run-cleanup (2025-10-24) 6 commits + (merged to 'next' on 2025-10-26 at 28426e9102) + + diff: simplify run_external_diff() quiet logic + + diff: drop dry-run redirection to /dev/null + + diff: replace diff_options.dry_run flag with NULL file + + diff: drop save/restore of color_moved in dry-run mode + + diff: send external diff output to diff_options.file + + Merge branch 'ly/diff-name-only-with-diff-from-content' into jk/diff-patch-dry-run-cleanup + + Finishing touches to fixes to the recent regression in "git diff -w + --quiet" and anything that needs to internally generate patch to + see if it turns empty. + + Will merge to 'master'. + source: <20251024170522.GA2344972@coredump.intra.peff.net> + + +* qj/doc-first-contrib-check-lore (2025-10-24) 1 commit + - MyFirstContribution: add tip to confirm patches reached the mailing list + (this branch uses ps/rust-cbindgen.) + + Doc update. + + Will merge to 'next'? + source: <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im> + + +* rs/merge-base-optim (2025-10-24) 1 commit + (merged to 'next' on 2025-10-26 at 45f9bd4b81) + + commit-reach: avoid commit_list_insert_by_date() + + The code to walk revision graph to compute merge base has been + optimized. + + Will merge to 'master'. + source: <87a00cb8-8faf-48ec-91aa-009e6e906363@web.de> + + +* rs/add-patch-quit (2025-10-24) 2 commits + (merged to 'next' on 2025-10-26 at 859e2555b2) + + add-patch: quit on EOF + + add-patch: quit without skipping undecided hunks + + The 'q'(uit) command in "git add -p" has been improved to quit + without doing any meaningless work before leaving, and giving EOF + (typically control-D) to the prompt is made to behave the same way. + + Will merge to 'master'. + source: <13529bee-1e02-4c20-9461-6569312bfe4f@web.de> + + +* ps/rust-cbindgen (2025-10-24) 6 commits + - rust: generate bindings via cbindgen + - meson: rename Rust library target + - ci: use Debian instead of deprecated i386/ubuntu + - gitlab-ci: backfill missing Linux jobs + - gitlab-ci: reorder Linux job matrix to match GitHub's order + - Merge branch 'ps/ci-rust' into ps/rust-cbindgen + (this branch is used by qj/doc-first-contrib-check-lore.) + + Introduce cbindgen in the build framework to help interfacing with + Rust. + + More discussion? + cf. <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im> + source: <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im> + + +* jk/match-pathname-fix (2025-10-26) 2 commits + (merged to 'next' on 2025-10-26 at f18b45f0df) + + match_pathname(): give fnmatch one char of prefix context + + match_pathname(): reorder prefix-match check + + The wildmatch code had a corner case bug that mistakenly makes + "foo**/bar" match with "foobar", which has been corrected. + + Will merge to 'master'. + source: <20251026154036.GA2173430@coredump.intra.peff.net> + + +* kn/refs-optim-cleanup (2025-10-20) 4 commits + - t/pack-refs-tests: move the 'test_done' to callees + - refs: rename 'pack_refs_opts' to 'refs_optimize_opts' + - refs: move to using the '.optimize' functions + - Merge branch 'ps/ref-peeled-tags' into kn/refs-optim-cleanup + (this branch uses jt/repo-structure and ps/ref-peeled-tags.) + + Code clean-up. + + Will merge to 'next' after base topics are merged. + source: <20251020-refs-code-cleanup-v2-0-f5349ed0f6a5@gmail.com> + + +* lo/repo-info-all (2025-10-26) 2 commits + - repo: add --all to git-repo-info + - repo: factor out field printing to dedicated function + + "git repo info" learned "--all" option. + + Will merge to 'next'? + source: <20251026225409.46647-1-lucasseikioshiro@gmail.com> + + +* jt/repo-structure (2025-10-21) 7 commits + (merged to 'next' on 2025-10-28 at c4d81a2da9) + + builtin/repo: add progress meter for structure stats + + builtin/repo: add keyvalue and nul format for structure stats + + builtin/repo: add object counts in structure output + + builtin/repo: introduce structure subcommand + + ref-filter: export ref_kind_from_refname() + + ref-filter: allow NULL filter pattern + + builtin/repo: rename repo_info() to cmd_repo_info() + (this branch is used by kn/refs-optim-cleanup and ps/ref-peeled-tags.) + + "git repo structure", a new command. + + Will merge to 'master'. + cf. + cf. + source: <20251021182601.2687284-1-jltobler@gmail.com> + + +* ps/maintenance-geometric (2025-10-27) 12 commits + (merged to 'next' on 2025-10-27 at 839fc31de9) + + t7900: fix a flaky test due to git-repack always regenerating MIDX + (merged to 'next' on 2025-10-26 at 505f26dcf7) + + builtin/maintenance: introduce "geometric" strategy + + builtin/maintenance: make "gc" strategy accessible + + builtin/maintenance: extend "maintenance.strategy" to manual maintenance + + builtin/maintenance: run maintenance tasks depending on type + + builtin/maintenance: improve readability of strategies + + builtin/maintenance: don't silently ignore invalid strategy + + builtin/maintenance: make the geometric factor configurable + + builtin/maintenance: introduce "geometric-repack" task + + builtin/gc: make `too_many_loose_objects()` reusable without GC config + + builtin/gc: remove global `repack` variable + + Merge branch 'tb/incremental-midx-part-3.1' into ps/maintenance-geometric + + "git maintenance" command learns the "geometric" strategy where it + avoids doing maintenance tasks that rebuilds everything from + scratch. + + Will merge to 'master'. + source: <20251024-pks-maintenance-geometric-strategy-v3-0-9b5b3bdb4387@pks.im> + source: <20251027-pks-maintenance-geometric-strategy-v4-0-18049e4a0adf@pks.im> + + +* en/xdiff-cleanup-2 (2025-10-29) 10 commits + - xdiff: rename rindex -> reference_index + - xdiff: change rindex from long to size_t in xdfile_t + - xdiff: make xdfile_t.nreff a size_t instead of long + - xdiff: make xdfile_t.nrec a size_t instead of long + - xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash + - xdiff: use unambiguous types in xdl_hash_record() + - xdiff: use size_t for xrecord_t.size + - xdiff: make xrecord_t.ptr a uint8_t instead of char + - xdiff: use ssize_t for dstart/dend, make them last in xdfile_t + - doc: define unambiguous type mappings across C and Rust + + Code clean-up. + + Comments? + source: + + +* ar/run-command-hook (2025-10-17) 10 commits + - receive-pack: convert receive hooks to hook API + - receive-pack: convert update hooks to new API + - hooks: allow callers to capture output + - run-command: allow capturing of collated output + - reference-transaction: use hook API instead of run-command + - hook: allow overriding the ungroup option + - transport: convert pre-push to hook API + - hook: convert 'post-rewrite' hook in sequencer.c to hook API + - hook: provide stdin via callback + - run-command: add stdin callback for parallelization + + Use hook API to replace ad-hoc invocation of hook scripts with the + run_command() API. + + Comments? + source: <20251017141544.1538542-1-adrian.ratiu@collabora.com> + + +* je/doc-reset (2025-10-17) 4 commits + - doc: git-reset: clarify `git reset ` + - doc: git-reset: clarify `git reset [mode]` + - doc: git-reset: clarify intro + - doc: git-reset: reorder the forms + + Documentation updates. + + Expecting a reroll. + cf. <8099e7ef-2673-407e-8cca-e6b566b99549@app.fastmail.com> + source: + + +* kh/doc-patch-id-1 (2025-10-13) 2 commits + (merged to 'next' on 2025-10-26 at e284077116) + + doc: patch-id: convert to the modern synopsis style + + Merge branch 'kh/doc-patch-id-markup-fix' into kh/doc-patch-id-1 + + Will merge to 'master'. + source: + + +* tz/test-prepare-gnupghome (2024-07-03) 2 commits + (merged to 'next' on 2025-10-28 at f612107bf9) + + t/lib-gpg: call prepare_gnupghome() in GPG2 prereq + + t/lib-gpg: add prepare_gnupghome() to create GNUPGHOME dir + + Tests did not set up GNUPGHOME correctly, which is fixed but some + flaky tests are exposed in t1016, which needs to be addressed + before this topic can move forward. + + Will merge to 'master'. + cf. + cf. + cf. <87frb310d2.fsf_-_@email.froward.int.ebiederm.org> + source: <20240703153738.916469-1-tmz@pobox.com> + + +* ps/ref-peeled-tags (2025-10-23) 16 commits + - ref-filter: parse objects on demand + - ref-filter: detect broken tags when dereferencing them + - refs: don't store peeled object IDs for invalid tags + - object: add flag to `peel_object()` to verify object type + - refs: drop infrastructure to peel via iterators + - refs: drop `current_ref_iter` hack + - builtin/show-ref: convert to use `reference_get_peeled_oid()` + - ref-filter: propagate peeled object ID + - upload-pack: convert to use `reference_get_peeled_oid()` + - refs: expose peeled object ID via the iterator + - refs: refactor reference status flags + - refs: fully reset `struct ref_iterator::ref` on iteration + - refs: introduce `.ref` field for the base iterator + - refs: introduce wrapper struct for `each_ref_fn` + - Merge branch 'jt/repo-structure' into ps/ref-peeled-tags + - Merge branch 'tb/incremental-midx-part-3.1' into ps/ref-peeled-tags + (this branch is used by kn/refs-optim-cleanup; uses jt/repo-structure.) + + Some ref backend storage can hold not just the object name of an + annotated tag, but the object name of the object the tag points at. + The code to handle this information has been streamlined. + + Will merge to 'next' after base topics are merged. + source: <20251023-b4-pks-ref-filter-skip-parsing-objects-v4-0-2be68ce82c9a@pks.im> + + +* je/doc-data-model (2025-10-27) 1 commit + - doc: add an explanation of Git's data model + + Add a new manual that describes the data model. + + Comments? + source: * cc/doc-submitting-patches-with-ai (2025-10-01) 1 commit @@ -620,7 +639,7 @@ Release tarballs are available at: source: -* sa/replay-atomic-ref-updates (2025-10-22) 3 commits +* sa/replay-atomic-ref-updates (2025-10-28) 3 commits - replay: add replay.refAction config option - replay: make atomic ref updates the default behavior - replay: use die_for_incompatible_opt2() for option validation @@ -630,9 +649,8 @@ Release tarballs are available at: in a transaction by default, instead of emitting where each refs should point at and leaving the actual update to another command. - Expecting a (hopefully small and final) reroll. - cf. - source: <20251022185045.29256-1-siddharthasthana31@gmail.com> + Reroll exists. + source: <20251028214609.10041-1-siddharthasthana31@gmail.com> * ar/submodule-gitdir-tweak (2025-10-06) 5 commits