{"thread":{"id":"64150","subject":"What's cooking in git.git (Sep 2025, #06; Mon, 15)","startedAt":"2025-09-15T19:19:47Z","lastAt":"2025-09-18T05:52:17Z","messageCount":7,"participants":["Junio C Hamano","Patrick Steinhardt","Jeff King","Kristoffer Haugsbakk"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"526385","messageId":"xmqqtt13frqm.fsf@gitster.g","threadId":"64150","inReplyTo":null,"subject":"What's cooking in git.git (Sep 2025, #06; Mon, 15)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-09-15T19:19:45Z","receivedAt":"2025-09-15T19:19:47Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking in my tree.  Commits\nprefixed with '+' are in 'next' (being in 'next' is a sign that a\ntopic is stable enough to be used and are candidate to be in a\nfuture release).  Commits prefixed with '-' are only in 'seen', and\naren't considered \"accepted\" at all and may be annotated with an URL\nto a message that raises issues but they are no means exhaustive.  A\ntopic without enough support may be discarded after a long period of\nno activity (of course they can be resubmit when new interests\narise).\n\nThere are a few topics that have been expecting a reroll for close\nto a month.  I've moved them to the [Stalled] section below.  Let's\ntighten rules around these topics a bit so that we can keep the tree\nsomewhat cleaner.\n\nCopies of the source code to Git live in many repositories, and the\nfollowing is a list of the ones I push into or their mirrors.  Some\nrepositories have only a subset of branches.\n\nWith maint, master, next, seen, todo:\n\n\tgit://git.kernel.org/pub/scm/git/git.git/\n\tgit://repo.or.cz/alt-git.git/\n\thttps://kernel.googlesource.com/pub/scm/git/git/\n\thttps://github.com/git/git/\n\thttps://gitlab.com/git-scm/git/\n\nWith all the integration branches and topics broken out:\n\n\thttps://github.com/gitster/git/\n\nEven though the preformatted documentation in HTML and man format\nare not sources, they are published in these repositories for\nconvenience (replace \"htmldocs\" with \"manpages\" for the manual\npages):\n\n\tgit://git.kernel.org/pub/scm/git/git-htmldocs.git/\n\thttps://github.com/gitster/git-htmldocs.git/\n\nRelease tarballs are available at:\n\n\thttps://www.kernel.org/pub/software/scm/git/\n\n--------------------------------------------------\n[Graduated to 'master']\n\n* ds/midx-write-fixes (2025-09-05) 6 commits\n  (merged to 'next' on 2025-09-08 at 74b87ce5ba)\n + midx-write: simplify error cases\n + midx-write: reenable signed comparison errors\n + midx-write: use uint32_t for preferred_pack_idx\n + midx-write: use cleanup when incremental midx fails\n + midx-write: put failing response value back\n + midx-write: only load initialized packs\n\n Fixes multiple crashes around midx write-out codepaths.\n \n source: <pull.1965.v3.git.1757100378.gitgitgadget@gmail.com>\n\n\n* jt/de-global-bulk-checkin (2025-08-22) 4 commits\n  (merged to 'next' on 2025-09-08 at f544afcab3)\n + bulk-checkin: use repository variable from transaction\n + bulk-checkin: require transaction for index_blob_bulk_checkin()\n + bulk-checkin: remove global transaction state\n + bulk-checkin: introduce object database transaction structure\n (this branch is used by jt/odb-transaction.)\n\n The bulk-checkin code used to depend on a file-scope static\n singleton variable, which has been updated to pass an instance\n throughout the callchain.\n  cf. <aLmhjw2xAbUogL1L@pks.im>\n source: <20250822213500.1488064-1-jltobler@gmail.com>\n\n\n* lo/repo-info-step-2 (2025-09-04) 3 commits\n  (merged to 'next' on 2025-09-08 at 1a58ac3835)\n + repo: add the field objects.format\n + repo: add the flag -z as an alias for --format=nul\n + Merge branch 'lo/repo-info' into lo/repo-info-step-2\n\n \"repo info\" learns a short-hand option \"-z\" that is the same as\n \"--format=nul\", and learns to report the objects format used in the\n repository.\n \n source: <20250904134017.47364-1-lucasseikioshiro@gmail.com>\n\n\n* mm/worktree-doc-typofix (2025-09-03) 1 commit\n  (merged to 'next' on 2025-09-09 at afdaf0ed07)\n + docs: fix typo in worktree.adoc 'extension'\n\n Docfix.\n \n source: <pull.1967.git.1756911040439.gitgitgadget@gmail.com>\n\n\n* ps/upload-pack-oom-protection (2025-09-04) 2 commits\n  (merged to 'next' on 2025-09-08 at 2b543d9b53)\n + upload-pack: don't ACK non-commits repeatedly in protocol v2\n + t5530: modernize tests\n\n A broken or malicious \"git fetch\" can say that it has the same\n object for many many times, and the upload-pack serving it can\n exhaust memory storing them redundantly, which has been corrected.\n \n source: <20250905-b4-pks-upload-pack-repeated-non-commit-acks-v2-0-d2e67f3cb94c@pks.im>\n\n\n* rs/object-name-extend-abbrev-len-update (2025-09-04) 1 commit\n  (merged to 'next' on 2025-09-08 at 469498c610)\n + object-name: declare pointer type of extend_abbrev_len()'s 2nd parameter\n\n Code clean-up.\n \n source: <e0bc9a67-faa9-4218-a55a-c7d53c15cfce@web.de>\n\n--------------------------------------------------\n[New Topics]\n\n* je/doc-push (2025-09-12) 4 commits\n - doc: git-push: clarify \"what to push\"\n - doc: git-push: clarify \"where to push\"\n - doc: add an UPSTREAM BRANCHES section to pull/push/fetch\n - doc: git-push: clarify intro\n\n Doc updates.\n\n Comments?\n source: <pull.1964.v2.git.1757703309.gitgitgadget@gmail.com>\n\n--------------------------------------------------\n[Stalled]\n\nThese topics have been expecting updates for quite some time.  I'll\neject any of them when they start to conflict with other topics in\n'seen' and may drop them from my tree when they are dormant for too\nlong (let's say 8 weeks is way too long, for now).  After that, they\ncan be proposed again by rerolling them in a shape that would work\nwell with other topics in 'seen' (and of course 'next' and\n\"master').\n\n* lc/rebase-trailer (2025-08-03) 2 commits\n - rebase: support --trailer\n - trailer: append trailers in-process and drop the fork to `interpret-trailers`\n\n Expecting a reroll.\n cf. <198826af571.62b85cb31711042.2415806544948206668@linux.beauty>\n cf. <xmqqiki7qasu.fsf@gitster.g>\n source: <20250803150059.402017-1-me@linux.beauty>\n\n\n* ac/deglobal-sparse-variables (2025-07-18) 3 commits\n . environment: remove the global variable 'sparse_expect_files_outside_of_patterns'\n . environment: move access to \"core.sparsecheckoutcone\" into repo_settings\n . environment: move access to \"core.sparsecheckout\" into repo_settings\n\n Two global variables related to sparse checkout have been moved to\n the repository settings structure.\n\n Expecting a reroll.\n cf. <CAE7as+bnG6KgA8X_n36pqP15bmyM6re+xEb1MOXKvZSUdJ8Arg@mail.gmail.com>\n Ejected out of 'seen' for now.\n source: <cover.1752882401.git.ayu.chandekar@gmail.com>\n\n\n* tb/prepare-midx-pack-cleanup (2025-05-28) 5 commits\n . midx: return a `packed_git` pointer from `prepare_midx_pack()`\n . midx-write.c: extract inner loop from fill_packs_from_midx()\n . midx-write.c: guard against incremental MIDXs in want_included_pack()\n . midx: access pack names through `nth_midxed_pack_name()`\n . Merge branch 'ps/midx-negative-packfile-cache' into tb/prepare-midx-pack-cleanup\n\n Improvement on Multi-pack-index API.\n\n Expecting a reroll.\n cf. <20250530065034.GC1321283@coredump.intra.peff.net>\n source: <cover.1748473122.git.me@ttaylorr.com>\n\n\n* cc/promisor-remote-capability (2025-09-07) 7 commits\n  (merged to 'next' on 2025-09-15 at 367d83c08c)\n + promisor-remote: use string_list_split() in mark_remotes_as_accepted()\n + promisor-remote: allow a client to check fields\n + promisor-remote: use string_list_split() in filter_promisor_remote()\n + promisor-remote: refactor how we parse advertised fields\n + promisor-remote: use string constants for 'name' and 'url' too\n + promisor-remote: allow a server to advertise more fields\n + promisor-remote: refactor to get rid of 'struct strvec'\n\n The \"promisor-remote\" capability mechanism has been updated to\n allow the \"partialCloneFilter\" settings and the \"token\" value to be\n communicated from the server side.\n\n Will merge to 'master'.\n source: <20250908053056.956907-1-christian.couder@gmail.com>\n\n\n* ar/submodule-gitdir-tweak (2025-09-08) 10 commits\n - t7425: add gitdir encoding tests\n - t7450: move nested gitdir tests to t7425\n - submodule: remove validate_submodule_git_dir()\n - submodule: error out if gitdir name is too long\n - submodule: encode gitdir paths to avoid conflicts\n - strbuf: bring back is_rfc3986_unreserved\n - t7425: add basic mixed submodule gitdir path tests\n - submodule: add gitdir path config override\n - submodule: create new gitdirs under submodules path\n - submodule--helper: use submodule_name_to_gitdir in add_submodule\n\n Avoid local submodule repository directory paths overlapping with\n each other by encoding submodule names before using them as path\n components.\n source: <20250908140117.262205-1-adrian.ratiu@collabora.com>\n\n--------------------------------------------------\n[Cooking]\n\n* rs/get-oid-with-flags-cleanup (2025-09-10) 1 commit\n  (merged to 'next' on 2025-09-15 at ff8d1faae9)\n + use repo_get_oid_with_flags()\n\n Code clean-up.\n\n Will merge to 'master'.\n source: <906196ac-2fd7-4c07-9e8f-22d67b0b64f9@web.de>\n\n\n* cs/subtree-squash-split-fix (2025-09-09) 1 commit\n  (merged to 'next' on 2025-09-15 at 4206316342)\n + contrib/subtree: fix split with squashed subtrees\n\n \"git subtree\" (in contrib/) did not work correctly when splitting\n squashed subtrees, which has been improved.\n\n Will merge to 'master'.\n source: <20250910031124.1807856-1-ask+git@howdoi.land>\n\n\n* ps/clar-updates (2025-09-10) 1 commit\n  (merged to 'next' on 2025-09-15 at 73402f7652)\n + t/unit-tests: update clar to fcbed04\n\n Import a newer version of the clar unit testing framework.\n\n Will merge to 'master'.\n source: <20250910-b4-pks-clar-update-v1-1-26a196237e0a@pks.im>\n\n\n* ps/config-get-color-fixes (2025-09-11) 5 commits\n - builtin/config: do not spawn pager when printing color codes\n - builtin/config: special-case retrieving colors without a key\n - builtin/config: do not die in `get_color()`\n - t1300: small style fixups\n - t1300: write test expectations in the test's body\n\n The use of \"git config get\" command to learn how ANSI color\n sequence is for a particular type, e.g., \"git config get\n --type=color --default=reset no.such.thing\", isn't very ergonomic.\n\n Comments?\n source: <20250911-pks-config-color-v1-0-3a7c79df65b1@pks.im>\n\n\n* ps/meson-build-docs (2025-09-11) 3 commits\n - ci: don't compile whole project when testing docs with Meson\n - meson: print docs backend as part of the summary\n - meson: introduce a \"docs\" alias to compile documentation only\n\n The build procedure based on meson learned a target to only build\n documentation, similar to \"make doc\".\n\n Comments?\n source: <20250911-b4-pks-meson-docs-target-v1-0-a92c666ecef9@pks.im>\n\n\n* ps/odb-clean-stale-wrappers (2025-09-12) 2 commits\n - fixup! odb: drop deprecated wrapper functions\n - odb: drop deprecated wrapper functions\n\n Code clean-up.\n\n Breaks build when merged to 'seen'.\n cf. <20250910153759.GA562601@coredump.intra.peff.net>\n source: <20250910-b4-pks-odb-drop-wrappers-v1-1-6ed660cb1eec@pks.im>\n\n\n* jt/odb-transaction (2025-09-09) 7 commits\n - odb: add transaction interface\n - object-file: update naming from bulk-checkin\n - object-file: relocate ODB transaction code\n - bulk-checkin: drop flush_odb_transaction()\n - builtin/update-index: end ODB transaction when --verbose is specified\n - bulk-checkin: remove ODB transaction nesting\n - Merge branch 'jt/de-global-bulk-checkin' into jt/odb-transaction\n\n Continue the work to build on the bulk-checkin infrastructure to\n create many objects at once in a transaction and abstract it into\n the generic object layer.\n\n Comments?\n source: <20250909191134.555689-1-jltobler@gmail.com>\n\n\n* cc/fast-import-strip-signed-commits (2025-09-12) 2 commits\n - fast-import: add '--signed-commits=<mode>' option\n - gpg-interface: refactor 'enum sign_mode' parsing\n\n \"git fast-import\" learned that \"--signed-commits=<how>\" option that\n corresponds to that of \"git fast-export\".\n\n Comments?\n source: <20250912124042.2523683-1-christian.couder@gmail.com>\n\n\n* pw/3.0-default-initial-branch-to-main (2025-09-10) 4 commits\n - t0613: stop setting default initial branch\n - t9902: switch default branch name to main\n - t4013: switch default branch name to main\n - breaking-changes: switch default branch to main\n\n Declare that \"git init\" that is not otherwise configured uses\n 'main' as the initial branch, not 'master', starting Git 3.0.\n\n Comments?\n source: <cover.1757518141.git.phillip.wood@dunelm.org.uk>\n\n\n* ps/commit-graph-per-object-source (2025-09-04) 6 commits\n - odb: move commit-graph into the object sources\n - commit-graph: pass graphs that are to be merged as parameter\n - commit-graph: return commit graph from `repo_find_commit_pos_in_graph()`\n - commit-graph: return the prepared commit graph from `prepare_commit_graph()`\n - revision: drop explicit check for commit graph\n - blame: drop explicit check for commit graph\n\n Declare commit-graph is per object_source, which may not be a good idea.\n\n cf. <cf7aeda1-297a-4805-b0ae-e379ce11bbcf@gmail.com>\n source: <20250904-b4-pks-commit-graph-via-source-v1-0-d932c2481e1a@pks.im>\n\n\n* ps/rust-balloon (2025-09-10) 9 commits\n - ci: enable Rust for breaking-changes jobs\n - ci: convert \"pedantic\" job into full build with breaking changes\n - BreakingChanges: announce Rust becoming mandatory\n - varint: reimplement as test balloon for Rust\n - varint: use explicit width for integers\n - help: report on whether or not Rust is enabled\n - Makefile: introduce infrastructure to build internal Rust library\n - Makefile: reorder sources after includes\n - meson: add infrastructure to build internal Rust library\n\n Dip our toes a bit to (optionally) use Rust implemented helper\n called from our C code.\n\n Comments?\n source: <20250910-b4-pks-rust-breaking-change-v4-0-4a63fc69278d@pks.im>\n\n\n* kh/doc-fast-import-markup-fix (2025-09-08) 1 commit\n  (merged to 'next' on 2025-09-12 at d56e1334b9)\n + doc: fast-import: replace literal block with paragraph\n\n Doc mark-up fix.\n\n Will merge to 'master'.\n source: <09aaad696895c18c6d4dda7d6a2f4b77f84f39ba.1757363213.git.code@khaugsbakk.name>\n\n\n* ms/refs-optimize (2025-09-06) 5 commits\n - t: add test for git refs optimize subcommand\n - t0601: refactor tests to be shareable\n - builtin/refs: add optimize subcommand\n - doc: factor out common option\n - builtin/pack-refs: factor out core logic into a shared library\n\n \"git refs optimize\" is added for not very well explained reason\n despite it does the same thing as \"git pack-refs\"...\n\n Expecting a reroll.\n source: <20250906075147.1076656-1-meetsoni3017@gmail.com>\n\n\n* sj/string-list (2025-09-07) 4 commits\n - refs: enable sign compare warnings check\n - string-list: change \"string_list_find_insert_index\" return type to \"size_t\"\n - string-list: replace negative index encoding with \"exact_match\" parameter\n - string-list: allow passing NULL for `get_entry_index`\n\n The \"string-list\" API function to find where a given string would\n be inserted got updated so that it can use unrealistically huge\n array index that would only fit in size_t but not int or ssize_t\n to achieve unstated goal.\n\n Expecting a reroll.\n source: <aL21kDwK-zGZyJ9q@ArchLinux>\n\n\n* ps/packfile-store (2025-09-09) 16 commits\n - packfile: refactor `get_packed_git_mru()` to work on packfile store\n - packfile: refactor `get_all_packs()` to work on packfile store\n - packfile: remove `get_packed_git()`\n - packfile: move `get_multi_pack_index()` into \"midx.c\"\n - packfile: introduce function to load and add packfiles\n - packfile: refactor `install_packed_git()` to work on packfile store\n - packfile: split up responsibilities of `reprepare_packed_git()`\n - packfile: refactor `prepare_packed_git()` to work on packfile store\n - packfile: reorder functions to avoid function declaration\n - odb: move kept cache into `struct packfile_store`\n - odb: move MRU list of packfiles into `struct packfile_store`\n - odb: move packfile map into `struct packfile_store`\n - odb: move initialization bit into `struct packfile_store`\n - odb: move list of packfiles into `struct packfile_store`\n - packfile: introduce a new `struct packfile_store`\n - Merge branch 'ps/object-store-midx-dedup-info' into ps/packfile-store\n\n Code clean-up around the in-core list of all the pack files and\n object database(s).\n\n Comments?\n source: <20250909-b4-pks-packfiles-store-v4-0-151c4ba3619f@pks.im>\n\n\n* kn/refs-files-case-insensitive (2025-09-13) 4 commits\n - refs/files: handle D/F conflicts during locking\n - refs/files: handle F/D conflicts in case-insensitive FS\n - refs/files: use correct error type when lock exists\n - refs/files: catch conflicts on case-insensitive file-systems\n\n Deal more gracefully with directory / file conflicts when the files\n backend is used for ref storage, by failing only the ones that are\n involved in the conflict while allowing others.\n\n Comments?\n source: <20250913-587-git-fetch-1-fails-fetches-on-case-insensitive-repositories-v3-0-195569740b57@gmail.com>\n\n\n* ag/doc-sendmail-gmail-example-update (2025-08-26) 1 commit\n  (merged to 'next' on 2025-09-12 at 54e0dab4b0)\n + docs: update sendmail docs to use more secure SMTP server for Gmail\n\n Doc update.\n\n Will merge to 'master'.\n source: <20250826150919.5239-1-gargaditya08@live.com>\n\n\n* en/rust-xdiff (2025-09-07) 17 commits\n - xdiff: change the types of dstart, dend, rchg, and rindex in xdfile_t\n - xdiff: make xdfile_t.nreff a usize instead of long\n - xdiff: make xdfile_t.nrec a usize instead of long\n - xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash\n - xdiff: make xrecord_t.size a usize instead of long\n - xdiff: make xrecord_t.ptr a u8 instead of char\n - xdiff: include compat/rust_types.h\n - compat/rust_types.h: define rust primitive types\n - xdiff: treat xdfile_t.rchg like an enum\n - xdiff: delete chastore from xdfile_t, view with --color-words\n - xdiff: delete fields ha, line, size in xdlclass_t in favor of an xrecord_t\n - xdiff: delete redundant array xdfile_t.ha\n - xdiff: delete struct diffdata_t\n - xdiff: delete xdl_get_rec() in xemit\n - xdiff: delete unnecessary fields from xrecord_t and xdfile_t\n - xdiff: delete local variables and initialize/free xdfile_t directly\n - xdiff: delete static forward declarations in xprepare\n\n Rust!  Not Rust, though ;-)\n\n Comments?\n source: <pull.2048.git.git.1757274320.gitgitgadget@gmail.com>\n\n\n* je/doc-checkout (2025-09-10) 7 commits\n - doc: git-checkout: clarify restoring files section\n - doc: git-checkout: split up restoring files section\n - doc: git-checkout: deduplicate --detach explanation\n - doc: git-checkout: clarify `-b` and `-B`\n - doc: git-checkout: clarify `git checkout <branch>`\n - doc: git-checkout: clarify ARGUMENT DISAMBIGUATION\n - doc: git-checkout: clarify intro sentence\n\n Doc updates.\n\n Comments?\n source: <pull.1962.v4.git.1757531669.gitgitgadget@gmail.com>\n\n\n* kn/clang-format-bitfields (2025-08-26) 1 commit\n  (merged to 'next' on 2025-09-12 at 62dd6102f6)\n + Documentation: note styling for bit fields\n\n CodingGuidelines now spells out how bitfields are to be written.\n\n Will merge to 'master'.\n source: <20250826121928.22317-1-karthik.188@gmail.com>\n\n\n* jk/curl-global-trace-components (2025-08-27) 1 commit\n  (merged to 'next' on 2025-09-12 at 37a826f245)\n + curl: add support for curl_global_trace() components\n\n Adjust to the way newer versions of cURL selectivel enables tracing\n options, so that our tests can continue to work.\n\n Will merge to 'master'.\n source: <20250827080702.GA3572995@coredump.intra.peff.net>\n\n\n* kh/you-still-use-whatchanged-fix (2025-09-14) 8 commits\n - BreakingChanges: remove claim about whatchanged reports\n - whatchanged: remove not-even-shorter clause\n - whatchanged: hint about git-log(1) and aliasing\n - you-still-use-that??: help the user help themselves\n - t0014: test shadowing of aliases for a sample of builtins\n - git: allow alias-shadowing deprecated builtins\n - git: move seen-alias bookkeeping into handle_alias(...)\n - git: add `deprecated` category to --list-cmds\n\n Update \"do you still use it?\" message given by a command that is\n deeply deprecated and allow us to suggest alternatives.\n\n Ready?\n source: <cover.1757879060.git.code@khaugsbakk.name>\n\n\n* pc/range-diff-memory-limit (2025-08-29) 1 commit\n  (merged to 'next' on 2025-09-12 at 022fe71829)\n + range-diff: add configurable memory limit for cost matrix\n\n \"git range-diff\" learned a way to limit the memory consumed by\n O(N*N) cost matrix.\n\n Will merge to 'master'.\n source: <pull.1958.v4.git.1756483374980.gitgitgadget@gmail.com>\n\n\n* ne/alloc-free-and-null (2025-09-04) 1 commit\n  (merged to 'next' on 2025-09-12 at 005f763f97)\n + alloc: fix dangling pointer in alloc_state cleanup\n\n The clear_alloc_state() API function was not fully clearing the\n structure for reuse, but since nobody reuses it, replace it with a\n variant that frees the structure as well, making the callers simpler.\n\n Will merge to 'master'.\n source: <pull.2040.v5.git.git.1757007856062.gitgitgadget@gmail.com>\n\n\n* jc/doc-includeif-hasconfig-remote-url-fix (2025-08-21) 1 commit\n  (merged to 'next' on 2025-09-12 at 3b91910cbd)\n + config: document includeIf conditions consistently\n\n Doc mark-up fix.\n\n Will merge to 'master'.\n source: <xmqqldnc4stv.fsf@gitster.g>\n\n\n* jk/add-i-color (2025-09-08) 4 commits\n  (merged to 'next' on 2025-09-15 at 48aae5184a)\n + contrib/diff-highlight: mention interactive.diffFilter\n + add-interactive: manually fall back color config to color.ui\n + add-interactive: respect color.diff for diff coloring\n + stash: pass --no-color to diff plumbing child processes\n\n Some among \"git add -p\" and friends ignored color.diff and/or\n color.ui configuration variables, which is an old regression, which\n has been corrected.\n\n Will merge to 'master'.\n source: <20250908164157.GA1323487@coredump.intra.peff.net>\n\n\n* sg/line-log-boundary-fixes (2025-08-18) 2 commits\n  (merged to 'next' on 2025-09-12 at 0d34d3872c)\n + line-log: show all line ranges touched by the same diff range\n + line-log: fix assertion error\n\n Fix for a corner case bug in \"git log -L...\".\n\n Will merge to 'master'.\n source: <20250818111310.1283932-1-szeder.dev@gmail.com>\n\n\n* jc/longer-disambiguation-fix (2025-08-14) 1 commit\n  (merged to 'next' on 2025-09-12 at 4dddaa05fc)\n + abbrev: allow extending beyond 32 chars to disambiguate\n\n \"git rev-parse --short\" and friends failed to disambiguate two\n objects with object names that share common prefix longer than 32\n characters.\n\n Will merge to 'master'.\n source: <xmqqh5ya6iua.fsf_-_@gitster.g>\n\n\n* ag/send-email-imap-sent (2025-08-11) 2 commits\n  (merged to 'next' on 2025-09-12 at bb82691e0a)\n + send-email: enable copying emails to an IMAP folder without actually sending them\n + send-email: add ability to send a copy of sent emails to an IMAP folder\n\n \"git send-email\" learned to drive \"git imap-send\" to store already\n sent e-mails in an IMAP folder.\n\n Will merge to 'master'.\n source: <PN3PR01MB9597E8E33868386C997D2563B82BA@PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM>\n\n\n* ds/sparse-checkout-clean (2025-09-12) 7 commits\n - t: expand tests around sparse merges and clean\n - sparse-index: point users to new 'clean' action\n - sparse-checkout: add --verbose option to 'clean'\n - dir: add generic \"walk all files\" helper\n - sparse-checkout: match some 'clean' behavior\n - sparse-checkout: add basics of 'clean' command\n - sparse-checkout: remove use of the_repository\n\n \"git sparse-checkout\" subcommand learned a new \"clean\" action to\n prune otherwise unused working-tree files that are outside the\n areas of interest.\n\n Will merge to 'next'?\n source: <pull.1941.v3.git.1757673011.gitgitgadget@gmail.com>\n\n\n* pw/3.0-commentchar-auto-deprecation (2025-08-26) 4 commits\n  (merged to 'next' on 2025-09-12 at e6a855d738)\n + commit: print advice when core.commentString=auto\n + config: warn on core.commentString=auto\n + breaking-changes: deprecate support for core.commentString=auto\n + Merge branch 'ps/config-wo-the-repository' into pw/3.0-commentchar-auto-deprecation\n\n Proposes to deprecate \"core.commentChar=auto\" that attempts to\n dynamically pick a suitable comment character, as it is too much\n trouble to support for little benefit.\n\n Will merge to 'master'.\n source: <cover.1756215326.git.phillip.wood@dunelm.org.uk>\n"},{"id":"526423","messageId":"aMkJVMbSmeA4cIAy@pks.im","threadId":"64150","inReplyTo":"xmqqtt13frqm.fsf@gitster.g","subject":"Re: What's cooking in git.git (Sep 2025, #06; Mon, 15)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-09-16T06:53:08Z","receivedAt":"2025-09-16T06:53:14Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Mon, Sep 15, 2025 at 12:19:45PM -0700, Junio C Hamano wrote:\n> * ps/odb-clean-stale-wrappers (2025-09-12) 2 commits\n>  - fixup! odb: drop deprecated wrapper functions\n>  - odb: drop deprecated wrapper functions\n> \n>  Code clean-up.\n> \n>  Breaks build when merged to 'seen'.\n>  cf. <20250910153759.GA562601@coredump.intra.peff.net>\n>  source: <20250910-b4-pks-odb-drop-wrappers-v1-1-6ed660cb1eec@pks.im>\n\nShall I send a new revision of this patch series that squashes in the\nfixup commit? I wouldn't mind doing that, but it becomes a bit weird to\ndo so when the original base of the patch doesn't even the issue.\n\nPatrick\n"},{"id":"526451","messageId":"xmqqzfaunzjo.fsf@gitster.g","threadId":"64150","inReplyTo":"aMkJVMbSmeA4cIAy@pks.im","subject":"Re: What's cooking in git.git (Sep 2025, #06; Mon, 15)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-09-16T16:16:11Z","receivedAt":"2025-09-16T16:16:13Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> On Mon, Sep 15, 2025 at 12:19:45PM -0700, Junio C Hamano wrote:\n>> * ps/odb-clean-stale-wrappers (2025-09-12) 2 commits\n>>  - fixup! odb: drop deprecated wrapper functions\n>>  - odb: drop deprecated wrapper functions\n>> \n>>  Code clean-up.\n>> \n>>  Breaks build when merged to 'seen'.\n>>  cf. <20250910153759.GA562601@coredump.intra.peff.net>\n>>  source: <20250910-b4-pks-odb-drop-wrappers-v1-1-6ed660cb1eec@pks.im>\n>\n> Shall I send a new revision of this patch series that squashes in the\n> fixup commit? I wouldn't mind doing that, but it becomes a bit weird to\n> do so when the original base of the patch doesn't even the issue.\n\nYeah, typicall fallouts from code churn that needs to be handled\nsomewhere in the codebase.  *hit happens (shrug).\n\nAs this makes it necessary for that file to eventually include an\nextra header, it sort of makes sense.  I am more wondering if it\nshould be a separate commit (i.e. give it a proper log message\ninstead of fixup!).  If we were to squash, we would need to mention\nwhy a seemingly unnecessary change is included.  \"In anticipation of\nanother topic that adds a call to function Y, whose definition this\ntopic shuffles around and makes it necessary for its callers to\ninclude header X, we pre-emptively include header X that will become\nneeded for the other topic to use function Y when merged with this\ntopic\".  I agree that is certainly awkward.\n\nAdding the extra include to the other topic is not any cleaner.  It\ndidn't have to include that header to make calls to some functions,\nand it is only because another topic shuffled things around that\nmade it necessary.  \"In anticipation of another topic shuffling\nheaders around, we pre-emptively include header X that will become\nneeded to use function Y when merged with the other topic\" would be\nsuch an extra commit would say.  That may be slightly less awkward\nbut it still is so.\n\nAnd it would be cumbersome to do _the_ right thing for something so\nsmall like this: build this on top of the topics affected.  That\nwould allow us to say something like \"We will move things around and\nrequire header X to be included by callers of function Y in a later\ncommit in this series.  Do so now as a preliminary step.\"\n\nSo I dunno.  What's your preference?\n"},{"id":"526456","messageId":"20250916164912.GA15474@coredump.intra.peff.net","threadId":"64150","inReplyTo":"xmqqzfaunzjo.fsf@gitster.g","subject":"Re: What's cooking in git.git (Sep 2025, #06; Mon, 15)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2025-09-16T16:49:12Z","receivedAt":"2025-09-16T16:49:21Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Sep 16, 2025 at 09:16:11AM -0700, Junio C Hamano wrote:\n\n> As this makes it necessary for that file to eventually include an\n> extra header, it sort of makes sense.  I am more wondering if it\n> should be a separate commit (i.e. give it a proper log message\n> instead of fixup!).  If we were to squash, we would need to mention\n> why a seemingly unnecessary change is included.  \"In anticipation of\n> another topic that adds a call to function Y, whose definition this\n> topic shuffles around and makes it necessary for its callers to\n> include header X, we pre-emptively include header X that will become\n> needed for the other topic to use function Y when merged with this\n> topic\".  I agree that is certainly awkward.\n> \n> Adding the extra include to the other topic is not any cleaner.  It\n> didn't have to include that header to make calls to some functions,\n> and it is only because another topic shuffled things around that\n> made it necessary.  \"In anticipation of another topic shuffling\n> headers around, we pre-emptively include header X that will become\n> needed to use function Y when merged with the other topic\" would be\n> such an extra commit would say.  That may be slightly less awkward\n> but it still is so.\n\nI think adding the fix to ps/packfile-store is reasonably clean. It is\nsubtly depending on a header file having included repository.h, and that\nassumption is broken by the other topic. But it was always a slightly\ndubious assumption.\n\nThat said, it is not really that big an issue and I am fine with any\nfix. If you want to document how the history unfolded, then I think an\nevil merge shows that (neither topic had a problem on its own, but when\nmerged we needed to adjust the result). And it is probably the least\namount of work. ;)\n\n-Peff\n"},{"id":"526463","messageId":"xmqqv7limi1b.fsf@gitster.g","threadId":"64150","inReplyTo":"20250916164912.GA15474@coredump.intra.peff.net","subject":"Re: What's cooking in git.git (Sep 2025, #06; Mon, 15)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-09-16T17:19:44Z","receivedAt":"2025-09-16T17:19:47Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> That said, it is not really that big an issue and I am fine with any\n> fix. If you want to document how the history unfolded, then I think an\n> evil merge shows that (neither topic had a problem on its own, but when\n> merged we needed to adjust the result). And it is probably the least\n> amount of work. ;)\n\nThat's also fine, too.  Let me try that ;-)\n\n\n"},{"id":"526501","messageId":"c0f1e08a-afe1-4cfd-af11-aa07ed458570@app.fastmail.com","threadId":"64150","inReplyTo":"xmqqtt13frqm.fsf@gitster.g","subject":"Re: What's cooking in git.git (Sep 2025, #06; Mon, 15)","fromName":"Kristoffer Haugsbakk","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2025-09-16T20:54:06Z","receivedAt":"2025-09-16T20:54:27Z","isPatch":false,"sender":{"key":"kristofferhaugsbakk@fastmail.com","avatar":null},"body":"On Mon, Sep 15, 2025, at 21:19, Junio C Hamano wrote:\n> * kh/you-still-use-whatchanged-fix (2025-09-14) 8 commits\n>  - BreakingChanges: remove claim about whatchanged reports\n>  - whatchanged: remove not-even-shorter clause\n>  - whatchanged: hint about git-log(1) and aliasing\n>  - you-still-use-that??: help the user help themselves\n>  - t0014: test shadowing of aliases for a sample of builtins\n>  - git: allow alias-shadowing deprecated builtins\n>  - git: move seen-alias bookkeeping into handle_alias(...)\n>  - git: add `deprecated` category to --list-cmds\n>\n>  Update \"do you still use it?\" message given by a command that is\n>  deeply deprecated and allow us to suggest alternatives.\n>\n>  Ready?\n>  source: <cover.1757879060.git.code@khaugsbakk.name>\n\nI need to make a new version for the extra output line.[1] I was\nplanning on doing it today but your message about\n`WITH_BREAKING_CHANGES=YesPlease` prompted me to investigate that.[2]\n\n[1]: https://lore.kernel.org/git/7d63af22-3886-4dcf-863e-dec333601b3b@app.fastmail.com/\n[2]: https://lore.kernel.org/git/cover.1757446619.git.code@khaugsbakk.name/T/#m665486896912338c381f2b63003358111c7a2ea2\n\nCheers and good night\n"},{"id":"526668","messageId":"aMueCwl6hfZRJ_qN@pks.im","threadId":"64150","inReplyTo":"xmqqv7limi1b.fsf@gitster.g","subject":"Re: What's cooking in git.git (Sep 2025, #06; Mon, 15)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-09-18T05:52:11Z","receivedAt":"2025-09-18T05:52:17Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Tue, Sep 16, 2025 at 10:19:44AM -0700, Junio C Hamano wrote:\n> Jeff King <peff@peff.net> writes:\n> \n> > That said, it is not really that big an issue and I am fine with any\n> > fix. If you want to document how the history unfolded, then I think an\n> > evil merge shows that (neither topic had a problem on its own, but when\n> > merged we needed to adjust the result). And it is probably the least\n> > amount of work. ;)\n> \n> That's also fine, too.  Let me try that ;-)\n\nYeah, an evil merge probably is the easiest way, and I see that's what\nyou did in b501ac6a85 (Merge branch 'ps/odb-clean-stale-wrappers' into\nseen, 2025-09-17) now. Thanks!\n\nPatrick\n"}]}