{"thread":{"id":"64523","subject":"What's cooking in git.git (Nov 2025, #07; Sun, 23)","startedAt":"2025-11-24T04:59:25Z","lastAt":"2025-12-22T22:06:59Z","messageCount":8,"participants":["Junio C Hamano","D. Ben Knoble","Elijah Newren","Toon Claes"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"531203","messageId":"xmqq5xb0yqj9.fsf@gitster.g","threadId":"64523","inReplyTo":null,"subject":"What's cooking in git.git (Nov 2025, #07; Sun, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-11-24T04:59:22Z","receivedAt":"2025-11-24T04:59:25Z","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\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* jc/gitattributes-whitespace-no-indent-fix (2025-11-11) 1 commit\n  (merged to 'next' on 2025-11-19 at cd849a23a1)\n + .gitattributes: remove misspelled no-op whitespace attribute\n\n Originally merged to 'next' on 2025-11-14\n\n Ever since we added whitespace rules for this project, we misspelt\n an entry, which has been corrected.\n source: <xmqqv7jgwgxb.fsf@gitster.g>\n\n\n* kn/maintenance-is-needed (2025-11-08) 7 commits\n  (merged to 'next' on 2025-11-19 at faaa24f412)\n + maintenance: add 'is-needed' subcommand\n + maintenance: add checking logic in `pack_refs_condition()`\n + refs: add a `optimize_required` field to `struct ref_storage_be`\n + reftable/stack: add function to check if optimization is required\n + reftable/stack: return stack segments directly\n + Merge branch 'kn/refs-optim-cleanup' into kn/maintenance-is-needed\n + Merge branch 'ps/ref-peeled-tags' into kn/maintenance-is-needed\n\n Originally merged to 'next' on 2025-11-14\n\n \"git maintenance\" command learned \"is-needed\" subcommand to tell if\n it is necessary to perform various maintenance tasks.\n source: <20251108-562-add-sub-command-to-check-if-maintenance-is-needed-v4-0-a90f229b6023@gmail.com>\n\n\n* rs/diff-quiet-no-rename (2025-11-09) 1 commit\n  (merged to 'next' on 2025-11-19 at dc0b078446)\n + diff: disable rename detection with --quiet\n\n Originally merged to 'next' on 2025-11-14\n\n As \"git diff --quiet\" only cares about the existence of any\n changes, disable rename/copy detection to skip more expensive\n processing whose result will be discarded anyway.\n source: <8796cd59-2335-4674-823d-d682ce7b7f8e@web.de>\n\n--------------------------------------------------\n[New Topics]\n\n* ja/doc-synopsis-style (2025-11-19) 3 commits\n  (merged to 'next' on 2025-11-21 at eb9c1703c0)\n + doc: convert git push to synopsis style\n + doc: convert git pull to synopsis style\n + doc: convert git fetch to synopsis style\n\n Doc mark-up updates.\n\n Will merge to 'master'.\n source: <pull.2002.git.1763588404.gitgitgadget@gmail.com>\n\n\n* jc/optional-path (2025-11-20) 3 commits\n - config: really treat missing optional path as not configured\n - config: really pretend missing :(optional) value is not there\n - config: mark otherwise unused function as file-scope static\n\n \"git config get --path\" segfaulted on an \":(optional)path\" that\n does not exist, which has been corrected.\n\n Will merge to 'next'?\n source: <xmqqikf47ajk.fsf@gitster.g>\n\n\n* kh/doc-committer-date-is-author-date (2025-11-20) 1 commit\n - doc: warn against --committer-date-is-author-date\n\n The \"--committer-date-is-author-date\" option of \"git am/rebase\" is\n a misguided one.  The documentation is updated to discourage its\n use.\n\n Will merge to 'next'?\n source: <V2_committer-date-is-author-date.1@msgid.xyz>\n\n\n* gf/win32-pthread-cond-init (2025-11-20) 1 commit\n - win32: pthread_cond_init should return a value\n\n Emulation code clean-up.\n\n Will merge to 'next'?\n source: <pull.2103.v3.git.git.1763675016637.gitgitgadget@gmail.com>\n\n\n* gf/win32-pthread-cond-wait-err (2025-11-18) 1 commit\n  (merged to 'next' on 2025-11-21 at 89d9e04f91)\n + win32: return error if SleepConditionVariableCS fails\n\n Emulation code clean-up.\n\n Will merge to 'master'.\n source: <pull.2104.v2.git.git.1763480514065.gitgitgadget@gmail.com>\n\n\n* kn/ref-location (2025-11-19) 2 commits\n - refs: add GIT_REF_URI to specify reference backend and directory\n - refs: support obtaining ref_store for given dir\n\n A mechanism to specify what reference backend to use and store\n references in which directory is introduced, which would likely to\n be useful during ref migration.\n source: <20251119-kn-alternate-ref-dir-v1-0-4cf4a94c8bed@gmail.com>\n\n--------------------------------------------------\n[Cooking]\n\n* jk/ci-windows-meson-test-fix (2025-11-18) 2 commits\n  (merged to 'next' on 2025-11-20 at a0afd4fd5b)\n + ci(windows-meson-test): handle options and output like other test jobs\n + unit-test: ignore --no-chain-lint\n\n \"Windows+meson\" job at the GitHub Actions CI was hard to debug, as\n it did not show and save failed test artifacts, which has been\n corrected.\n\n Will merge to 'master'.\n source: <20251118093221.GA530337@coredump.intra.peff.net>\n\n\n* jk/test-mktemp-leakfix (2025-11-18) 1 commit\n  (merged to 'next' on 2025-11-19 at 1da34f8b26)\n + test-mktemp: plug memory and descriptor leaks\n\n Test leakfix.\n\n Will merge to 'master'.\n source: <20251118122124.GA1117960@coredump.intra.peff.net>\n\n\n* js/ci-github-setup-go-update (2025-11-17) 1 commit\n  (merged to 'next' on 2025-11-19 at 9922384c2b)\n + ci: bump actions/setup-go from 5 to 6\n\n Update a version of action used at the GitHub Actrions CI.\n\n Will merge to 'master'.\n source: <ebc68ec5b2abbc4702b94f833b9b3bf1adb79f1a.1763450087.git.zhiyou.jx@alibaba-inc.com>\n\n\n* js/ci-show-breakage-in-dockerized-jobs (2025-11-17) 1 commit\n - ci(dockerized): do show the result of failing tests again\n\n Dockerised jobs at the GitHub Actions CI have been taught to show\n more details of failed tests.\n\n Will merge to 'next' after amending?\n cf. <xmqqpl9gike6.fsf@gitster.g>\n source: <pull.2003.git.1763399064983.gitgitgadget@gmail.com>\n\n\n* js/cmake-libgit-fix (2025-11-17) 1 commit\n  (merged to 'next' on 2025-11-19 at 1593640ab0)\n + cmake: stop trying to build the reftable and xdiff libraries\n\n Makefile based build have recently been updated to build a\n libgit.a that also has reftable and xdiff objects; CMake based\n build procedure has been updated to match.\n\n Will merge to 'master'.\n source: <pull.2006.git.1763412008722.gitgitgadget@gmail.com>\n\n\n* js/mingw-assign-comma-fix (2025-11-17) 1 commit\n  (merged to 'next' on 2025-11-19 at d1a5807e11)\n + mingw: avoid the comma operator\n\n The \"return errno = EFOO, -1\" construct, which is heavily used in\n compat/mingw.c and triggers warnings under \"-Wcomma\", has been\n rewritten to avoid the warnings.\n\n Will merge to 'master'.\n source: <pull.2007.git.1763412374866.gitgitgadget@gmail.com>\n\n\n* js/strip-scalar-too (2025-11-17) 1 commit\n - make strip: include `scalar`\n\n \"make strip\" has been taught to strip \"scalar\" as well as \"git\".\n\n Will merge to 'next'?\n cf. <xmqq7bvoiadg.fsf@gitster.g>\n source: <pull.2004.git.1763409086322.gitgitgadget@gmail.com>\n\n\n* js/wincred-get-credential-alloc-fix (2025-11-17) 1 commit\n  (merged to 'next' on 2025-11-19 at 4c43c53c49)\n + wincred: avoid memory corruption\n\n Under-allocation fix.\n\n Will merge to 'master'.\n source: <pull.2005.git.1763411984773.gitgitgadget@gmail.com>\n\n\n* pw/worktree-list-display-width-fix (2025-11-18) 2 commits\n  (merged to 'next' on 2025-11-20 at 3a341524cb)\n + worktree list: quote paths\n + worktree list: fix column spacing\n\n \"git worktree list\" attempts to show paths to worktrees while\n aligning them, but miscounted display columns for the paths when\n non-ASCII characters were involved, which has been corrected.\n\n Will merge to 'master'.\n source: <cover.1763482051.git.phillip.wood@dunelm.org.uk>\n\n\n* rs/xmkstemp-simplify (2025-11-17) 1 commit\n  (merged to 'next' on 2025-11-19 at 228e9f54ab)\n + wrapper: simplify xmkstemp()\n\n Code simplification.\n\n Will merge to 'master'.\n source: <058c5722-30f5-4bc5-90f5-24e4c6f3ff8f@web.de>\n\n\n* dw/config-global-list (2025-10-09) 4 commits\n - config: keep bailing on unreadable global files\n - config: read global scope via config_sequence\n - config: test home and xdg files in `list --global`\n - cleanup_path: force forward slashes on Windows\n\n \"git config --list --global\", unlike \"git config --list\", did not\n consult both of the two possible per-user sources of the\n configuration files, i.e. $HOME/.gitconfig and the XDG one, which\n has been corrected.\n\n Comments?\n source: <pull.1938.git.1760058849.gitgitgadget@gmail.com>\n\n\n* ps/object-read-stream (2025-11-23) 20 commits\n - streaming: drop redundant type and size pointers\n - streaming: move into object database subsystem\n - streaming: refactor interface to be object-database-centric\n - streaming: move logic to read packed objects streams into backend\n - streaming: move logic to read loose objects streams into backend\n - streaming: make the `odb_read_stream` definition public\n - streaming: get rid of `the_repository`\n - streaming: rely on object sources to create object stream\n - packfile: introduce function to read object info from a store\n - streaming: move zlib stream into backends\n - streaming: create structure for filtered object streams\n - streaming: create structure for packed object streams\n - streaming: create structure for loose object streams\n - streaming: create structure for in-core object streams\n - streaming: allocate stream inside the backend-specific logic\n - streaming: explicitly pass packfile info when streaming a packed object\n - streaming: propagate final object type via the stream\n - streaming: drop the `open()` callback function\n - streaming: rename `git_istream` into `odb_read_stream`\n - Merge branch 'ps/object-source-loose' into ps/object-read-stream\n (this branch uses ps/object-source-loose.)\n\n The \"git_istream\" abstraction has been revamped to make it easier\n to interface with pluggable object database design.\n\n Will merge to 'next'?\n source: <20251123-b4-pks-odb-read-stream-v3-0-1a129182822b@pks.im>\n\n\n* ps/object-source-management (2025-11-18) 14 commits\n - odb: handle recreation of quarantine directories\n - odb: handle changing a repository's commondir\n - chdir-notify: add function to unregister listeners\n - odb: handle initialization of sources in `odb_new()`\n - http-push: stop setting up `the_repository` for each reference\n - t/helper: stop setting up `the_repository` repeatedly\n - builtin/index-pack: fix deferred fsck outside repos\n - oidset: introduce `oidset_equal()`\n - odb: move logic to disable ref updates into repo\n - odb: refactor `odb_clear()` to `odb_free()`\n - odb: adopt logic to close object databases\n - setup: convert `set_git_dir()` to have file scope\n - path: move `enter_repo()` into \"setup.c\"\n - Merge branch 'ps/object-source-loose' into ps/object-source-management\n (this branch uses ps/object-source-loose.)\n\n Code refactoring around object database sources.\n\n Comments?\n source: <20251119-b4-pks-odb-creation-v1-0-2b2ed2612cb6@pks.im>\n\n\n* jc/submodule-add (2025-11-15) 1 commit\n - submodule add: sanity check existing .gitmodules\n\n \"git submodule add\" to add a submodule under <name> segfaulted,\n when a submodule.<name>.something is already in .gitmodules file\n without defining where its submodule.<name>.path is, which has been\n corrected.\n\n Comments?\n source: <xmqqv7jacvdq.fsf@gitster.g>\n\n\n* kn/fix-fetch-backfill-tag-with-batched-ref-updates (2025-11-21) 3 commits\n - fetch: fix failed batched updates skipping operations\n - fetch: fix non-conflicting tags not being committed\n - fetch: extract out reference committing logic\n\n \"git fetch\" that involves fetching tags, when a tag being fetched\n needs to overwrite existing one, failed to fetch other tags, which\n has been corrected.\n\n Will merge to 'next'?\n source: <20251121-fix-tags-not-fetching-v8-0-23b53a8a8334@gmail.com>\n\n\n* jk/asan-bonanza (2025-11-18) 9 commits\n - t: enable ASan's strict_string_checks option\n - fsck: avoid parse_timestamp() on buffer that isn't NUL-terminated\n - fsck: remove redundant date timestamp check\n - fsck: avoid strcspn() in fsck_ident()\n - fsck: assert newline presence in fsck_ident()\n - cache-tree: avoid strtol() on non-string buffer\n - Makefile: turn on NO_MMAP when building with ASan\n - pack-bitmap: handle name-hash lookups in incremental bitmaps\n - compat/mmap: mark unused argument in git_munmap()\n\n Various issues detected by Asan have been corrected.\n\n Will merge to 'next'.\n source: <20251118091127.GA4175601@coredump.intra.peff.net>\n\n\n* jk/attr-macroexpand-wo-recursion (2025-11-11) 1 commit\n  (merged to 'next' on 2025-11-19 at 5d5f74f4f0)\n + attr: avoid recursion when expanding attribute macros\n\n Originally merged to 'next' on 2025-11-16\n\n The code to expand attribute macros has been rewritten to avoid\n recursion to avoid running out of stack space in an uncontrolled\n way.\n\n Will merge to 'master'.\n source: <20251111223647.GA4055973@coredump.intra.peff.net>\n\n\n* bc/submodule-force-same-hash (2025-11-14) 2 commits\n  (merged to 'next' on 2025-11-19 at eec9dca32c)\n + read-cache: drop submodule check from add_to_cache()\n + object-file: disallow adding submodules of different hash algo\n\n Originally merged to 'next' on 2025-11-16\n\n Adding a repository that uses a different hash function is a no-no,\n but \"git submodule add\" did nt prevent it, which has been corrected.\n\n Will merge to 'master'.\n source: <20251112235434.1499699-1-sandals@crustytoothpaste.net>\n\n\n* jx/repo-struct-utf8width-fix (2025-11-15) 2 commits\n  (merged to 'next' on 2025-11-19 at 35bff72b75)\n + builtin/repo: fix table alignment for UTF-8 characters\n + t/unit-tests: add UTF-8 width tests for CJK chars\n\n Originally merged to 'next' on 2025-11-18\n\n The \"git repo structure\" subcommand tried to align its output but\n mixed up byte count and display column width, which has been\n corrected.\n\n Will merge to 'master'.\n source: <cover.1763213290.git.worldhello.net@gmail.com>\n\n\n* kh/doc-commit-extra-references (2025-11-14) 1 commit\n  (merged to 'next' on 2025-11-19 at 9c89891116)\n + doc: commit: link to git-status(1) on all format options\n\n Originally merged to 'next' on 2025-11-18\n\n Doc update.\n\n Will merge to 'master'.\n source: <c4349a03724.1763129061.git.code@khaugsbakk.name>\n\n\n* kn/osxkeychain-idempotent-store-fix (2025-11-13) 1 commit\n  (merged to 'next' on 2025-11-19 at 335d6bb2ea)\n + osxkeychain: avoid incorrectly skipping store operation\n\n Originally merged to 'next' on 2025-11-18\n\n An earlier check added to osx keychain credential helper to avoid\n storing the credential itself supplied was overeager and rejected\n credential material supplied by other helper backends that it would\n have wanted to store, which has been corrected.\n\n Will merge to 'master'.\n source: <pull.1999.v2.git.1763100270949.gitgitgadget@gmail.com>\n\n\n* lc/rebase-trailer (2025-11-05) 4 commits\n - rebase: support --trailer\n - trailer: append trailers in-process and drop the fork to `interpret-trailers`\n - trailer: move process_trailers to trailer.h\n - interpret-trailers: factor out buffer-based processing to process_trailers()\n\n Refactor code paths to run \"interpret-trailers\" from \"git\n commit/tag\" and use it in \"git rebase\".\n\n Expecting a reroll.\n cf. <19a8fe42354.3909481a3912041.7970296104893780556@linux.beauty>\n source: <20251105142944.73061-1-me@linux.beauty>\n\n\n* en/ort-rename-another-fix (2025-11-03) 3 commits\n  (merged to 'next' on 2025-11-19 at 53d94af6b4)\n + merge-ort: fix failing merges in special corner case\n + merge-ort: remove debugging crud\n + t6429: update comment to mention correct tool\n\n Yet another corner case fix around renames in the \"ort\" merge\n strategy.\n\n Will merge to 'master'.\n source: <pull.1992.git.1762192908.gitgitgadget@gmail.com>\n\n\n* qj/doc-http-bad-want-response (2025-11-05) 1 commit\n  (merged to 'next' on 2025-11-19 at a602cd96eb)\n + doc: clarify server behavior for invalid 'want' lines in HTTP protocol\n\n Originally merged to 'next' on 2025-11-18\n\n Doc update.\n\n Will merge to 'master'.\n source: <20251105143849.1192-1-qjessa662@gmail.com>\n\n\n* jc/exclude-with-gitignore (2025-11-04) 1 commit\n - dir.c: do not be fooled by :(exclude) pathspec elements\n\n \"git add ':(exclude)foo.o'\" is clearly a request not to add 'foo.o',\n but the command complained about listing an ignored path foo.o on\n the command line, which has been corrected.\n\n Comments?\n source: <xmqqtsz9o3cn.fsf@gitster.g>\n\n\n* cc/fast-import-strip-if-invalid (2025-11-16) 3 commits\n - fast-import: add 'strip-if-invalid' mode to --signed-commits=<mode>\n - commit: refactor verify_commit_buffer()\n - fast-import: refactor finalize_commit_buffer()\n\n \"git fast-import\" learns \"--strip-if-invalid\" option to drop\n invalid cryptographic signature from objects.\n\n Comments?\n source: <20251117043450.322644-1-christian.couder@gmail.com>\n\n\n* jc/whitespace-incomplete-line (2025-11-12) 12 commits\n - attr: enable incomplete-line whitespace error for this project\n - diff: highlight and error out on incomplete lines\n - apply: check and fix incomplete lines\n - whitespace: allocate a few more bits and define WS_INCOMPLETE_LINE\n - apply: revamp the parsing of incomplete lines\n - diff: update the way rewrite diff handles incomplete lines\n - diff: call emit_callback ecbdata everywhere\n - diff: refactor output of incomplete line\n - diff: keep track of the type of the last line seen\n - diff: correct suppress_blank_empty hack\n - diff: emit_line_ws_markup() if/else style fix\n - whitespace: correct bit assignment comments\n\n Both \"git apply\" and \"git diff\" learn a new whitespace error class,\n \"incomplete-line\".\n\n Will merge to 'next'.\n source: <20251112220258.1009253-1-gitster@pobox.com>\n\n\n* ps/object-source-loose (2025-11-02) 13 commits\n  (merged to 'next' on 2025-11-19 at 8bb0269243)\n + object-file: refactor writing objects via a stream\n + object-file: rename `write_object_file()`\n + object-file: refactor freshening of objects\n + object-file: rename `has_loose_object()`\n + object-file: read objects via the loose object source\n + object-file: move loose object map into loose source\n + object-file: hide internals when we need to reprepare loose sources\n + object-file: move loose object cache into loose source\n + object-file: introduce `struct odb_source_loose`\n + object-file: move `fetch_if_missing`\n + odb: adjust naming to free object sources\n + odb: introduce `odb_source_new()`\n + odb: fix subtle logic to check whether an alternate is usable\n (this branch is used by ps/object-read-stream and ps/object-source-management.)\n\n Originally merged to 'next' on 2025-11-18\n\n A part of code paths that deals with loose objects has been cleaned\n up.\n\n Will merge to 'master'.\n source: <20251103-b4-pks-odb-loose-backend-v3-0-6a61ea977393@pks.im>\n\n\n* bc/sha1-256-interop-02 (2025-11-17) 15 commits\n - object-file-convert: always make sure object ID algo is valid\n - rust: add a small wrapper around the hashfile code\n - rust: add a new binary object map format\n - rust: add functionality to hash an object\n - rust: add a build.rs script for tests\n - hash: expose hash context functions to Rust\n - write-or-die: add an fsync component for the object map\n - csum-file: define hashwrite's count as a uint32_t\n - rust: add additional helpers for ObjectID\n - hash: add a function to look up hash algo structs\n - rust: add a hash algorithm abstraction\n - rust: add a ObjectID struct\n - hash: use uint32_t for object_id algorithm\n - conversion: don't crash when no destination algo\n - repository: require Rust support for interoperability\n\n The code to maintain mapping between object names in multiple hash\n functions is being added, written in Rust.\n source: <20251117221621.2863243-1-sandals@crustytoothpaste.net>\n\n\n* ad/blame-diff-algorithm (2025-11-17) 2 commits\n  (merged to 'next' on 2025-11-19 at e1e456469f)\n + blame: make diff algorithm configurable\n + xdiff: add 'minimal' to XDF_DIFF_ALGORITHM_MASK\n\n \"git blame\" learns \"--diff-algorithm=<algo>\" option.\n\n Will merge to 'master'.\n cf. <fd03f2a5-bf9e-453f-97d1-d5a66bc87470@gmail.com>\n source: <pull.2075.v6.git.git.1763366672.gitgitgadget@gmail.com>\n\n\n* lo/repo-info-all (2025-11-18) 2 commits\n  (merged to 'next' on 2025-11-21 at bb6bddcfc7)\n + repo: add --all to git-repo-info\n + repo: factor out field printing to dedicated function\n\n \"git repo info\" learned \"--all\" option.\n\n Will merge to 'master'.\n source: <20251118204929.43597-1-lucasseikioshiro@gmail.com>\n\n\n* en/xdiff-cleanup-2 (2025-11-18) 10 commits\n - xdiff: rename rindex -> reference_index\n - xdiff: change rindex from long to size_t in xdfile_t\n - xdiff: make xdfile_t.nreff a size_t instead of long\n - xdiff: make xdfile_t.nrec a size_t instead of long\n - xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash\n - xdiff: use unambiguous types in xdl_hash_record()\n - xdiff: use size_t for xrecord_t.size\n - xdiff: make xrecord_t.ptr a uint8_t instead of char\n - xdiff: use ptrdiff_t for dstart/dend\n - doc: define unambiguous type mappings across C and Rust\n\n Code clean-up.\n\n Will merge to 'next'?\n source: <pull.2070.v5.git.git.1763505262.gitgitgadget@gmail.com>\n\n\n* ar/run-command-hook (2025-10-17) 10 commits\n - receive-pack: convert receive hooks to hook API\n - receive-pack: convert update hooks to new API\n - hooks: allow callers to capture output\n - run-command: allow capturing of collated output\n - reference-transaction: use hook API instead of run-command\n - hook: allow overriding the ungroup option\n - transport: convert pre-push to hook API\n - hook: convert 'post-rewrite' hook in sequencer.c to hook API\n - hook: provide stdin via callback\n - run-command: add stdin callback for parallelization\n\n Use hook API to replace ad-hoc invocation of hook scripts with the\n run_command() API.\n\n Seems to leak and break CI\n cf. <xmqq346ff56h.fsf@gitster.g>\n source: <20251017141544.1538542-1-adrian.ratiu@collabora.com>\n\n\n* je/doc-reset (2025-10-17) 4 commits\n - doc: git-reset: clarify `git reset <pathspec>`\n - doc: git-reset: clarify `git reset [mode]`\n - doc: git-reset: clarify intro\n - doc: git-reset: reorder the forms\n\n Documentation updates.\n\n Expecting a reroll.\n cf. <8099e7ef-2673-407e-8cca-e6b566b99549@app.fastmail.com>\n source: <pull.1991.git.1760731558.gitgitgadget@gmail.com>\n\n\n* je/doc-data-model (2025-11-12) 1 commit\n - doc: add an explanation of Git's data model\n\n Add a new manual that describes the data model.\n\n Will merge to 'next'.\n source: <pull.1981.v7.git.1762977200244.gitgitgadget@gmail.com>\n\n\n* ps/history (2025-10-27) 12 commits\n - builtin/history: implement \"split\" subcommand\n - cache-tree: allow writing in-memory index as tree\n - add-patch: add support for in-memory index patching\n - add-patch: remove dependency on \"add-interactive\" subsystem\n - add-patch: split out `struct interactive_options`\n - add-patch: split out header from \"add-interactive.h\"\n - builtin/history: implement \"reword\" subcommand\n - builtin: add new \"history\" command\n - replay: stop using `the_repository`\n - replay: extract logic to pick commits\n - wt-status: provide function to expose status for trees\n - Merge branch 'sa/replay-atomic-ref-updates' into ps/history\n (this branch uses sa/replay-atomic-ref-updates.)\n\n \"git history\" history rewriting UI.\n\n Expecting a reroll.\n cf. <aRxDYkeAi8T-HH8M@pks.im>\n source: <20251027-b4-pks-history-builtin-v6-0-407dd3f57ad3@pks.im>\n\n\n* ms/doc-worktree-side-by-side (2025-10-10) 2 commits\n - doc: git-worktree: Add side by side branch checkout example\n - doc: git-worktree: Link to examples\n\n Document \"git worktree add\" and use of out-of-tree worktrees with\n examples.\n\n Expecting a reroll.\n cf. <CAPig+cSNesf0UwS4=Bxe-Qn+G9y3YYPyOK+7y3q8QJk+o7jaVg@mail.gmail.com>\n source: <a203b35538847f3c9358a5ae26fb4ebea5734cfc.1759420102.git.msuchanek@suse.de>\n\n\n* sa/replay-atomic-ref-updates (2025-11-05) 3 commits\n  (merged to 'next' on 2025-11-19 at ae19b06a22)\n + replay: add replay.refAction config option\n + replay: make atomic ref updates the default behavior\n + replay: use die_for_incompatible_opt2() for option validation\n (this branch is used by ps/history.)\n\n Originally merged to 'next' on 2025-11-18\n\n \"git replay\" (experimental) learned to perform ref updates itself\n in a transaction by default, instead of emitting where each refs\n should point at and leaving the actual update to another command.\n\n Will merge to 'master'.\n cf. <00a5a8f3-f761-46e8-84cc-4bd95db68b49@gmail.com>\n source: <20251105191650.89975-1-siddharthasthana31@gmail.com>\n\n\n* ar/submodule-gitdir-tweak (2025-11-19) 7 commits\n - meson/Makefile: allow setting submodule encoding at build time\n - submodule: use hashed name for gitdir\n - submodule: fix case-folding gitdir filesystem colisions\n - submodule: add extension to encode gitdir paths\n - submodule: always validate gitdirs inside submodule_name_to_gitdir\n - builtin/credential-store: move is_rfc3986_unreserved to url.[ch]\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: <20251119211030.2008441-1-adrian.ratiu@collabora.com>\n"},{"id":"531218","messageId":"CALnO6CDm2K0Bn43gjXTvYqJ8gbX+8eZK1YPn1gwuThizK6d5VQ@mail.gmail.com","threadId":"64523","inReplyTo":"xmqq5xb0yqj9.fsf@gitster.g","subject":"Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)","fromName":"D. Ben Knoble","fromEmail":"ben.knoble@gmail.com","sentAt":"2025-11-24T15:46:07Z","receivedAt":"2025-11-24T15:46:20Z","isPatch":false,"sender":{"key":"ben.knoble@gmail.com","avatar":"https://avatars.githubusercontent.com/u/22802209?v=4"},"body":"On Sun, Nov 23, 2025 at 11:59 PM Junio C Hamano <gitster@pobox.com> wrote:\n\n> --------------------------------------------------\n> [New Topics]\n>\n> * jc/optional-path (2025-11-20) 3 commits\n>  - config: really treat missing optional path as not configured\n>  - config: really pretend missing :(optional) value is not there\n>  - config: mark otherwise unused function as file-scope static\n>\n>  \"git config get --path\" segfaulted on an \":(optional)path\" that\n>  does not exist, which has been corrected.\n>\n>  Will merge to 'next'?\n>  source: <xmqqikf47ajk.fsf@gitster.g>\n\nAny interest in also marking this for 2.52.1? It's unlikely to be used\nmuch yet, but since the segfault affects several invocations (git\nblame, etc.) it will be irritating to folks who try the recently\nreleased version.\n\n-- \nD. Ben Knoble\n"},{"id":"531233","messageId":"xmqqtsyjxp63.fsf@gitster.g","threadId":"64523","inReplyTo":"CALnO6CDm2K0Bn43gjXTvYqJ8gbX+8eZK1YPn1gwuThizK6d5VQ@mail.gmail.com","subject":"Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-11-24T18:26:28Z","receivedAt":"2025-11-24T18:26:31Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"D. Ben Knoble\" <ben.knoble@gmail.com> writes:\n\n> On Sun, Nov 23, 2025 at 11:59 PM Junio C Hamano <gitster@pobox.com> wrote:\n>\n>> --------------------------------------------------\n>> [New Topics]\n>>\n>> * jc/optional-path (2025-11-20) 3 commits\n>>  - config: really treat missing optional path as not configured\n>>  - config: really pretend missing :(optional) value is not there\n>>  - config: mark otherwise unused function as file-scope static\n>>\n>>  \"git config get --path\" segfaulted on an \":(optional)path\" that\n>>  does not exist, which has been corrected.\n>>\n>>  Will merge to 'next'?\n>>  source: <xmqqikf47ajk.fsf@gitster.g>\n>\n> Any interest in also marking this for 2.52.1? It's unlikely to be used\n> much yet, but since the segfault affects several invocations (git\n> blame, etc.) it will be irritating to folks who try the recently\n> released version.\n\nYes, this is a clear regression-fix material.  The branch you are\ncommenting on is designed to be merge-able anywhere the original\ntopic that had the segfault can be (or has been) merged, by building\ndirectly on top of ccfcaf39 (parseopt: values of pathname type can\nbe prefixed with :(optional), 2025-09-28), which was the tip of the\noriginal topic.\n\n\n"},{"id":"531254","messageId":"CABPp-BGEg0PFoXWQYQZ2GpdxxBvz1KdgenLDsvb3bdrhALEd-A@mail.gmail.com","threadId":"64523","inReplyTo":"xmqq5xb0yqj9.fsf@gitster.g","subject":"Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)","fromName":"Elijah Newren","fromEmail":"newren@gmail.com","sentAt":"2025-11-25T06:55:04Z","receivedAt":"2025-11-25T06:55:17Z","isPatch":false,"sender":{"key":"newren@gmail.com","avatar":"https://avatars.githubusercontent.com/u/5455730?v=4"},"body":"I tried to take a look at some of the series whose status you were\nasking for feedback on (and just threw an extra comment on one that\nyou didn't ask about).  Comments below...\n\nOn Sun, Nov 23, 2025 at 8:59 PM Junio C Hamano <gitster@pobox.com> wrote:\n>\n> * jc/optional-path (2025-11-20) 3 commits\n>  - config: really treat missing optional path as not configured\n>  - config: really pretend missing :(optional) value is not there\n>  - config: mark otherwise unused function as file-scope static\n>\n>  \"git config get --path\" segfaulted on an \":(optional)path\" that\n>  does not exist, which has been corrected.\n>\n>  Will merge to 'next'?\n>  source: <xmqqikf47ajk.fsf@gitster.g>\n\nThis topic seems to be missing a squashed-in fix from\nxmqqy0o05nuy.fsf@gitster.g; should that be squashed in and then merge\ndown to next?\n\n> * kh/doc-committer-date-is-author-date (2025-11-20) 1 commit\n>  - doc: warn against --committer-date-is-author-date\n>\n>  The \"--committer-date-is-author-date\" option of \"git am/rebase\" is\n>  a misguided one.  The documentation is updated to discourage its\n>  use.\n>\n>  Will merge to 'next'?\n>  source: <V2_committer-date-is-author-date.1@msgid.xyz>\n\nI think merging down makes sense.  It's a simple enough change, that\njust gives helpful documentation warnings.  (As a side note, I found\nit illuminating to read from that commit message about the reason that\nflag was added; it never made any sense to me, but I didn't dig\nfurther.  I'm glad Johannes and Kristoffer did.)\n\n> * js/ci-show-breakage-in-dockerized-jobs (2025-11-17) 1 commit\n>  - ci(dockerized): do show the result of failing tests again\n>\n>  Dockerised jobs at the GitHub Actions CI have been taught to show\n>  more details of failed tests.\n>\n>  Will merge to 'next' after amending?\n>  cf. <xmqqpl9gike6.fsf@gitster.g>\n>  source: <pull.2003.git.1763399064983.gitgitgadget@gmail.com>\n\nI had a slight tweak for the wording of the first paragraph, which I\njust left as a comment on the patch.  Not sure that needs to hold it\nup, but maybe worth considering to include in your amending if\nJohannes is fine with it?\n\n> * js/strip-scalar-too (2025-11-17) 1 commit\n>  - make strip: include `scalar`\n>\n>  \"make strip\" has been taught to strip \"scalar\" as well as \"git\".\n>\n>  Will merge to 'next'?\n>  cf. <xmqq7bvoiadg.fsf@gitster.g>\n>  source: <pull.2004.git.1763409086322.gitgitgadget@gmail.com>\n\nI'd kind of like to see a response to your suggested alternative.\n\n> * dw/config-global-list (2025-10-09) 4 commits\n>  - config: keep bailing on unreadable global files\n>  - config: read global scope via config_sequence\n>  - config: test home and xdg files in `list --global`\n>  - cleanup_path: force forward slashes on Windows\n>\n>  \"git config --list --global\", unlike \"git config --list\", did not\n>  consult both of the two possible per-user sources of the\n>  configuration files, i.e. $HOME/.gitconfig and the XDG one, which\n>  has been corrected.\n>\n>  Comments?\n>  source: <pull.1938.git.1760058849.gitgitgadget@gmail.com>\n\nPerhaps mark this topic as expecting a re-roll?  (c.f.\n20251122020047.GB3947@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net)\n\n> * jc/submodule-add (2025-11-15) 1 commit\n>  - submodule add: sanity check existing .gitmodules\n>\n>  \"git submodule add\" to add a submodule under <name> segfaulted,\n>  when a submodule.<name>.something is already in .gitmodules file\n>  without defining where its submodule.<name>.path is, which has been\n>  corrected.\n>\n>  Comments?\n>  source: <xmqqv7jacvdq.fsf@gitster.g>\n\nLeft a couple minor wording suggestions.\n\n> * en/ort-rename-another-fix (2025-11-03) 3 commits\n>   (merged to 'next' on 2025-11-19 at 53d94af6b4)\n>  + merge-ort: fix failing merges in special corner case\n>  + merge-ort: remove debugging crud\n>  + t6429: update comment to mention correct tool\n>\n>  Yet another corner case fix around renames in the \"ort\" merge\n>  strategy.\n>\n>  Will merge to 'master'.\n>  source: <pull.1992.git.1762192908.gitgitgadget@gmail.com>\n\nA sidenote that probably doesn't matter since you've already marked it\nfor merging down: this topic has been deployed at GitHub for just over\na month without incident (whereas there were some problems prior to\ndeploying these fixes, and those problems cleared up the minute that\nthese changes were deployed).\n\n> * cc/fast-import-strip-if-invalid (2025-11-16) 3 commits\n>  - fast-import: add 'strip-if-invalid' mode to --signed-commits=<mode>\n>  - commit: refactor verify_commit_buffer()\n>  - fast-import: refactor finalize_commit_buffer()\n>\n>  \"git fast-import\" learns \"--strip-if-invalid\" option to drop\n>  invalid cryptographic signature from objects.\n>\n>  Comments?\n>  source: <20251117043450.322644-1-christian.couder@gmail.com>\n\nI think this one is ready to merge down.\n\n> * en/xdiff-cleanup-2 (2025-11-18) 10 commits\n>  - xdiff: rename rindex -> reference_index\n>  - xdiff: change rindex from long to size_t in xdfile_t\n>  - xdiff: make xdfile_t.nreff a size_t instead of long\n>  - xdiff: make xdfile_t.nrec a size_t instead of long\n>  - xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash\n>  - xdiff: use unambiguous types in xdl_hash_record()\n>  - xdiff: use size_t for xrecord_t.size\n>  - xdiff: make xrecord_t.ptr a uint8_t instead of char\n>  - xdiff: use ptrdiff_t for dstart/dend\n>  - doc: define unambiguous type mappings across C and Rust\n>\n>  Code clean-up.\n>\n>  Will merge to 'next'?\n>  source: <pull.2070.v5.git.git.1763505262.gitgitgadget@gmail.com>\n\nI think so.  There are certainly additional cleanups needed, as this\nseries makes clear, but that's clearly a bigger problem and the author\nhas stated he plans to work on those but just needed to limit the\nseries to some initial cleanup that wasn't too big to send to the\nlist.  The series has gotten reviews from lots of folks, and I just\nlooked over v5 and couldn't spot anything to call out.\n"},{"id":"531258","messageId":"87ldju5oim.fsf@iotcl.com","threadId":"64523","inReplyTo":"xmqq5xb0yqj9.fsf@gitster.g","subject":"Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)","fromName":"Toon Claes","fromEmail":"toon@iotcl.com","sentAt":"2025-11-25T11:40:17Z","receivedAt":"2025-11-25T11:40:37Z","isPatch":false,"sender":{"key":"toon@iotcl.com","avatar":"https://avatars.githubusercontent.com/u/121621?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> * ps/object-source-management (2025-11-18) 14 commits\n>  - odb: handle recreation of quarantine directories\n>  - odb: handle changing a repository's commondir\n>  - chdir-notify: add function to unregister listeners\n>  - odb: handle initialization of sources in `odb_new()`\n>  - http-push: stop setting up `the_repository` for each reference\n>  - t/helper: stop setting up `the_repository` repeatedly\n>  - builtin/index-pack: fix deferred fsck outside repos\n>  - oidset: introduce `oidset_equal()`\n>  - odb: move logic to disable ref updates into repo\n>  - odb: refactor `odb_clear()` to `odb_free()`\n>  - odb: adopt logic to close object databases\n>  - setup: convert `set_git_dir()` to have file scope\n>  - path: move `enter_repo()` into \"setup.c\"\n>  - Merge branch 'ps/object-source-loose' into ps/object-source-management\n>  (this branch uses ps/object-source-loose.)\n>\n>  Code refactoring around object database sources.\n>\n>  Comments?\n>  source: <20251119-b4-pks-odb-creation-v1-0-2b2ed2612cb6@pks.im>\n\nI've read through the patches, and I've got no comments to add.\n\n-- \nCheers,\nToon\n"},{"id":"531264","messageId":"xmqqtsyirpxt.fsf@gitster.g","threadId":"64523","inReplyTo":"CABPp-BGEg0PFoXWQYQZ2GpdxxBvz1KdgenLDsvb3bdrhALEd-A@mail.gmail.com","subject":"Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-11-25T17:18:38Z","receivedAt":"2025-11-25T17:18:40Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Elijah Newren <newren@gmail.com> writes:\n\n> I tried to take a look at some of the series whose status you were\n> asking for feedback on (and just threw an extra comment on one that\n> you didn't ask about).  Comments below...\n>\n> On Sun, Nov 23, 2025 at 8:59 PM Junio C Hamano <gitster@pobox.com> wrote:\n>>\n>> * jc/optional-path (2025-11-20) 3 commits\n>> ...\n>>  Will merge to 'next'?\n>>  source: <xmqqikf47ajk.fsf@gitster.g>\n>\n> This topic seems to be missing a squashed-in fix from\n> xmqqy0o05nuy.fsf@gitster.g; should that be squashed in and then merge\n> down to next?\n\nThanks for carefully checking.  The second patch with yesterday's\ncommitter timestamp has the squash, so it seems that our mails\ncrossed ;-)\n\n>> * js/ci-show-breakage-in-dockerized-jobs (2025-11-17) 1 commit\n>> ...\n>>  Will merge to 'next' after amending?\n>>  cf. <xmqqpl9gike6.fsf@gitster.g>\n>>  source: <pull.2003.git.1763399064983.gitgitgadget@gmail.com>\n>\n> I had a slight tweak for the wording of the first paragraph, which I\n> just left as a comment on the patch.  Not sure that needs to hold it\n> up, but maybe worth considering to include in your amending if\n> Johannes is fine with it?\n\nFWIW, I found the updated explanation you gave easier to read than\nthe original.  I still do not think of a reason why we want a more\nconservative o+w when making things world-writable, other than the\ncase where there is a user in the same group as the owner of the\nfile that we specifically want to forbid touching it, but then I do\nnot have any idea who that special user in the same group would be.\n\n>> * js/strip-scalar-too (2025-11-17) 1 commit\n>>  - make strip: include `scalar`\n>>\n>>  \"make strip\" has been taught to strip \"scalar\" as well as \"git\".\n>>\n>>  Will merge to 'next'?\n>>  cf. <xmqq7bvoiadg.fsf@gitster.g>\n>>  source: <pull.2004.git.1763409086322.gitgitgadget@gmail.com>\n>\n> I'd kind of like to see a response to your suggested alternative.\n\nI am OK if we applied the patch posted as-is, and left such a\nclean-up as #leftoverbits.\n\n>> * dw/config-global-list (2025-10-09) 4 commits\n>> ...\n>>  Comments?\n>>  source: <pull.1938.git.1760058849.gitgitgadget@gmail.com>\n>\n> Perhaps mark this topic as expecting a re-roll?  (c.f.\n> 20251122020047.GB3947@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net)\n\nGreat.  That's an awfully long message-id, by the way ;-)\n\n>> * jc/submodule-add (2025-11-15) 1 commit\n>>  - submodule add: sanity check existing .gitmodules\n>>\n>>  \"git submodule add\" to add a submodule under <name> segfaulted,\n>>  when a submodule.<name>.something is already in .gitmodules file\n>>  without defining where its submodule.<name>.path is, which has been\n>>  corrected.\n>>\n>>  Comments?\n>>  source: <xmqqv7jacvdq.fsf@gitster.g>\n>\n> Left a couple minor wording suggestions.\n\nThanks; amended.\n\n>> * en/ort-rename-another-fix (2025-11-03) 3 commits\n>>   (merged to 'next' on 2025-11-19 at 53d94af6b4)\n>>  + merge-ort: fix failing merges in special corner case\n>>  + merge-ort: remove debugging crud\n>>  + t6429: update comment to mention correct tool\n>>\n>>  Yet another corner case fix around renames in the \"ort\" merge\n>>  strategy.\n>>\n>>  Will merge to 'master'.\n>>  source: <pull.1992.git.1762192908.gitgitgadget@gmail.com>\n>\n> A sidenote that probably doesn't matter since you've already marked it\n> for merging down: this topic has been deployed at GitHub for just over\n> a month without incident (whereas there were some problems prior to\n> deploying these fixes, and those problems cleared up the minute that\n> these changes were deployed).\n\nGreat to hear.\n\n>> * cc/fast-import-strip-if-invalid (2025-11-16) 3 commits\n>>  - fast-import: add 'strip-if-invalid' mode to --signed-commits=<mode>\n>>  - commit: refactor verify_commit_buffer()\n>>  - fast-import: refactor finalize_commit_buffer()\n>>\n>>  \"git fast-import\" learns \"--strip-if-invalid\" option to drop\n>>  invalid cryptographic signature from objects.\n>>\n>>  Comments?\n>>  source: <20251117043450.322644-1-christian.couder@gmail.com>\n>\n> I think this one is ready to merge down.\n>\n>> * en/xdiff-cleanup-2 (2025-11-18) 10 commits\n>>  - xdiff: rename rindex -> reference_index\n>>  - xdiff: change rindex from long to size_t in xdfile_t\n>>  - xdiff: make xdfile_t.nreff a size_t instead of long\n>>  - xdiff: make xdfile_t.nrec a size_t instead of long\n>>  - xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash\n>>  - xdiff: use unambiguous types in xdl_hash_record()\n>>  - xdiff: use size_t for xrecord_t.size\n>>  - xdiff: make xrecord_t.ptr a uint8_t instead of char\n>>  - xdiff: use ptrdiff_t for dstart/dend\n>>  - doc: define unambiguous type mappings across C and Rust\n>>\n>>  Code clean-up.\n>>\n>>  Will merge to 'next'?\n>>  source: <pull.2070.v5.git.git.1763505262.gitgitgadget@gmail.com>\n>\n> I think so.  There are certainly additional cleanups needed, as this\n> series makes clear, but that's clearly a bigger problem and the author\n> has stated he plans to work on those but just needed to limit the\n> series to some initial cleanup that wasn't too big to send to the\n> list.  The series has gotten reviews from lots of folks, and I just\n> looked over v5 and couldn't spot anything to call out.\n\nGreat, and thanks.\n"},{"id":"531265","messageId":"xmqqpl96rpx4.fsf@gitster.g","threadId":"64523","inReplyTo":"87ldju5oim.fsf@iotcl.com","subject":"Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-11-25T17:19:03Z","receivedAt":"2025-11-25T17:19:05Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Toon Claes <toon@iotcl.com> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> * ps/object-source-management (2025-11-18) 14 commits\n>>  - odb: handle recreation of quarantine directories\n>>  - odb: handle changing a repository's commondir\n>>  - chdir-notify: add function to unregister listeners\n>>  - odb: handle initialization of sources in `odb_new()`\n>>  - http-push: stop setting up `the_repository` for each reference\n>>  - t/helper: stop setting up `the_repository` repeatedly\n>>  - builtin/index-pack: fix deferred fsck outside repos\n>>  - oidset: introduce `oidset_equal()`\n>>  - odb: move logic to disable ref updates into repo\n>>  - odb: refactor `odb_clear()` to `odb_free()`\n>>  - odb: adopt logic to close object databases\n>>  - setup: convert `set_git_dir()` to have file scope\n>>  - path: move `enter_repo()` into \"setup.c\"\n>>  - Merge branch 'ps/object-source-loose' into ps/object-source-management\n>>  (this branch uses ps/object-source-loose.)\n>>\n>>  Code refactoring around object database sources.\n>>\n>>  Comments?\n>>  source: <20251119-b4-pks-odb-creation-v1-0-2b2ed2612cb6@pks.im>\n>\n> I've read through the patches, and I've got no comments to add.\n\nThanks.\n"},{"id":"532632","messageId":"CALnO6CA4N5yC3oHmtihdyB5mprB_GMbfiLgi+XeY5DyGK97Pcw@mail.gmail.com","threadId":"64523","inReplyTo":"xmqqtsyjxp63.fsf@gitster.g","subject":"Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)","fromName":"D. Ben Knoble","fromEmail":"ben.knoble@gmail.com","sentAt":"2025-12-22T22:06:47Z","receivedAt":"2025-12-22T22:06:59Z","isPatch":false,"sender":{"key":"ben.knoble@gmail.com","avatar":"https://avatars.githubusercontent.com/u/22802209?v=4"},"body":"On Mon, Nov 24, 2025 at 1:26 PM Junio C Hamano <gitster@pobox.com> wrote:\n>\n> \"D. Ben Knoble\" <ben.knoble@gmail.com> writes:\n>\n> > On Sun, Nov 23, 2025 at 11:59 PM Junio C Hamano <gitster@pobox.com> wrote:\n> >\n> >> --------------------------------------------------\n> >> [New Topics]\n> >>\n> >> * jc/optional-path (2025-11-20) 3 commits\n> >>  - config: really treat missing optional path as not configured\n> >>  - config: really pretend missing :(optional) value is not there\n> >>  - config: mark otherwise unused function as file-scope static\n> >>\n> >>  \"git config get --path\" segfaulted on an \":(optional)path\" that\n> >>  does not exist, which has been corrected.\n> >>\n> >>  Will merge to 'next'?\n> >>  source: <xmqqikf47ajk.fsf@gitster.g>\n> >\n> > Any interest in also marking this for 2.52.1? It's unlikely to be used\n> > much yet, but since the segfault affects several invocations (git\n> > blame, etc.) it will be irritating to folks who try the recently\n> > released version.\n>\n> Yes, this is a clear regression-fix material.  The branch you are\n> commenting on is designed to be merge-able anywhere the original\n> topic that had the segfault can be (or has been) merged, by building\n> directly on top of ccfcaf39 (parseopt: values of pathname type can\n> be prefixed with :(optional), 2025-09-28), which was the tip of the\n> original topic.\n\nI noticed a .1 was never released. I'm not sure what the\nprotocol/process/etiquette is, but figured I'd bump this in your inbox\n;)\n\nI saw your other recent mail about family things, so no rush of course.\n\n-- \nD. Ben Knoble\n"}]}