From: Junio C Hamano Date: Thu, 15 Jan 2026 18:40:54 +0000 (-0800) Subject: What's cooking (2026/01 #05) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a0ad3a72ecf39d635d698903590cc8566291fb1;p=thirdparty%2Fgit.git What's cooking (2026/01 #05) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 95234cde9f..56ede19e00 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 (Jan 2026, #04) -X-master-at: 8745eae506f700657882b9e32b2aa00f234a6fb6 -X-next-at: 054afa95bc2d358432c7c8a34045c160b9f262b3 +Subject: What's cooking in git.git (Jan 2026, #05) +X-master-at: 7264e61d87e58b9d0f5e6424c47c11e9657dfb75 +X-next-at: de669ffdefc742a24e3b6c5b7c1293aa35dc9ac2 Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Jan 2026, #04) +What's cooking in git.git (Jan 2026, #05) ----------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -48,67 +48,351 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* ja/doc-synopsis-style-more (2025-12-20) 5 commits - (merged to 'next' on 2026-01-05 at 20eb741139) - + doc: convert git-remote to synopsis style - + doc: convert git stage to use synopsis block - + doc: convert git-status tables to AsciiDoc format - + doc: convert git-status to synopsis style - + doc: fix t0450-txt-doc-vs-help to select only first synopsis block +* kh/replay-invalid-onto-advance (2026-01-05) 6 commits + (merged to 'next' on 2026-01-08 at 1024748f91) + + t3650: add more regression tests for failure conditions + + replay: die if we cannot parse object + + replay: improve code comment and die message + + replay: die descriptively when invalid commit-ish is given + + replay: find *onto only after testing for ref name + + replay: remove dead code and rearrange + (this branch is used by ps/history and pw/replay-drop-empty.) + + Improve the error message when a bad argument is given to the + `--onto` option of "git replay". Test coverage of "git replay" has + been improved. + cf. + source: + + +* ps/clar-integers (2025-12-06) 3 commits + (merged to 'next' on 2026-01-08 at 9f9674ac20) + + gitattributes: disable blank-at-eof errors for clar test expectations + + t/unit-tests: demonstrate use of integer comparison assertions + + t/unit-tests: update clar to 39f11fe + + Import newer version of "clar", unit testing framework. + source: <20251206-b4-pks-clar-update-v2-0-9a14b10c1a36@pks.im> + + +* ps/odb-misc-fixes (2026-01-06) 3 commits + (merged to 'next' on 2026-01-08 at 850d35a76d) + + odb: properly close sources before freeing them + + builtin/gc: fix condition for whether to write commit graphs + + Merge branch 'ps/object-source-management' into ps/odb-misc-fixes + (this branch is used by ps/packfile-store-in-odb-source.) + + Miscellaneous fixes on object database layer. + source: <20260106-odb-related-fixes-v3-0-7ac157207b20@pks.im> + + +* pt/t7800-difftool-test-racefix (2026-01-03) 1 commit + (merged to 'next' on 2026-01-06 at 572d775bca) + + t7800: fix racy "difftool --dir-diff syncs worktree" test + + Test fixup. + source: + +-------------------------------------------------- +[Stalled] + +* dw/config-global-list (2025-10-09) 4 commits + - config: keep bailing on unreadable global files + - config: read global scope via config_sequence + - config: test home and xdg files in `list --global` + - cleanup_path: force forward slashes on Windows + + "git config --list --global", unlike "git config --list", did not + consult both of the two possible per-user sources of the + configuration files, i.e. $HOME/.gitconfig and the XDG one, which + has been corrected. + + Will discard. Has been waiting for a reroll for too long. + cf. <20251122020047.GB3947@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> + source: + + +* ms/doc-worktree-side-by-side (2025-10-10) 2 commits + - doc: git-worktree: Add side by side branch checkout example + - doc: git-worktree: Link to examples + + Document "git worktree add" and use of out-of-tree worktrees with + examples. + + Will discard. Has been waiting for a reroll for too long. + cf. + source: + + +* jc/exclude-with-gitignore (2025-11-04) 1 commit + - dir.c: do not be fooled by :(exclude) pathspec elements + + "git add ':(exclude)foo.o'" is clearly a request not to add 'foo.o', + but the command complained about listing an ignored path foo.o on + the command line, which has been corrected. + + Will discard. Has been waiting for further comments for too long. + source: + + +* lc/rebase-trailer (2025-11-05) 4 commits + - rebase: support --trailer + - trailer: append trailers in-process and drop the fork to `interpret-trailers` + - trailer: move process_trailers to trailer.h + - interpret-trailers: factor out buffer-based processing to process_trailers() + + Refactor code paths to run "interpret-trailers" from "git + commit/tag" and use it in "git rebase". + + Will discard. Has been waiting for a reroll for too long. + cf. <19a8fe42354.3909481a3912041.7970296104893780556@linux.beauty> + source: <20251105142944.73061-1-me@linux.beauty> + + +* sp/shallow-time-boundary (2025-11-23) 1 commit + - shallow: set borders which are all reachable after clone shallow since + + The set of shallow boundary "git clone --shallow-since" leaves + contained commits that are not on the boundary, which has been + corrected. + + Will discard. Has been waiting for further comments for too long. + source: + + +* tc/last-modified-options-cleanup (2025-11-26) 4 commits + - fixup! last-modified: document option --max-depth + - last-modified: document how depth is handled better + - last-modified: document option --max-depth + - last-modified: handle and document NUL termination - More doc style updates. - source: + The "-z" and "--max-depth" documentation (and implementation of + "-z") in the "git last-modified" command have been updated. + Will discard. Has been waiting for a reroll for too long. + source: <20251126-toon-last-modified-zzzz-v1-0-608350df0caa@iotcl.com> -* js/mailmap-karsten-blees (2026-01-10) 1 commit - (merged to 'next' on 2026-01-10 at 90c69f0044) - + .mailmap: replace Karsten Blees' default address - Mailmap update for Karsten - source: +* jk/parse-int (2025-11-30) 5 commits + - fsck: use parse_unsigned_from_buf() for parsing timestamp + - cache-tree: use parse_int_from_buf() + - parse: add functions for parsing from non-string buffers + - parse: prefer bool to int for boolean returns + - Merge branch 'jk/asan-bonanza' into jk/parse-int + Introduce a more robust way to parse a decimal integer stored in a + piece of memory that is not necessarily terminated with NUL (which + Asan strict-string-check complains even when use of strtol() is + safe due to varified existence of whitespace after the digits). -* ps/t1300-2021-use-test-path-is-helpers (2026-01-04) 1 commit - (merged to 'next' on 2026-01-05 at c9366fe5a0) - + t1300: use test helpers instead of `test` command + Will discard. Has been waiting for a reroll for too long. + cf. + cf. <4d83375b-76e2-4420-80dd-6a04d3201532@gmail.com> + source: <20251130131351.GA198697@coredump.intra.peff.net> - Test updates. - source: <20260104194812.15134-1-pushkarkumarsingh1970@gmail.com> +* kn/ref-location (2025-12-01) 2 commits + - refs: add GIT_REF_URI to specify reference backend and directory + - refs: support obtaining ref_store for given dir -* rs/commit-stack (2025-12-24) 14 commits - (merged to 'next' on 2026-01-05 at 8b44eff694) - + commit-reach: use commit_stack - + commit-graph: use commit_stack - + commit: add commit_stack_grow() - + shallow: use commit_stack - + pack-bitmap-write: use commit_stack - + commit: add commit_stack_init() - + test-reach: use commit_stack - + remote: use commit_stack for src_commits - + remote: use commit_stack for sent_tips - + remote: use commit_stack for local_commits - + name-rev: use commit_stack - + midx: use commit_stack - + log: use commit_stack - + revision: export commit_stack + A mechanism to specify what reference backend to use and store + references in which directory is introduced, which would likely to + be useful during ref migration. + + Will discard. Has been waiting for further comments for too long. + source: <20251201-kn-alternate-ref-dir-v3-0-c11b946bc2fa@gmail.com> - Code clean-up, unifying various hand-rolled "list of commit - objects" and use the commit_stack API. - source: <20251224170327.68049-1-l.s.r@web.de> +* yc/histogram-hunk-shift-fix (2025-12-06) 1 commit + - xdiff: re-diff shifted change groups when using histogram algorithm + + The final clean-up phase of the diff output could turn the result of + histogram diff algorithm suboptimal, which has been corrected. + + Will discard. Has been waiting for further comments for too long. + source: + + +* js/neuter-sideband (2025-12-17) 4 commits + - sideband: add options to allow more control sequences to be passed through + - sideband: do allow ANSI color sequences by default + - sideband: introduce an "escape hatch" to allow control characters + - sideband: mask control characters -* sb/bundle-uri-without-uri (2025-12-19) 1 commit - (merged to 'next' on 2026-01-05 at 62d0a58199) - + bundle-uri: validate that bundle entries have a uri + Invalidate control characters in sideband messages, to avoid + terminal state getting messed up. - Diagnose invalid bundle-URI that lack the URI entry, instead of - crashing. - source: + Will discard. Has been waiting for further comments for too long. + cf. + source: -------------------------------------------------- [New Topics] +* tc/last-modified-not-a-tree (2026-01-14) 3 commits + - last-modified: verify revision argument is a commit-ish + - last-modified: remove double error message + - last-modified: rewrite error message when more than one revision given + + Giving "git last-modified" a tree (not a commit-ish) died an + uncontrolled death, which has been corrected. + + Expecting a reroll? + cf. + cf. + source: <20260114-toon-last-modified-tree-v2-0-ba3b1860898f@iotcl.com> + + +* sp/myfirstcontribution-include-update (2026-01-12) 1 commit + - doc: MyFirstContribution: fix missing dependencies and clarify build steps + + Doc update. + + Will merge to 'next'? + source: <20260112195625.391821-1-shreyanshpaliwalcmsmn@gmail.com> + + +* ar/run-command-hook-pre-push-fix (2026-01-14) 2 commits + - hook: make ungroup opt-out instead of opt-in + - hook: allow hooks to disable stdout_to_stderr + (this branch uses ar/run-command-hook.) + + Recent update to use run-hooks API broke pre-push hook, which has + been corrected. + + Will merge to 'next' and then to 'master'. + source: <20260114185731.2381550-3-adrian.ratiu@collabora.com> + + +* cs/add-skip-submodule-ignore-all (2026-01-13) 5 commits + - Documentation: update add --force option + ignore=all config + - tests: fix existing tests when add an ignore=all submodule + - tests: t2206-add-submodule-ignored: ignore=all and add --force tests + - read-cache: submodule add need --force given ignore=all configuration + - read-cache: update add_files_to_cache take param ignored_too + + "git add " has been taught to honor + submodule..ignore that is set to "all" (and requires "git add + -f" to override it). + + Expecting a reroll? + cf. + source: <37fe7956e089394bb1d75f4c8af4a3347b204803.1768376879.git.gitgitgadget@gmail.com> + + +* kn/ref-batch-output-error-reporting-fix (2026-01-14) 6 commits + - receive-pack: utilize rejected ref error details + - fetch: utilize rejected ref error details + - update-ref: utilize rejected error details if available + - refs: add rejection detail to the callback function + - refs: attach rejection details to updates + - refs: remove unused header + + A handful of code paths that started using batched ref update API + (after Git 2.51 or so) lost detailed error output, which have been + corrected. + + Expecting a reroll? + cf. <20260114175558.GG885771@coredump.intra.peff.net> + source: <20260114-633-regression-lost-diagnostic-message-when-pushing-non-commit-objects-to-refs-heads-v1-6-f5f8b173c501@gmail.com> + + +* ps/geometric-repacking-with-promisor-remotes (2026-01-05) 5 commits + (merged to 'next' on 2026-01-15 at a5a24c2f14) + + builtin/repack: handle promisor packs with geometric repacking + + repack-promisor: extract function to remove redundant packs + + repack-promisor: extract function to finalize repacking + + repack-geometry: extract function to compute repacking split + + builtin/pack-objects: exclude promisor objects with "--stdin-packs" + + "git repack --geometric" did not work with promisor packs, which + has been corrected. + + Will merge to 'master'. + source: <20260105-pks-geometric-repack-with-promisors-v1-0-c4660573437e@pks.im> + + +* tb/midx-write-corrupt-checksum-fix (2026-01-12) 3 commits + (merged to 'next' on 2026-01-15 at c387b3f023) + + midx-write.c: assume checksum-invalid MIDXs require an update + + t/t5319-multi-pack-index.sh: drop early 'test_done' + + Merge branch 'ps/repack-avoid-noop-midx-rewrite' into tb/midx-write-corrupt-checksum-fix + (this branch is used by tb/incremental-midx-part-3.2.) + + The logic that avoids reusing MIDX files with a wrong checksum was + broken, which has been corrected. + + Will merge to 'master'. + source: + + +* ac/sparse-checkout-string-list-cleanup (2026-01-15) 1 commit + - sparse-checkout: optimize string_list construction + + Code clean-up. + + Will merge to 'next'. + source: <20260115130935.93526-1-amishhhaaaa@gmail.com> + + +* ps/commit-list-functions-renamed (2026-01-15) 3 commits + - commit: rename `free_commit_list()` to conform to coding guidelines + - commit: rename `reverse_commit_list()` to conform to coding guidelines + - commit: rename `copy_commit_list()` to conform to coding guidelines + + Rename three functions around the commit_list data structure. + + Comments? + source: <20260115-pks-commit-list-coding-guidelines-v1-0-c58868dbf412@pks.im> + + +* ps/config-doc-get-urlmatch-fix (2026-01-15) 1 commit + - Documentation/config: fix replacement for --get-urlmatch + + Docfix. + + Will merge to 'next'. + source: <20260115110832.15315-1-pushkarkumarsingh1970@gmail.com> + + +* ps/odb-for-each-object (2026-01-15) 16 commits + - odb: drop unused `for_each_{loose,packed}_object()` functions + - reachable: convert to use `odb_for_each_object()` + - builtin/pack-objects: use `packfile_store_for_each_object()` + - odb: introduce mtime fields for object info requests + - treewide: drop uses of `for_each_{loose,packed}_object()` + - treewide: enumerate promisor objects via `odb_for_each_object()` + - builtin/fsck: refactor to use `odb_for_each_object()` + - odb: introduce `odb_for_each_object()` + - packfile: introduce function to iterate through objects + - packfile: extract function to iterate through objects of a store + - object-file: introduce function to iterate through objects + - object-file: extract function to read object info from path + - odb: fix flags parameter to be unsigned + - odb: rename `FOR_EACH_OBJECT_*` flags + - Merge branch 'ps/packfile-store-in-odb-source' into ps/odb-for-each-object + - Merge branch 'ps/read-object-info-improvements' into ps/odb-for-each-object + (this branch uses ps/packfile-store-in-odb-source and ps/read-object-info-improvements.) + + Revamp object enumeration API around odb. + + Comments? + source: <20260115-pks-odb-for-each-object-v1-0-5418a91d5d99@pks.im> + + +* ps/validate-prefix-in-subtree-split (2026-01-15) 1 commit + - subtree: validate --prefix against commit in split + + "git subtree split --prefix=P " now checks the prefix P + against the tree of the (potentially quite different from the + current working tree) given commit. + + Expecting a reroll? + source: <20260115122652.18673-2-pushkarkumarsingh1970@gmail.com> + +-------------------------------------------------- +[Cooking] + * bc/doc-stash-import-export (2026-01-08) 1 commit (merged to 'next' on 2026-01-10 at 48f26103bc) + gitfaq: document using stash import/export to sync working tree @@ -158,6 +442,7 @@ Release tarballs are available at: * ar/run-command-hook (2026-01-09) 1 commit (merged to 'next' on 2026-01-10 at 236f60e30d) + hook: check for NULL pointer before deref + (this branch is used by ar/run-command-hook-pre-push-fix.) Fix-up a topic that has recently graduated to 'master'. @@ -166,27 +451,28 @@ Release tarballs are available at: * ps/ref-consistency-checks (2026-01-12) 17 commits - - builtin/fsck: drop `fsck_head_link()` - - builtin/fsck: move generic HEAD check into `refs_fsck()` - - builtin/fsck: move generic object ID checks into `refs_fsck()` - - refs/reftable: introduce generic checks for refs - - refs/reftable: fix consistency checks with worktrees - - refs/reftable: extract function to retrieve backend for worktree - - refs/reftable: adapt includes to become consistent - - refs/files: introduce function to perform normal ref checks - - refs/files: extract generic symref target checks - - fsck: drop unused fields from `struct fsck_ref_report` - - refs/files: perform consistency checks for root refs - - refs/files: improve error handling when verifying symrefs - - refs/files: extract function to check single ref - - refs/files: remove useless indirection - - refs/files: remove `refs_check_dir` parameter - - refs/files: move fsck functions into global scope - - refs/files: simplify iterating through root refs + (merged to 'next' on 2026-01-13 at ba6c9deadb) + + builtin/fsck: drop `fsck_head_link()` + + builtin/fsck: move generic HEAD check into `refs_fsck()` + + builtin/fsck: move generic object ID checks into `refs_fsck()` + + refs/reftable: introduce generic checks for refs + + refs/reftable: fix consistency checks with worktrees + + refs/reftable: extract function to retrieve backend for worktree + + refs/reftable: adapt includes to become consistent + + refs/files: introduce function to perform normal ref checks + + refs/files: extract generic symref target checks + + fsck: drop unused fields from `struct fsck_ref_report` + + refs/files: perform consistency checks for root refs + + refs/files: improve error handling when verifying symrefs + + refs/files: extract function to check single ref + + refs/files: remove useless indirection + + refs/files: remove `refs_check_dir` parameter + + refs/files: move fsck functions into global scope + + refs/files: simplify iterating through root refs Update code paths that check data integrity around refs subsystem. - Will merge to 'next". + Will merge to 'master'. cf. source: <20260112-pks-refs-verify-fixes-v2-0-2e9e453bd6c3@pks.im> @@ -213,12 +499,13 @@ Release tarballs are available at: * cs/rebased-subtree-split (2026-01-09) 1 commit - - contrib/subtree: detect rewritten subtree commits + (merged to 'next' on 2026-01-13 at b213ccc8c1) + + contrib/subtree: detect rewritten subtree commits The split command in "git subtree" (in contrib/) has been taught to deal better with rebased history. - Will merge to 'next'. + Will merge to 'master'. source: <20260110011811.788219-1-ask+git@howdoi.land> @@ -230,40 +517,42 @@ Release tarballs are available at: get confused where the updated shallow points are, which has been corrected. - Will merge to 'next'? + Expecting a reroll? + cf. <11b951ab-b624-4ab8-b7b1-fe41a40c9d0e@app.fastmail.com> + cf. source: * kt/http-backend-errors (2026-01-11) 1 commit - - http-backend: write newlines to stderr when responding with errors + (merged to 'next' on 2026-01-13 at 35d72c8eb9) + + http-backend: write newlines to stderr when responding with errors Some error messages from the http transport layer lacked the terminating newline, which has been corrected. - Will merge to 'next'. + Will merge to 'master'. source: <20260112014508.17248-1-kj@kjtsanaktsidis.id.au> * ps/t1410-cleanup (2026-01-11) 1 commit - - t1410: use test helpers in reflog rewind test + (merged to 'next' on 2026-01-13 at 51b666d16e) + + t1410: use test helpers in reflog rewind test Test clean-up. - Will merge to 'next'. + Will merge to 'master'. source: <20260111191525.17087-1-pushkarkumarsingh1970@gmail.com> -* dd/t5403-modernise (2026-01-11) 2 commits +* dd/t5403-modernise (2026-01-12) 2 commits - t5403: use test_cmp for post-checkout argument checks - - t5403:introduce check_post_checkout helper function + - t5403: introduce check_post_checkout helper function Test clean-up. Will merge to 'next'? - source: <20260112065301.1290-3-deveshigurgaon@gmail.com> + source: <20260112163643.231-3-deveshigurgaon@gmail.com> --------------------------------------------------- -[Cooking] * ml/doc-blame-markup (2026-01-08) 2 commits (merged to 'next' on 2026-01-10 at 1f87b77810) @@ -338,7 +627,7 @@ Release tarballs are available at: source: -* hn/status-compare-with-push (2026-01-10) 2 commits +* hn/status-compare-with-push (2026-01-13) 2 commits - status: show comparison with push remote tracking branch - refactor format_branch_comparison in preparation @@ -347,18 +636,20 @@ Release tarballs are available at: different (i.e., triangular workflow). Will merge to 'next'? - source: + source: -* ob/core-attributesfile-in-repository (2026-01-02) 1 commit - - environment: move "core.attributesFile" into repo-setting +* ob/core-attributesfile-in-repository (2026-01-13) 3 commits + - environment: move "branch.autoSetupMerge" into `struct repo_config_values` + - environment: environment: stop using core.sparseCheckout globally + - environment: stop storing `core.attributesFile` globally The core.attributesfile is intended to be set per repository, but were kept track of by a single global variable in-core, which has been corrected by moving it to per-repository data structure. Comments? - source: + source: * aa/add-p-previous-decisions (2026-01-08) 1 commit @@ -389,16 +680,6 @@ Release tarballs are available at: source: -* pt/t7800-difftool-test-racefix (2026-01-03) 1 commit - (merged to 'next' on 2026-01-06 at 572d775bca) - + t7800: fix racy "difftool --dir-diff syncs worktree" test - - Test fixup. - - Will merge to 'master'. - source: - - * en/fsck-snapshot-ref-state (2026-01-09) 1 commit (merged to 'next' on 2026-01-12 at d5dff1bba4) + fsck: snapshot default refs before object walk @@ -410,25 +691,6 @@ Release tarballs are available at: source: -* kh/replay-invalid-onto-advance (2026-01-05) 6 commits - (merged to 'next' on 2026-01-08 at 1024748f91) - + t3650: add more regression tests for failure conditions - + replay: die if we cannot parse object - + replay: improve code comment and die message - + replay: die descriptively when invalid commit-ish is given - + replay: find *onto only after testing for ref name - + replay: remove dead code and rearrange - (this branch is used by ps/history and pw/replay-drop-empty.) - - Improve the error message when a bad argument is given to the - `--onto` option of "git replay". Test coverage of "git replay" has - been improved. - - Will merge to 'master'. - cf. - source: - - * cc/lop-filter-auto (2025-12-23) 9 commits - fetch-pack: wire up and enable auto filter logic - promisor-remote: keep advertised filter in memory @@ -491,7 +753,10 @@ Release tarballs are available at: Upstream symbolic link support on Windows from Git-for-Windows. - Will merge to 'next'? + Expecting a reroll. + cf. <5fe64b77-d10b-b66e-8622-14bec1e96f4a@gmx.de> + cf. <14388349-d1b5-fc8f-b6c7-4a7b43e64494@gmx.de> + cf. <704e952d-7924-00ce-b8b0-ad355e659335@gmx.de> source: @@ -505,93 +770,83 @@ Release tarballs are available at: source: -* js/neuter-sideband (2025-12-17) 4 commits - - sideband: add options to allow more control sequences to be passed through - - sideband: do allow ANSI color sequences by default - - sideband: introduce an "escape hatch" to allow control characters - - sideband: mask control characters - - Invalidate control characters in sideband messages, to avoid - terminal state getting messed up. - - Comments? - cf. - source: - - * ps/read-object-info-improvements (2026-01-12) 8 commits - - packfile: drop repository parameter from `packed_object_info()` - - packfile: skip unpacking object header for disk size requests - - packfile: disentangle return value of `packed_object_info()` - - packfile: always populate pack-specific info when reading object info - - packfile: extend `is_delta` field to allow for "unknown" state - - packfile: always declare object info to be OI_PACKED - - object-file: always set OI_LOOSE when reading object info - - Merge branch 'jc/object-read-stream-fix' into ps/read-object-info-improvements + (merged to 'next' on 2026-01-14 at e84be1a7bc) + + packfile: drop repository parameter from `packed_object_info()` + + packfile: skip unpacking object header for disk size requests + + packfile: disentangle return value of `packed_object_info()` + + packfile: always populate pack-specific info when reading object info + + packfile: extend `is_delta` field to allow for "unknown" state + + packfile: always declare object info to be OI_PACKED + + object-file: always set OI_LOOSE when reading object info + + Merge branch 'jc/object-read-stream-fix' into ps/read-object-info-improvements + (this branch is used by ps/odb-for-each-object.) The object-info API has been cleaned up. - Comments? + Will merge to 'master'. source: <20260112-b4-pks-odb-read-object-info-improvements-v5-0-9a6124e95bf2@pks.im> -* tb/macos-iconv-workarounds (2026-01-11) 2 commits - - utf8.c: enable workaround for iconv under macOS 14/15 - - utf8.c: prepare workaround for iconv under macOS 14/15 +* tb/macos-iconv-workarounds (2026-01-12) 2 commits + (merged to 'next' on 2026-01-13 at f2e51d72b8) + + utf8.c: enable workaround for iconv under macOS 14/15 + + utf8.c: prepare workaround for iconv under macOS 14/15 The iconv library on macOS fails to correctly handle stateful ISO/IEC 2022 encoded strings. Work it around instead of replacing it wholesale from homebrew. - Will merge to 'next'. - source: <20260111195151.716191-1-tboegi@web.de> + Will merge to 'master'. + source: <20260112162553.774051-1-tboegi@web.de> * js/prep-symlink-windows (2026-01-09) 6 commits - - trim_last_path_component(): avoid hard-coding the directory separator - - strbuf_readlink(): support link targets that exceed 2*PATH_MAX - - strbuf_readlink(): avoid calling `readlink()` twice in corner-cases - - init: do parse _all_ core.* settings early - - mingw: do resolve symlinks in `getcwd()` - - Merge branch 'js/test-symlink-windows' into js/prep-symlink-windows + (merged to 'next' on 2026-01-14 at d05f3a8ea5) + + trim_last_path_component(): avoid hard-coding the directory separator + + strbuf_readlink(): support link targets that exceed 2*PATH_MAX + + strbuf_readlink(): avoid calling `readlink()` twice in corner-cases + + init: do parse _all_ core.* settings early + + mingw: do resolve symlinks in `getcwd()` + + Merge branch 'js/test-symlink-windows' into js/prep-symlink-windows (this branch is used by js/symlink-windows.) Further preparation to upstream symbolic link support on Windows. - Will merge to 'next'? + Will merge to 'master'. source: -* ap/http-probe-rpc-use-auth (2025-11-12) 1 commit - - remote-curl: Use auth for probe_rpc() requests too +* ap/http-probe-rpc-use-auth (2026-01-14) 1 commit + - remote-curl: use auth for probe_rpc() requests too HTTP transport failed to authenticate in some code pahts, which has been corrected. - Expecting a reroll? - cf. - source: <20251112223722.376330-1-aplattner@nvidia.com> + Will merge to 'next'? + source: <20260114163619.614297-2-aplattner@nvidia.com> * ps/packfile-store-in-odb-source (2026-01-09) 12 commits - - packfile: move MIDX into packfile store - - packfile: refactor `find_pack_entry()` to work on the packfile store - - packfile: inline `find_kept_pack_entry()` - - packfile: only prepare owning store in `packfile_store_prepare()` - - packfile: only prepare owning store in `packfile_store_get_packs()` - - packfile: move packfile store into object source - - packfile: refactor misleading code when unusing pack windows - - packfile: refactor kept-pack cache to work with packfile stores - - packfile: pass source to `prepare_pack()` - - packfile: create store via its owning source - - Merge branch 'ps/odb-misc-fixes' into ps/packfile-store-in-odb-source - - Merge branch 'ps/object-read-stream' into ps/packfile-store-in-odb-source - (this branch uses ps/odb-misc-fixes.) + (merged to 'next' on 2026-01-14 at f375c8e347) + + packfile: move MIDX into packfile store + + packfile: refactor `find_pack_entry()` to work on the packfile store + + packfile: inline `find_kept_pack_entry()` + + packfile: only prepare owning store in `packfile_store_prepare()` + + packfile: only prepare owning store in `packfile_store_get_packs()` + + packfile: move packfile store into object source + + packfile: refactor misleading code when unusing pack windows + + packfile: refactor kept-pack cache to work with packfile stores + + packfile: pass source to `prepare_pack()` + + packfile: create store via its owning source + + Merge branch 'ps/odb-misc-fixes' into ps/packfile-store-in-odb-source + + Merge branch 'ps/object-read-stream' into ps/packfile-store-in-odb-source + (this branch is used by ps/odb-for-each-object.) The packfile_store data structure is moved from object store to odb source. - Will merge to 'next'? + Will merge to 'master'. source: <20260109-b4-pks-pack-store-via-source-v3-0-877fd7b7bf81@pks.im> @@ -616,32 +871,7 @@ Release tarballs are available at: source: -* ps/odb-misc-fixes (2026-01-06) 3 commits - (merged to 'next' on 2026-01-08 at 850d35a76d) - + odb: properly close sources before freeing them - + builtin/gc: fix condition for whether to write commit graphs - + Merge branch 'ps/object-source-management' into ps/odb-misc-fixes - (this branch is used by ps/packfile-store-in-odb-source.) - - Miscellaneous fixes on object database layer. - - Will merge to 'master'. - source: <20260106-odb-related-fixes-v3-0-7ac157207b20@pks.im> - - -* ps/clar-integers (2025-12-06) 3 commits - (merged to 'next' on 2026-01-08 at 9f9674ac20) - + gitattributes: disable blank-at-eof errors for clar test expectations - + t/unit-tests: demonstrate use of integer comparison assertions - + t/unit-tests: update clar to 39f11fe - - Import newer version of "clar", unit testing framework. - - Will merge to 'master'. - source: <20251206-b4-pks-clar-update-v2-0-9a14b10c1a36@pks.im> - - -* tb/incremental-midx-part-3.2 (2025-12-06) 17 commits +* tb/incremental-midx-part-3.2 (2026-01-14) 19 commits - midx: enable reachability bitmaps during MIDX compaction - midx: implement MIDX compaction - t/helper/test-read-midx.c: plug memory leak when selecting layer @@ -657,61 +887,22 @@ Release tarballs are available at: - git-multi-pack-index(1): align SYNOPSIS with 'git multi-pack-index -h' - git-multi-pack-index(1): remove non-existent incompatibility - builtin/multi-pack-index.c: make '--progress' a common option - - midx: split `get_midx_checksum()` by adding `get_midx_hash()` + - midx: introduce `midx_get_checksum_hex()` + - midx: rename `get_midx_checksum()` to `midx_get_checksum_hash()` - midx: mark `get_midx_checksum()` arguments as const + - Merge branch 'tb/midx-write-corrupt-checksum-fix' into tb/incremental-midx-part-3.2 + (this branch uses tb/midx-write-corrupt-checksum-fix.) Further work on incremental repacking using MIDX/bitmap - Expecting a reroll. - cf. - source: - - -* yc/histogram-hunk-shift-fix (2025-12-06) 1 commit - - xdiff: re-diff shifted change groups when using histogram algorithm - - The final clean-up phase of the diff output could turn the result of - histogram diff algorithm suboptimal, which has been corrected. - Comments? - source: - - -* jk/parse-int (2025-11-30) 5 commits - - fsck: use parse_unsigned_from_buf() for parsing timestamp - - cache-tree: use parse_int_from_buf() - - parse: add functions for parsing from non-string buffers - - parse: prefer bool to int for boolean returns - - Merge branch 'jk/asan-bonanza' into jk/parse-int - - Introduce a more robust way to parse a decimal integer stored in a - piece of memory that is not necessarily terminated with NUL (which - Asan strict-string-check complains even when use of strtol() is - safe due to varified existence of whitespace after the digits). - - Expecting a reroll. - cf. - cf. <4d83375b-76e2-4420-80dd-6a04d3201532@gmail.com> - source: <20251130131351.GA198697@coredump.intra.peff.net> - - -* tc/last-modified-options-cleanup (2025-11-26) 4 commits - - fixup! last-modified: document option --max-depth - - last-modified: document how depth is handled better - - last-modified: document option --max-depth - - last-modified: handle and document NUL termination - - The "-z" and "--max-depth" documentation (and implementation of - "-z") in the "git last-modified" command have been updated. - - Expecting a reroll. - source: <20251126-toon-last-modified-zzzz-v1-0-608350df0caa@iotcl.com> + source: * pw/replay-drop-empty (2025-12-18) 2 commits - replay: drop commits that become empty - Merge branch 'ps/history' into pw/replay-drop-empty - (this branch uses kh/replay-invalid-onto-advance and ps/history.) + (this branch uses ps/history.) "git replay" is taught to drop commits that become empty (not the ones that are empty in the original). @@ -720,70 +911,6 @@ Release tarballs are available at: source: <375adc4e941f3bb22a2b12ee26a083951ed724dd.1766076625.git.phillip.wood@dunelm.org.uk> -* sp/shallow-time-boundary (2025-11-23) 1 commit - - shallow: set borders which are all reachable after clone shallow since - - The set of shallow boundary "git clone --shallow-since" leaves - contained commits that are not on the boundary, which has been - corrected. - - Comments? - source: - - -* kn/ref-location (2025-12-01) 2 commits - - refs: add GIT_REF_URI to specify reference backend and directory - - refs: support obtaining ref_store for given dir - - A mechanism to specify what reference backend to use and store - references in which directory is introduced, which would likely to - be useful during ref migration. - - Comments? - source: <20251201-kn-alternate-ref-dir-v3-0-c11b946bc2fa@gmail.com> - - -* dw/config-global-list (2025-10-09) 4 commits - - config: keep bailing on unreadable global files - - config: read global scope via config_sequence - - config: test home and xdg files in `list --global` - - cleanup_path: force forward slashes on Windows - - "git config --list --global", unlike "git config --list", did not - consult both of the two possible per-user sources of the - configuration files, i.e. $HOME/.gitconfig and the XDG one, which - has been corrected. - - Expecting a reroll. - cf. <20251122020047.GB3947@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> - source: - - -* lc/rebase-trailer (2025-11-05) 4 commits - - rebase: support --trailer - - trailer: append trailers in-process and drop the fork to `interpret-trailers` - - trailer: move process_trailers to trailer.h - - interpret-trailers: factor out buffer-based processing to process_trailers() - - Refactor code paths to run "interpret-trailers" from "git - commit/tag" and use it in "git rebase". - - Expecting a reroll. - cf. <19a8fe42354.3909481a3912041.7970296104893780556@linux.beauty> - source: <20251105142944.73061-1-me@linux.beauty> - - -* jc/exclude-with-gitignore (2025-11-04) 1 commit - - dir.c: do not be fooled by :(exclude) pathspec elements - - "git add ':(exclude)foo.o'" is clearly a request not to add 'foo.o', - but the command complained about listing an ignored path foo.o on - the command line, which has been corrected. - - Comments? - source: - - * bc/sha1-256-interop-02 (2025-11-17) 15 commits - object-file-convert: always make sure object ID algo is valid - rust: add a small wrapper around the hashfile code @@ -819,7 +946,7 @@ Release tarballs are available at: source: -* ps/history (2026-01-12) 9 commits +* ps/history (2026-01-13) 9 commits - builtin/history: implement "reword" subcommand - builtin: add new "history" command - wt-status: provide function to expose status for trees @@ -829,25 +956,15 @@ Release tarballs are available at: - builtin/replay: move core logic into "libgit.a" - builtin/replay: extract core logic to replay revisions - Merge branch 'kh/replay-invalid-onto-advance' into ps/history - (this branch is used by pw/replay-drop-empty; uses kh/replay-invalid-onto-advance.) + (this branch is used by pw/replay-drop-empty.) "git history" history rewriting UI. - source: <20260112-b4-pks-history-builtin-v10-0-e3c6aa5b4cec@pks.im> - -* ms/doc-worktree-side-by-side (2025-10-10) 2 commits - - doc: git-worktree: Add side by side branch checkout example - - doc: git-worktree: Link to examples - - Document "git worktree add" and use of out-of-tree worktrees with - examples. - - Expecting a reroll. - cf. - source: + Will merge to 'next'? + source: <20260113-b4-pks-history-builtin-v11-0-e74ebfa2652d@pks.im> -* ar/submodule-gitdir-tweak (2026-01-07) 11 commits +* ar/submodule-gitdir-tweak (2026-01-12) 11 commits - submodule: detect conflicts with existing gitdir configs - submodule: hash the submodule name for the gitdir path - submodule: fix case-folding gitdir filesystem collisions @@ -864,8 +981,8 @@ Release tarballs are available at: each other by encoding submodule names before using them as path components. - Comments? - source: <20260107230145.517562-1-adrian.ratiu@collabora.com> + Will merge to 'next'? + source: <20260112184632.1334495-1-adrian.ratiu@collabora.com> -------------------------------------------------- [Discarded] @@ -876,6 +993,6 @@ Release tarballs are available at: The command line completion script (in contrib/) learned to complete "git -" to give single-letter options like "-C". - Will discard. We do not complete single-letter options themselves. + We do not complete single-letter options themselves. cf. source: