From 8f5b73ea9956ff88ac3b1ceb70c127c6bb4d8e08 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 26 Aug 2026 13:44:32 -0700 Subject: [PATCH] What's cooking (2026/08 #11) --- whats-cooking.txt | 1262 ++++++++++++++++++++++++++------------------- 1 file changed, 720 insertions(+), 542 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 64a69d457d..310e306800 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 (Aug 2026, #10) -X-master-at: 1a3e64c6c4a623626ff0687008732a8e007e2a1c -X-next-at: b25b4bd76c75363f63222e781088d0833952c20c +Subject: What's cooking in git.git (Aug 2026, #11) +X-master-at: f78ce2f7b6df702f93d40b85d6bda92a3f65da79 +X-next-at: 62bdec98f9fa1a58f2e2016932af9bea677139c9 Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Aug 2026, #10) +What's cooking in git.git (Aug 2026, #11) ----------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -17,10 +17,10 @@ A topic without enough support may be discarded after a long period of no activity (of course, it can be resubmitted when new interest arises). -The 16th batch of topics have now graduated to the 'master' branch. -We have 472 non-merge commits in 'master' since Git 2.55. There -are 128 non-merge commits cooking in 'next' (note that some have -been reverted), and 251 non-merge commits, including those in and +The 19th batch of topics have now graduated to the 'master' branch. +We have 563 non-merge commits in 'master' since Git 2.55. There +are 75 non-merge commits cooking in 'next' (note that some have +been reverted), and 209 non-merge commits, including those in and out of 'next', in 'seen' as of this writing. Copies of the source code to Git live in many repositories, and the @@ -51,9 +51,606 @@ Release tarballs are available at: https://www.kernel.org/pub/software/scm/git/ +-------------------------------------------------- +[Graduated to 'master'] + +* cc/fast-import-usage (2026-08-11) 12 commits + (merged to 'next' on 2026-08-15 at a0434930b4) + + fast-import: remove useless from_stream argument + + fast-import: use parse_options() for command line options + + fast-import: use callbacks to parse some options + + fast-import: use struct option for usage string + + fast-import: move command state globals into 'struct fast_import_state' + + fast-import: introduce 'struct fast_import_state' + + fast-import: factor out option_*() functions + + fast-import: use int for some bool flags + + fast-import: localize 'i' into the 'for' loops using it + + api-parse-options.adoc: document hidden and OPT_*_F option macros + + api-parse-options.adoc: document per-option flags + + parse-options: introduce OPT_HIDDEN_GROUP + + The usage string of 'git fast-import' has been updated to use the + parse_options() API for displaying help, and its SYNOPSIS in the + documentation has been standardized to match. + + Graduated to 'master'. + cf. + source: <20260811083314.2023489-1-christian.couder@gmail.com> + + +* cc/git-shallow-file-wo-value (2026-08-11) 1 commit + (merged to 'next' on 2026-08-17 at f6a6ff92a6) + + git: avoid segfault on "git --shallow-file" without a value + + The '--shallow-file' option of 'git' command requires a value, but the + code did not check the presence of a value and instead segfaulted + without one, which has been corrected. + + Graduated to 'master'. + cf. + cf. + source: <20260811121446.2080190-1-christian.couder@gmail.com> + + +* ch/chdir-notify-drop-name (2026-08-14) 1 commit + (merged to 'next' on 2026-08-18 at 973cefddd7) + + chdir-notify.h: Removed unused param 'name' + + The unused name parameter in 'struct chdir_notify_entry' has been + removed from chdir_notify_register(), chdir_notify_unregister(), and + related callback signatures across several subsystems, simplifying the + API now that trace output no longer uses it. + + Graduated to 'master'. + cf. <20260815051213.GA26013@coredump.intra.peff.net> + source: <20260814214210.1625-1-colinlewishinton@gmail.com> + + +* en/diff-l-opt-help (2026-08-13) 1 commit + (merged to 'next' on 2026-08-17 at 4b6b3295ed) + + diff: avoid misleading statement about -l option + + The help text for the '-l' option of 'git diff' has been updated. + + Graduated to 'master'. + cf. + source: + + +* en/sequencer-lose-pretty-given (2026-08-11) 1 commit + (merged to 'next' on 2026-08-17 at 82d0706aef) + + sequencer: remove unnecessary variable setting + + The setting of a now-unused member '.pretty_given' in the sequencer + machinery has been removed. + + Graduated to 'master'. + cf. + cf. + source: + + +* en/serve-promisor-remote-fix (2026-08-11) 1 commit + (merged to 'next' on 2026-08-17 at a4d7a9d1d6) + + serve: reject valueless promisor-remote capability + + A client requesting the promisor-remote capability without a value + caused a null pointer dereference, which has been corrected by + rejecting a request without an argument. + + Graduated to 'master'. + cf. + source: + + +* hn/send-email-missing-subject-error (2026-08-10) 1 commit + (merged to 'next' on 2026-08-15 at 6470901400) + + send-email: clarify missing subject error + + The error message given by 'git send-email' when a message file is + missing a 'Subject:' header has been clarified, and the error string + is now terminated with a newline so that Perl avoids appending its + internal source location data. + + Graduated to 'master'. + cf. + source: + + +* jc/complete-checkout (2026-08-13) 4 commits + (merged to 'next' on 2026-08-19 at 758fc8c411) + + completion: 'git checkout' completes untracked paths as a last resort + + completion: complete tracked paths for "git checkout" + + completion: no-op refactoring of checkout completion + + Merge branch 'jc/complete-diff-tracked-paths' into jc/complete-checkout + (this branch uses jc/complete-diff-tracked-paths.) + + 'git -C checkout fi' did not complete, which has been + corrected. + + Graduated to 'master'. + cf. + source: <20260813191234.1066662-1-gitster@pobox.com> + + +* jc/complete-diff-tracked-paths (2026-08-12) 3 commits + (merged to 'next' on 2026-08-19 at 37263f6528) + + completion: 'git diff' completes untracked paths as a last resort + + completion: complete tracked paths for 'git diff' + + completion: no-op refactoring of diff completion + (this branch is used by jc/complete-checkout.) + + 'git -C diff fi' did not complete 'file', which has been + corrected. + + Graduated to 'master'. + cf. + source: <20260812162551.2229680-1-gitster@pobox.com> + + +* js/coverity-unchecked-returns-fix (2026-08-12) 12 commits + (merged to 'next' on 2026-08-17 at 105f002870) + + bisect: handle dup() failure when redirecting stdout + + bisect: check get_terms return at all call sites + + bisect: check strbuf_getline_lf return when reading terms + + transport-helper: warn when export-marks file cannot be finalized + + transport-helper: check dup() return in get_exporter + + compat/pread: check initial lseek for errors + + last-modified: handle repo_parse_commit() failures + + reftable tests: check reftable_table_init_ref_iterator() return + + reftable/block: check deflateInit() return value + + reftable: handle block-writer initialization errors + + config: propagate launch_editor() failure in show_editor() + + http: die on curl_easy_duphandle failure in get_active_slot + + A handful of code paths have been corrected to check return values + from functions like curl_easy_duphandle(), deflateInit(), lseek(), + dup(), and strbuf_getline_lf(), resolving several Coverity warnings + about unchecked returns. + + Graduated to 'master'. + cf. + source: + + +* js/pack-objects-delta-size-t (2026-08-13) 13 commits + (merged to 'next' on 2026-08-17 at b6778ce373) + + packfile: widen `unpack_object_header_buffer()` to `size_t` + + git-zlib: widen `git_deflate_bound()` to `size_t` + + t/helper/test-pack-deltas: widen `do_compress()`'s maxsize local to `size_t` + + http-push: widen `start_put()`'s size local from `ssize_t` to `size_t` + + diff: widen `deflate_it()`'s bound local from int to `size_t` + + archive-zip: widen `zlib_deflate_raw()`'s maxsize local to `size_t` + + packfile, git-zlib: widen `use_pack()` and zstream avail fields to `size_t` + + delta: widen `create_delta()` and `diff_delta()` to `size_t` + + pack-objects: widen `mem_usage` and `try_delta()`'s out-param to `size_t` + + pack-objects: widen `free_unpacked()` return to `size_t` + + pack-objects: widen delta-cache accounting to `size_t` + + delta: widen `create_delta_index()` parameter to `size_t` + + diff-delta: widen `struct delta_index`' size fields to `size_t` + + The 'pack-objects' and delta-encoding code paths have been updated to + use 'size_t' instead of 'unsigned long' for object sizes and offset + limits, avoiding potential truncation issues on 64-bit Windows. + + Graduated to 'master'. + cf. + source: + + +* js/packfile-fast-append (2026-08-13) 1 commit + (merged to 'next' on 2026-08-18 at cc3da5a03d) + + packfile: fix perf regression with many packs + + The performance of adding numerous new packfiles has been improved + by introducing a fast path for known-new packfiles to skip an + unnecessary traversal in packfile_list_append(), avoiding a + quadratic complexity regression on load. + + Graduated to 'master'. + cf. + cf. + source: + + +* js/sequencer-release-odb-before-commit (2026-08-12) 1 commit + (merged to 'next' on 2026-08-15 at 1c83dffd7a) + + sequencer: release the ODB before spawning git commit + + The sequencer has been updated to release the object database before + spawning 'git commit'. This prevents open file handles from + blocking auto-maintenance tasks, such as repacking, on systems like + Windows where open files cannot be easily unlinked. + + Graduated to 'master'. + cf. + source: + + +* kk/merge-base-exhaustion (2026-08-11) 11 commits + (merged to 'next' on 2026-08-15 at 3f836fa1e4) + + commit-reach: remove commit-date ordering fallback + + commit-reach: move min_generation check into paint_queue_get() + + commit-reach: terminate merge-base walk when one paint side is exhausted + + commit-reach: introduce struct paint_state with per-side counters + + t6600: add clock-skew topologies and step counts for edge cases + + commit-reach: add trace2 instrumentation to paint_down_to_common() + + t6099: add side-exhaustion regression test + + t6600: add test cases for side-exhaustion edge cases + + test-lib-functions: improve diagnostic output for trace2 data assertions + + Documentation/technical: add paint-down-to-common doc + + Merge branch 'kk/commit-reach-find-all-fix' into kk/merge-base-exhaustion + + The merge-base computation has been optimized by stopping the walk + early when one side's exclusive commits in the queue are exhausted, + yielding significant speedups for queries with one-sided histories. + + Graduated to 'master'. + cf. + cf. + source: + + +* ps/cat-file-remote-object-info-type (2026-08-07) 11 commits + (merged to 'next' on 2026-08-15 at 3f5daf59a8) + + cat-file: unify default format + + serve: advertise type capability + + fetch-object-info: parse type from server response + + protocol-caps: add type support to object-info + + transport: drop remote object-info fields from transport struct + + fetch-object-info: die() on the remaining error path + + fetch-object-info: use dedicated struct for the results + + fetch-object-info: pass arguments directly instead of a struct + + fetch-object-info: detect malformed server responses + + t5701: use test_file_size() to get the size of a file + + Merge branch 'ps/cat-file-remote-object-info' into ps/cat-file-remote-object-info-type + + The 'remote-object-info' command for 'git cat-file --batch-command' + has been extended to support the '%(objecttype)' placeholder. + + Graduated to 'master'. + cf. <20260808074157.GA2915582@coredump.intra.peff.net> + cf. + cf. + source: <20260808-objecttype-support-v6-0-e5cdaf27a49c@gmail.com> + + +* ps/odb-streams (2026-08-05) 8 commits + (merged to 'next' on 2026-08-15 at a8fbd74d00) + + odb/streaming: unify function names to create new streams + + odb/streaming: rename `struct input_zstream_data` + + odb/streaming: rename `struct read_object_fd_data` + + odb/streaming: consolidate read and write streams + + odb/streaming: rename `struct odb_read_stream` + + odb/streaming: support streaming arbitrary object types + + odb/streaming: drop `is_finished` field + + odb/streaming: track write stream size in the structure + + The 'struct odb_read_stream' and 'struct odb_write_stream' + structures have been consolidated into a single unified 'struct + odb_stream' structure, simplifying object database streaming APIs + and enabling streaming of arbitrary object types. + + Graduated to 'master'. + cf. + source: <20260805-pks-odb-stream-unification-v2-0-b8c369564641@pks.im> + + +* ps/t7900-deflake-maintenance (2026-08-12) 2 commits + (merged to 'next' on 2026-08-17 at 7ef446fd59) + + t7900: fix flaky "maintenance.strategy" test + + t7900: adapt some tests to use a throwaway repository + + Various tests in 't7900-maintenance.sh' have been updated to use a + throwaway repository, and auto-detaching of maintenance tasks is now + disabled for these tests to fix flaky races with concurrent background + maintenance jobs. + + Graduated to 'master'. + cf. + source: <20260812-pks-t7900-fix-flaky-test-v2-0-9ea0e1ac0edd@pks.im> + + +* ss/repack-drop-filtered (2026-08-13) 6 commits + (merged to 'next' on 2026-08-18 at 23ad3f2b76) + + builtin/repack: add guards for --drop-filtered + + builtin/repack: actually drop filtered promisor blobs + + builtin/repack: enumerate promisor blobs for --drop-filtered + + repack-promisor: allow excluding objects from the rebuilt promisor pack + + list-objects-filter: add list_objects_filter__filter_oidset() + + builtin/repack: add --drop-filtered and --dry-run options + + 'git repack' has been taught '--drop-filtered' to delete local + promisor blobs exceeding a limit (currently 'blob:limit=') in partial + clones, reclaiming space. Guards prevent running during other + operations or if referenced by the index. + + Graduated to 'master'. + cf. + source: <20260813200830.84348-1-r.siddharth.shrimali@gmail.com> + + +* ss/submittingpatches-typofix (2026-08-14) 1 commit + (merged to 'next' on 2026-08-18 at b251ddc3d7) + + doc: fix typo in submitting patches + + Typofix. + + Graduated to 'master'. + cf. + source: + -------------------------------------------------- [New Topics] +* dw/config-read-both-global (2026-08-23) 3 commits + - config: read global scope via config_sequence + - config: let sequence require a successful file + - path: use forward slashes in XDG config on Windows + + The git config --global read operations have been updated to respect + both $HOME/.gitconfig and $XDG_CONFIG_HOME/git/config, fixing an + inconsistency where only the former was read when both configuration + files are present. + + Waiting for response. + cf. + cf. + cf. + cf. + source: <20260823-fix-config-list-global-home-and-xdg-v2-0-b29cc63f017b@microsoft.com> + + +* vv/branch-recurse-no-start-ref (2026-08-21) 2 commits + - branch: allow recursion with no tracking name + - branch: do not track a start point with no ref + + The --recurse-submodules option in 'git branch' has been fixed to + avoid a crash when the start point is not a reference (e.g., a raw + object ID). The creation path now skips setting up tracking and + properly forwards the absent tracking name to the submodule helper. + + Needs review. + source: <20260822-vv-branch-recurse-no-start-ref-v1-0-46dc140acaa8@zitro.id> + + +* kn/reftable-optimize-reloading (2026-08-24) 4 commits + - reftable/stack: avoid reloading the stack when already locked + - reftable/stack: move list lock to `struct reftable_stack` + - reftable/stack: rename reftable_stack_new_addition() + - reftable/stack: remove `REFTABLE_STACK_NEW_ADDITION_RELOAD` + + The reftable code has been optimized to avoid an unnecessary + stat/reload of the stack when an addition already holds the + list_file lock, reducing the number of newfstatat syscalls from + linear to constant when writing refs. + + Will merge to 'next'? + cf. + cf. <20260824225202.GA190620@coredump.intra.peff.net> + source: <20260824-740-optimize-reloading-the-reftable-stack-v2-0-9c9de2eb0af7@gmail.com> + + +* kh/format-patch-range-diff-notes (2026-08-24) 3 commits + - format-patch: learn --[no-]range-diff-notes + - revision.h: rename struct member to reflect notes role + - format-patch: simplify get_notes_arg parameters + + The 'format-patch' command has been updated with options to + configure notes specifically for range-diff output, allowing them to + differ from the notes displayed on the patches themselves. + + Waiting for response. + cf. + source: + + +* jc/rerere-doc-typofix (2026-08-24) 1 commit + (merged to 'next' on 2026-08-25 at 62bdec98f9) + + rerere: technical documentation typofix + + A missing preposition in the rerere technical documentation has been + fixed. + + Will merge to 'master'. + source: + + +* ps/odb-alternates-at-creation (2026-08-25) 8 commits + - odb/source: remove the ability to write alternates + - builtin/clone: write alternates via `odb_create_on_disk()` + - odb/source: support writing alternates when creating the database + - builtin/clone: move setup of alternates for non-shared local clones + - builtin/clone: move setup of alternates for shared local clones + - builtin/clone: refactor handling of "--reference{,-if-able}" + - builtin/clone: move around `setup_reference()` + - builtin/clone: defer setup of the object database + - Merge branch 'ps/odb-eagerly-load-alternates' into ps/odb-alternates-at-creation + (this branch uses ps/odb-eagerly-load-alternates.) + + The setup of alternates has been deferred to object database + creation time during clone, which drops the unused ad-hoc alternate + writing API, simplifying the object database backend interface. + + Needs review. + source: <20260825-pks-odb-write-alternates-at-creation-time-v1-0-911513ba95c3@pks.im> + + +* ps/odb-pluggable-fsck (2026-08-25) 10 commits + - builtin/fsck: move loose object verification into the loose source + - builtin/fsck: move multi-pack index verification into the packed source + - builtin/fsck: move bitmap verification into the packed source + - builtin/fsck: move reverse index verification into the packed source + - builtin/fsck: move packfile verification into the packed source + - odb: provide infrastructure for pluggable fsck checks + - builtin/fsck: don't check alternates with "--no-full" + - builtin/fsck: de-globalize option handling + - builtin/fsck: merge `fsck_obj_buffer()` and `fsck_obj()` + - builtin/fsck: use `fsck_obj_buffer()` when checking loose objects + - Merge branch 'ps/odb-eagerly-load-alternates' into ps/odb-pluggable-fsck + - Merge branch 'ps/odb-pluggable-pack-generation' into ps/odb-pluggable-fsck + (this branch uses ps/odb-eagerly-load-alternates and ps/odb-pluggable-pack-generation.) + + The consistency checks for the object database (fsck) have been + decoupled from the generic builtin implementation and moved into the + backend-specific object source layers, making them pluggable for + different object storage formats. + + Needs review. + source: <20260825-pks-odb-source-fsck-v1-0-b756de0bf24f@pks.im> + + +* rs/worktree-add-basename-fixes (2026-08-25) 4 commits + - worktree add: let worktree_basename() return string copy + - worktree add: trim slashes when deriving branch name from path + - worktree add: reject separator-only path + - worktree add: don't read out of bounds in worktree_basename() + + The string extraction logic for the branch name and worktree name + from the given path in 'git worktree add' has been corrected and + simplified to avoid out-of-bounds reads and improper handling of + trailing slashes. + + Waiting for review. + cf. + cf. + source: <20260825180350.2099-1-l.s.r@web.de> + + +* en/no-amend-during-conflicts (2026-08-25) 1 commit + - commit: refuse to amend during conflict resolution + + Teach 'am', 'revert', and 'rebase' that running 'commit --amend' + makes no sense during operations that stop and return control to + the user to resolve conflicts left in the working tree, just like + 'cherry-pick' and 'merge' do. + + Waiting for response. + cf. <4688ee19-b782-456a-bed2-8cd2a4415736@gmail.com> + cf. + source: + +-------------------------------------------------- +[Stalled] + +* ps/libgit-in-subdir (2026-07-12) 2 commits + . Move libgit.a sources into separate "lib/" directory + . t/helper: prepare "test-example-tap.c" for introduction of "lib/" + . Merge branch 'ps/odb-source-packed' into ps/libgit-in-subdir + + The source files for 'libgit.a' have been moved into a new 'lib/' + directory to clean up the top-level directory and clearly separate + library code. This topic has been ejected for now, as it causes too + many evil merges with other topics. + + Waiting for response for too long, stalled. + cf. + cf. + cf. + cf. + source: <20260713-pks-libgit-in-subdir-v4-0-696240876eb1@pks.im> + + +* hs/rebase-continue-edit (2026-07-21) 1 commit + - rebase: add --[no-]edit to --continue + + Support for skipping the editor when continuing a rebase after + conflict resolution has been added with the '--no-edit' option, and + forcing it with '--edit'. A new configuration variable + 'rebase.noEdit' can be used to set the default behavior. + + Waiting for response for too long, stalled. + cf. + cf. + source: <20260721140443.1809379-2-hugo@hsal.es> + + +* sn/rebase-update-refs-symrefs (2026-07-22) 2 commits + - rebase: guard non-branch symref targets + - rebase: skip branch symref aliases + + 'git rebase --update-refs' has been taught to resolve local branch + symrefs to their referents before queuing updates, ensuring aliases of + the current branch are skipped and duplicate updates are avoided to + prevent failures when branch aliases are present. + + Waiting for response for too long, stalled. + cf. <1eba5fb2-ab76-41e9-955d-e283256ad25d@gmail.com> + cf. <98682fa4-55d9-4829-97f1-02e244b35266@gmail.com> + source: + + +* tb/pack-with-duplicates (2026-07-24) 5 commits + - pack-bitmap: handle duplicate pack entries during MIDX reuse + - test-tool bitmap: reject packs with duplicate objects + - midx: verify duplicate pack entries by OID and offset + - packfile: recover delta cycles through duplicate entries + - t5308: test reverse indexes with duplicate objects + + The handling of packfiles with duplicate object entries has been + hardened. Specifically, reverse index lookup, delta cycle + recovery, multi-pack-index verification, and pack reuse paths have + been updated to correctly handle or gracefully reject duplicate + entries. + + Waiting for response for too long, stalled. + cf. + source: + + +* tc/replay-linearize (2026-07-28) 3 commits + - replay: offer an option to linearize the commit topology + - replay: resolve the replay base outside pick_regular_commit() + - replay: add helper to put entry into replayed_commits + + The 'git replay' command has been taught the '--linearize' option to + drop merge commits and linearize the replayed history, mimicking 'git + rebase --no-rebase-merges'. + + Waiting for response for too long, stalled. + cf. + cf. + source: <20260728-toon-git-replay-drop-merges-v8-0-ced11dffe749@iotcl.com> + + +* cl/regexec-macos-leak (2026-07-28) 2 commits + - SQUASH??? + - regexec: work around macOS TRE leak on invalid UTF-8 + + A compatibility workaround has been introduced for macOS to address + a memory leak in the system regex engine when it encounters invalid + multibyte sequences. The workaround segments the input buffer at + invalid byte boundaries and searches each valid segment separately + using regexec(), avoiding the leaking path. + + Waiting for response for too long, stalled. + cf. + cf. + source: <20260728052538.12429-1-chungmin@chungminlee.com> + + +* cc/lazy-fetch-trusted-bit (2026-08-13) 5 commits + - builtin/upload-pack: set GIT_NO_LAZY_FETCH to 0 on trusted repo + - upload-pack: read uploadpack.lazyFetchTrusted + - setup: add 'allow_dot' arg to path_allowlist_apply() + - setup: extract path_allowlist_apply() + - promisor-remote: factor out lazy_fetch_objects() + + A new 'uploadpack.lazyFetchTrusted' configuration variable has been + introduced to allow 'upload-pack' to lazily fetch missing objects from + configured promisor remotes when serving trusted repositories. + + Waiting for response for too long, stalled. + cf. + cf. + cf. + cf. + cf. + source: <20260813154748.2378747-1-christian.couder@gmail.com> + +-------------------------------------------------- +[Cooking] + * as/utimensat-utimes (2026-08-21) 3 commits - compat/posix: drop legacy header and shims - treewide: use utimensat(2) instead of legacy utime(3p) @@ -65,7 +662,6 @@ Release tarballs are available at: Waiting for response. cf. - cf. source: @@ -83,61 +679,47 @@ Release tarballs are available at: * ps/odb-geometric-repack-loose-threshold (2026-08-11) 1 commit - - odb/files: be less aggressive with geometric repacking + (merged to 'next' on 2026-08-24 at f91738c4a4) + + odb/files: be less aggressive with geometric repacking The threshold for geometric repacking to trigger based on loose object count has been adjusted to match that of 'git gc --auto', preventing over-aggressive repacking during concurrent writes. - Will merge to 'next'? + Will merge to 'master'. cf. cf. source: <20260811-pks-geometric-maintenance-reduce-frequency-v1-1-7a54c42355ac@pks.im> --------------------------------------------------- -[Stalled] -* hs/rebase-continue-edit (2026-07-21) 1 commit - - rebase: add --[no-]edit to --continue - - Support for skipping the editor when continuing a rebase after - conflict resolution has been added with the '--no-edit' option, and - forcing it with '--edit'. A new configuration variable - 'rebase.noEdit' can be used to set the default behavior. - - Waiting for response for too long, stalled. - cf. - cf. - source: <20260721140443.1809379-2-hugo@hsal.es> - --------------------------------------------------- -[Cooking] - -* kn/receive-report-hook (2026-08-21) 1 commit - - hook: introduce the report hook for git-receive-pack(1) +* kn/receive-report-hook (2026-08-26) 3 commits + - hook: introduce the receive-report hook + - receive-pack: move message generation to separate function + - doc: add proc-receive hook info in 'git-receive-pack.adoc' A new hook 'report' is added to 'git receive-pack', which runs after reference updates and allows the server to filter or modify the packet-line status report sent back to the client. - Expecting a reroll. - cf. - source: <20260821-758-introduce-hook-v2-1-e90e2f7ac2cf@gmail.com> + Needs review. + source: <20260826-758-introduce-hook-v4-0-6b14975ad957@gmail.com> -* en/midx-missing-pack-fallback (2026-08-18) 2 commits +* en/midx-missing-pack-fallback (2026-08-25) 4 commits - packfile: recover when a multi-pack-index names a removed pack + - packfile: recover object lookups racing a concurrent repack + - mktree: plug per-tree leak in --batch mode - replay: fail gracefully when a merge input is unreadable + - Merge branch 'ps/odb-generic-corrupt-objects' into en/midx-missing-pack-fallback + (this branch uses ps/odb-generic-corrupt-objects.) The object lookup machinery has been taught to gracefully recover when a multi-pack-index points to an owning pack that was removed during a concurrent geometric repack, and 'git replay' has been fixed to not segfault when reading such missing objects. - Waiting for response. - cf. - cf. - source: + Needs review. + source: * ll/zsh-complete-git-potty-options (2026-08-19) 1 commit @@ -153,11 +735,13 @@ Release tarballs are available at: * ps/odb-generic-corrupt-objects (2026-08-19) 5 commits - - odb: handle `OBJECT_INFO_DIE_IF_CORRUPT` generically - - odb/source: allow `read_object_info()` to bubble up error messages - - odb/source: let callers discern missing and corrupt objects - - odb/source: introduce error status when reading objects - - odb/source-packed: flag known-bad objects as corrupt and not missing + (merged to 'next' on 2026-08-23 at fe72e268a1) + + odb: handle `OBJECT_INFO_DIE_IF_CORRUPT` generically + + odb/source: allow `read_object_info()` to bubble up error messages + + odb/source: let callers discern missing and corrupt objects + + odb/source: introduce error status when reading objects + + odb/source-packed: flag known-bad objects as corrupt and not missing + (this branch is used by en/midx-missing-pack-fallback.) The object database (odb) API has been refactored to distinguish between missing objects and corrupt ones by returning more @@ -166,7 +750,7 @@ Release tarballs are available at: mechanism, removing backend-specific leakage from central lookup paths. - Will merge to 'next'. + Will merge to 'master'. cf. source: <20260819-pks-odb-generic-corrupt-objects-v2-0-a984e3a0ad6f@pks.im> @@ -185,14 +769,15 @@ Release tarballs are available at: * fr/pack-objects-trace-pack-bytes (2026-08-19) 1 commit - - pack-objects: trace pack bytes written + (merged to 'next' on 2026-08-24 at dcc6a34978) + + pack-objects: trace pack bytes written The pack-objects command has been updated to record the total bytes written to pack files in trace2 output, allowing performance analysis of different compression settings by comparing the resulting pack sizes. - Needs review. + Will merge to 'master'. cf. cf. <20260820082102.GA2973952@coredump.intra.peff.net> source: @@ -222,6 +807,7 @@ Release tarballs are available at: capability is used to correctly detect such mismatches. Needs review. + cf. source: @@ -268,12 +854,14 @@ Release tarballs are available at: * ps/odb-pluggable-pack-generation (2026-08-20) 6 commits - - bundle: generate packfiles via the object database - - bundle: get (mostly) rid of `the_repository` - - builtin/bundle: refactor option handling for progress meter - - send-pack: generate packfiles via the object database - - upload-pack: generate packfiles via the object database - - odb: introduce interface to generate packfiles + (merged to 'next' on 2026-08-24 at 4d8acd97d0) + + bundle: generate packfiles via the object database + + bundle: get (mostly) rid of `the_repository` + + builtin/bundle: refactor option handling for progress meter + + send-pack: generate packfiles via the object database + + upload-pack: generate packfiles via the object database + + odb: introduce interface to generate packfiles + (this branch is used by ps/odb-pluggable-fsck.) The mechanism to generate a packfile corresponding to the result of a fetch/push has been made pluggable through a set of object @@ -281,167 +869,68 @@ Release tarballs are available at: 'pack-objects' and enabling alternative ODBs to serve packfiles themselves. - Will merge to 'next'? + Will merge to 'master'. cf. cf. source: <20260821-b4-pks-odb-generate-pack-v4-0-074e8bd641f8@pks.im> * ty/repository-fetch-if-missing (2026-08-14) 1 commit - - repository: move fetch_if_missing into struct repository + (merged to 'next' on 2026-08-25 at 2cc77c1ca1) + + repository: move fetch_if_missing into struct repository The global variable 'fetch_if_missing' has been moved to a member in 'struct repository', continuing the libification process and allowing per-repository control (such as for submodules). - Will merge to 'next'? + Will merge to 'master'. cf. source: <20260815064747.2196896-1-cat@malon.dev> * ns/ref-symref-additional-tests (2026-08-20) 2 commits - t1402: test forbidden characters in refnames - - t1401: check symbolic-ref exit codes and --quiet silence + - t1401: check symbolic-ref failure and --quiet silence on a non-symbolic ref - A few additional tests. + A few tests for the reference handling subsystem have been added to + exercise the handling of forbidden characters and symbolic references. - Waiting for response. - cf. + Needs review. source: - source: - - -* en/diff-l-opt-help (2026-08-13) 1 commit - (merged to 'next' on 2026-08-17 at 4b6b3295ed) - + diff: avoid misleading statement about -l option - - The help text for the '-l' option of 'git diff' has been updated. - - Will merge to 'master'. - cf. - source: - - -* ss/submittingpatches-typofix (2026-08-14) 1 commit - (merged to 'next' on 2026-08-18 at b251ddc3d7) - + doc: fix typo in submitting patches - - Typofix. - - Will merge to 'master'. - cf. - source: - - -* ch/chdir-notify-drop-name (2026-08-14) 1 commit - (merged to 'next' on 2026-08-18 at 973cefddd7) - + chdir-notify.h: Removed unused param 'name' - - The unused name parameter in 'struct chdir_notify_entry' has been - removed from chdir_notify_register(), chdir_notify_unregister(), and - related callback signatures across several subsystems, simplifying the - API now that trace output no longer uses it. - - Will merge to 'master'. - cf. <20260815051213.GA26013@coredump.intra.peff.net> - source: <20260814214210.1625-1-colinlewishinton@gmail.com> - - -* cc/git-shallow-file-wo-value (2026-08-11) 1 commit - (merged to 'next' on 2026-08-17 at f6a6ff92a6) - + git: avoid segfault on "git --shallow-file" without a value - - The '--shallow-file' option of 'git' command requires a value, but the - code did not check the presence of a value and instead segfaulted - without one, which has been corrected. - - Will merge to 'master'. - cf. - cf. - source: <20260811121446.2080190-1-christian.couder@gmail.com> - - -* js/sequencer-release-odb-before-commit (2026-08-12) 1 commit - (merged to 'next' on 2026-08-15 at 1c83dffd7a) - + sequencer: release the ODB before spawning git commit - - The sequencer has been updated to release the object database before - spawning 'git commit'. This prevents open file handles from - blocking auto-maintenance tasks, such as repacking, on systems like - Windows where open files cannot be easily unlinked. - - Will merge to 'master'. - cf. - source: + source: * jt/receive-pack-pluggable-writes (2026-08-20) 9 commits - - odb/transaction: add transaction interface to write packfiles - - odb: return temporary ODB source when set - - builtin/receive-pack: explicitly pass packfile fd - - builtin/receive-pack: report unpack errors via strbuf - - builtin/receive-pack: lift global state out of unpack() - - builtin/receive-pack: read unpack limit config lazily - - builtin/receive-pack: pass shallow file explicitly - - odb/transaction: add transaction finalize interface - - builtin/receive-pack: properly clean up keep files + (merged to 'next' on 2026-08-24 at cf024e685d) + + odb/transaction: add transaction interface to write packfiles + + odb: return temporary ODB source when set + + builtin/receive-pack: explicitly pass packfile fd + + builtin/receive-pack: report unpack errors via strbuf + + builtin/receive-pack: lift global state out of unpack() + + builtin/receive-pack: read unpack limit config lazily + + builtin/receive-pack: pass shallow file explicitly + + odb/transaction: add transaction finalize interface + + builtin/receive-pack: properly clean up keep files The 'git receive-pack' command has been updated to use a new ODB transaction interface for writing incoming packfiles, making it more backend-agnostic. - Will merge to 'next'? + Will merge to 'master'. cf. cf. source: <20260820234940.894624-1-jltobler@gmail.com> -* jc/complete-checkout (2026-08-13) 4 commits - (merged to 'next' on 2026-08-19 at 758fc8c411) - + completion: 'git checkout' completes untracked paths as a last resort - + completion: complete tracked paths for "git checkout" - + completion: no-op refactoring of checkout completion - + Merge branch 'jc/complete-diff-tracked-paths' into jc/complete-checkout - (this branch uses jc/complete-diff-tracked-paths.) - - Will merge to 'master'. - cf. - source: <20260813191234.1066662-1-gitster@pobox.com> - - -* en/sequencer-lose-pretty-given (2026-08-11) 1 commit - (merged to 'next' on 2026-08-17 at 82d0706aef) - + sequencer: remove unnecessary variable setting - - The setting of a now-unused member '.pretty_given' in the sequencer - machinery has been removed. - - Will merge to 'master'. - cf. - cf. - source: - - -* en/serve-promisor-remote-fix (2026-08-11) 1 commit - (merged to 'next' on 2026-08-17 at a4d7a9d1d6) - + serve: reject valueless promisor-remote capability - - A client requesting the promisor-remote capability without a value - caused a null pointer dereference, which has been corrected by - rejecting a request without an argument. - - Will merge to 'master'. - cf. - source: - - -* ps/odb-eagerly-load-alternates (2026-08-17) 6 commits - - odb: drop `alternates_db` field - - odb: drop `loaded_alternates` field - - odb: eagerly initialize alternates - - odb: decouple source path comparisons from `the_repository` - - setup: create ref and object databases after config is written - - Merge branch 'ps/odb-make-creation-pluggable' into ps/odb-eagerly-load-alternates +* ps/odb-eagerly-load-alternates (2026-08-17) 5 commits + (merged to 'next' on 2026-08-24 at a431cd5887) + + odb: drop `alternates_db` field + + odb: drop `loaded_alternates` field + + odb: eagerly initialize alternates + + odb: decouple source path comparisons from `the_repository` + + setup: create ref and object databases after config is written + + Merge branch 'ps/odb-make-creation-pluggable' into ps/odb-eagerly-load-alternates + (this branch is used by ps/odb-alternates-at-creation and ps/odb-pluggable-fsck.) The object database layer has been simplified by eagerly loading alternate object directories upon initialization, instead of @@ -449,7 +938,7 @@ Release tarballs are available at: for scattered lazy-loading calls throughout the codebase and paves the way for integrating alternates with the pluggable backends. - Will merge to 'next'? + Will merge to 'master'. cf. cf. source: <20260817-pks-odb-eagerly-prepare-alternates-v3-0-1115a7e02467@pks.im> @@ -467,54 +956,6 @@ Release tarballs are available at: source: <20260818214858.65122-1-ggordon@gitlab.com> -* js/packfile-fast-append (2026-08-13) 1 commit - (merged to 'next' on 2026-08-18 at cc3da5a03d) - + packfile: fix perf regression with many packs - - The performance of adding numerous new packfiles has been improved - by introducing a fast path for known-new packfiles to skip an - unnecessary traversal in packfile_list_append(), avoiding a - quadratic complexity regression on load. - - Will merge to 'master'. - cf. - cf. - source: - - -* hn/send-email-missing-subject-error (2026-08-10) 1 commit - (merged to 'next' on 2026-08-15 at 6470901400) - + send-email: clarify missing subject error - - The error message given by 'git send-email' when a message file is - missing a 'Subject:' header has been clarified, and the error string - is now terminated with a newline so that Perl avoids appending its - internal source location data. - - Will merge to 'master'. - cf. - source: - - -* ss/repack-drop-filtered (2026-08-13) 6 commits - (merged to 'next' on 2026-08-18 at 23ad3f2b76) - + builtin/repack: add guards for --drop-filtered - + builtin/repack: actually drop filtered promisor blobs - + builtin/repack: enumerate promisor blobs for --drop-filtered - + repack-promisor: allow excluding objects from the rebuilt promisor pack - + list-objects-filter: add list_objects_filter__filter_oidset() - + builtin/repack: add --drop-filtered and --dry-run options - - 'git repack' has been taught '--drop-filtered' to delete local - promisor blobs exceeding a limit (currently 'blob:limit=') in partial - clones, reclaiming space. Guards prevent running during other - operations or if referenced by the index. - - Will merge to 'master'. - cf. - source: <20260813200830.84348-1-r.siddharth.shrimali@gmail.com> - - * ty/repo-config-cleanups (2026-08-07) 3 commits - environment: remove inaccurate repo_config_values comments - environment: clarify repository config getter documentation @@ -526,45 +967,25 @@ Release tarballs are available at: section comments inside 'struct repo_config_values' have been removed. Needs review. - cf. source: <20260807085932.3958759-1-cat@malon.dev> * vm/complete-history (2026-08-13) 4 commits - - completion: complete 'git history split' pathspecs - - completion: complete 'git history --update-refs' values - - completion: complete 'git history --empty' values - - completion: add 'git history' subcommands + (merged to 'next' on 2026-08-24 at f6498b4afc) + + completion: complete 'git history split' pathspecs + + completion: complete 'git history --update-refs' values + + completion: complete 'git history --empty' values + + completion: add 'git history' subcommands The command line completion (in contrib/) has been taught to handle the experimental 'git history' command. - Will merge to 'next'? + Will merge to 'master'. cf. cf. source: <20260813-history_autocompletion-v3-0-69eed1cea93a@kernel.org> -* cc/lazy-fetch-trusted-bit (2026-08-13) 5 commits - - builtin/upload-pack: set GIT_NO_LAZY_FETCH to 0 on trusted repo - - upload-pack: read uploadpack.lazyFetchTrusted - - setup: add 'allow_dot' arg to path_allowlist_apply() - - setup: extract path_allowlist_apply() - - promisor-remote: factor out lazy_fetch_objects() - - A new 'uploadpack.lazyFetchTrusted' configuration variable has been - introduced to allow 'upload-pack' to lazily fetch missing objects from - configured promisor remotes when serving trusted repositories. - - Waiting for response, stalled. - cf. - cf. - cf. - cf. - cf. - source: <20260813154748.2378747-1-christian.couder@gmail.com> - - * dk/use-nsec-runtime (2026-08-20) 3 commits - core: convert build-time USE_NSEC into runtime core.useNanosec - environment: align repo_config_values_init with struct declaration @@ -575,48 +996,13 @@ Release tarballs are available at: distributions to bundle one binary that adapts to filesystem capabilities dynamically. - Needs review. + Expecting a (hopefully a small and final) reroll. cf. cf. + cf. source: -* ps/t7900-deflake-maintenance (2026-08-12) 2 commits - (merged to 'next' on 2026-08-17 at 7ef446fd59) - + t7900: fix flaky "maintenance.strategy" test - + t7900: adapt some tests to use a throwaway repository - - Various tests in 't7900-maintenance.sh' have been updated to use a - throwaway repository, and auto-detaching of maintenance tasks is now - disabled for these tests to fix flaky races with concurrent background - maintenance jobs. - - Will merge to 'master'. - cf. - source: <20260812-pks-t7900-fix-flaky-test-v2-0-9ea0e1ac0edd@pks.im> - - -* ps/odb-streams (2026-08-05) 8 commits - (merged to 'next' on 2026-08-15 at a8fbd74d00) - + odb/streaming: unify function names to create new streams - + odb/streaming: rename `struct input_zstream_data` - + odb/streaming: rename `struct read_object_fd_data` - + odb/streaming: consolidate read and write streams - + odb/streaming: rename `struct odb_read_stream` - + odb/streaming: support streaming arbitrary object types - + odb/streaming: drop `is_finished` field - + odb/streaming: track write stream size in the structure - - The 'struct odb_read_stream' and 'struct odb_write_stream' - structures have been consolidated into a single unified 'struct - odb_stream' structure, simplifying object database streaming APIs - and enabling streaming of arbitrary object types. - - Will merge to 'master'. - cf. - source: <20260805-pks-odb-stream-unification-v2-0-b8c369564641@pks.im> - - * bc/restrict-hex-to-lowercase (2026-07-29) 6 commits - hex: allow only lowercase object IDs in breaking changes mode - object-name: use hexval @@ -629,8 +1015,9 @@ Release tarballs are available at: hexadecimal characters when running in the breaking changes mode, in preparation for Git 3.0. - Waiting for review. - cf. + Expecting a reroll. + cf. + cf. source: <20260729233215.398654-1-sandals@crustytoothpaste.net> @@ -660,19 +1047,21 @@ Release tarballs are available at: * yn/worktree-add-no-dwim-with-b (2026-08-20) 1 commit - - worktree add: shouldn't dwim if -b or -B is given + (merged to 'next' on 2026-08-23 at 6e4bf24274) + + worktree add: shouldn't dwim if -b or -B is given The DWIM logic in 'git worktree add' sometimes tried to infer a remote-tracking branch when an explicit '-b' or '-B' option was given to create a new branch, causing the explicit branch name to be ignored, which has been corrected. - Will merge to 'next'. + Will merge to 'master'. cf. source: -* yn/worktree-ambiguous-remote-advice (2026-08-21) 3 commits +* yn/worktree-ambiguous-remote-advice (2026-08-26) 4 commits + - worktree add: treat multiple matches with --guess-remote as an error - worktree add: improve message for ambiguous remote branch name - checkout: improve message for ambiguous remote branch name - checkout: extract function to display advice for ambiguous remotes @@ -681,7 +1070,7 @@ Release tarballs are available at: specified, which has been corrected. Needs review. - source: + source: * hn/ci-cancel-stale-pr-runs (2026-07-31) 1 commit @@ -691,56 +1080,27 @@ Release tarballs are available at: been configured to cancel older runs when a new push is made to the same pull request. - Needs review. + Waiting for response. + cf. source: -* jc/complete-diff-tracked-paths (2026-08-12) 3 commits - (merged to 'next' on 2026-08-19 at 37263f6528) - + completion: 'git diff' completes untracked paths as a last resort - + completion: complete tracked paths for 'git diff' - + completion: no-op refactoring of diff completion - (this branch is used by jc/complete-checkout.) - - 'git -C diff fi' did not complete 'dir/file', which has - been corrected. - - Will merge to 'master'. - cf. - source: <20260812162551.2229680-1-gitster@pobox.com> - - -* kh/trailers-no-urls (2026-08-20) 2 commits - - trailers: stop recognizing URLs as trailers - - Merge branch 'kh/doc-trailers' into kh/trailers-no-urls +* kh/trailers-no-urls (2026-08-20) 1 commit + (merged to 'next' on 2026-08-24 at 11e10f8626) + + trailers: stop recognizing URLs as trailers + + Merge branch 'kh/doc-trailers' into kh/trailers-no-urls The trailer parsing machinery has been updated to avoid mistaking lines that begin with a URL (e.g., 'https://...') as trailer lines. This prevents intended textual URLs from being mangled or mistakenly treated as metadata keys. - Will merge to 'next'? + Will merge to 'master'. cf. <20260821004248.GA296777@coredump.intra.peff.net> cf. source: -* cl/regexec-macos-leak (2026-07-28) 2 commits - - SQUASH??? - - regexec: work around macOS TRE leak on invalid UTF-8 - - A compatibility workaround has been introduced for macOS to address - a memory leak in the system regex engine when it encounters invalid - multibyte sequences. The workaround segments the input buffer at - invalid byte boundaries and searches each valid segment separately - using regexec(), avoiding the leaking path. - - Waiting for response. - cf. - cf. - source: <20260728052538.12429-1-chungmin@chungminlee.com> - - * hn/checkout-m-autostash-refine (2026-07-25) 2 commits - checkout -m: refine autostash fallback - sequencer: teach autostash apply to report conflicts @@ -751,69 +1111,11 @@ Release tarballs are available at: branch-switch message. Needs review. - cf. source: -* tb/pack-with-duplicates (2026-07-24) 5 commits - - pack-bitmap: handle duplicate pack entries during MIDX reuse - - test-tool bitmap: reject packs with duplicate objects - - midx: verify duplicate pack entries by OID and offset - - packfile: recover delta cycles through duplicate entries - - t5308: test reverse indexes with duplicate objects - - The handling of packfiles with duplicate object entries has been - hardened. Specifically, reverse index lookup, delta cycle - recovery, multi-pack-index verification, and pack reuse paths have - been updated to correctly handle or gracefully reject duplicate - entries. - - Waiting for response for too long, stalled. - cf. - source: - - -* ps/cat-file-remote-object-info-type (2026-08-07) 11 commits - (merged to 'next' on 2026-08-15 at 3f5daf59a8) - + cat-file: unify default format - + serve: advertise type capability - + fetch-object-info: parse type from server response - + protocol-caps: add type support to object-info - + transport: drop remote object-info fields from transport struct - + fetch-object-info: die() on the remaining error path - + fetch-object-info: use dedicated struct for the results - + fetch-object-info: pass arguments directly instead of a struct - + fetch-object-info: detect malformed server responses - + t5701: use test_file_size() to get the size of a file - + Merge branch 'ps/cat-file-remote-object-info' into ps/cat-file-remote-object-info-type - - The 'remote-object-info' command for 'git cat-file --batch-command' - has been extended to support the '%(objecttype)' placeholder. - - Will merge to 'master'. - cf. <20260808074157.GA2915582@coredump.intra.peff.net> - cf. - cf. - source: <20260808-objecttype-support-v6-0-e5cdaf27a49c@gmail.com> - - -* sn/rebase-update-refs-symrefs (2026-07-22) 2 commits - - rebase: guard non-branch symref targets - - rebase: skip branch symref aliases - - 'git rebase --update-refs' has been taught to resolve local branch - symrefs to their referents before queuing updates, ensuring aliases of - the current branch are skipped and duplicate updates are avoided to - prevent failures when branch aliases are present. - - Waiting for response, stalled. - cf. <1eba5fb2-ab76-41e9-955d-e283256ad25d@gmail.com> - cf. <98682fa4-55d9-4829-97f1-02e244b35266@gmail.com> - source: - - -* kj/repo-info-more-path-keys (2026-08-06) 7 commits - - repo: remove unused setup.h include +* kj/repo-info-more-path-keys (2026-08-25) 7 commits + - repo: add path.cdup - repo: add path.git-prefix - repo: add path.grafts with absolute and relative suffixes - repo: add path.index with absolute and relative suffixes @@ -826,9 +1128,8 @@ Release tarballs are available at: root, superproject working tree, object database, etc.), supporting both absolute and relative path formats. - Expecting a reroll. - cf. - source: <20260806101556.162940-1-jayatheerthkulkarni2005@gmail.com> + Needs review. + source: <20260825175818.645579-1-jayatheerthkulkarni2005@gmail.com> * tc/last-modified-bloom (2026-08-07) 6 commits @@ -849,91 +1150,23 @@ Release tarballs are available at: source: <20260807-toon-speed-up-last-modified-v2-0-7d87bbdeaf9b@iotcl.com> -* js/coverity-unchecked-returns-fix (2026-08-12) 12 commits - (merged to 'next' on 2026-08-17 at 105f002870) - + bisect: handle dup() failure when redirecting stdout - + bisect: check get_terms return at all call sites - + bisect: check strbuf_getline_lf return when reading terms - + transport-helper: warn when export-marks file cannot be finalized - + transport-helper: check dup() return in get_exporter - + compat/pread: check initial lseek for errors - + last-modified: handle repo_parse_commit() failures - + reftable tests: check reftable_table_init_ref_iterator() return - + reftable/block: check deflateInit() return value - + reftable: handle block-writer initialization errors - + config: propagate launch_editor() failure in show_editor() - + http: die on curl_easy_duphandle failure in get_active_slot - - A handful of code paths have been corrected to check return values - from functions like curl_easy_duphandle(), deflateInit(), lseek(), - dup(), and strbuf_getline_lf(), resolving several Coverity warnings - about unchecked returns. - - Will merge to 'master'. - cf. - source: - - -* ds/trace2-tolerate-failed-timestamp (2026-07-15) 1 commit +* ds/trace2-tolerate-failed-timestamp (2026-08-25) 7 commits + - trace2: remove use of xcalloc() + - trace2: remove use of ALLOC_GROW() + - trace2: remove use of xstrfmt() + - trace2: remove use of ALLOC_ARRAY() + - trace2: remove use of xstrdup() - trace2: tolerate failed timestamp formatting + - banned-die: create header for banning of functions - The 'trace2' telemetry library has been updated to tolerate failures - from system calls like gettimeofday() and datetime formatting - functions, replacing potential program crashes with blank placeholder - timestamps in the traces. + The trace2 API has been updated to avoid calling 'die()' (by banning + the use of certain functions like xcalloc and xstrfmt) to prevent + unwanted process exits and recursion. - Expecting a reroll. - cf. - source: - - -* cc/fast-import-usage (2026-08-11) 12 commits - (merged to 'next' on 2026-08-15 at a0434930b4) - + fast-import: remove useless from_stream argument - + fast-import: use parse_options() for command line options - + fast-import: use callbacks to parse some options - + fast-import: use struct option for usage string - + fast-import: move command state globals into 'struct fast_import_state' - + fast-import: introduce 'struct fast_import_state' - + fast-import: factor out option_*() functions - + fast-import: use int for some bool flags - + fast-import: localize 'i' into the 'for' loops using it - + api-parse-options.adoc: document hidden and OPT_*_F option macros - + api-parse-options.adoc: document per-option flags - + parse-options: introduce OPT_HIDDEN_GROUP - - The usage string of 'git fast-import' has been updated to use the - parse_options() API for displaying help, and its SYNOPSIS in the - documentation has been standardized to match. - - Will merge to 'master'. - cf. - source: <20260811083314.2023489-1-christian.couder@gmail.com> - - -* js/pack-objects-delta-size-t (2026-08-13) 13 commits - (merged to 'next' on 2026-08-17 at b6778ce373) - + packfile: widen `unpack_object_header_buffer()` to `size_t` - + git-zlib: widen `git_deflate_bound()` to `size_t` - + t/helper/test-pack-deltas: widen `do_compress()`'s maxsize local to `size_t` - + http-push: widen `start_put()`'s size local from `ssize_t` to `size_t` - + diff: widen `deflate_it()`'s bound local from int to `size_t` - + archive-zip: widen `zlib_deflate_raw()`'s maxsize local to `size_t` - + packfile, git-zlib: widen `use_pack()` and zstream avail fields to `size_t` - + delta: widen `create_delta()` and `diff_delta()` to `size_t` - + pack-objects: widen `mem_usage` and `try_delta()`'s out-param to `size_t` - + pack-objects: widen `free_unpacked()` return to `size_t` - + pack-objects: widen delta-cache accounting to `size_t` - + delta: widen `create_delta_index()` parameter to `size_t` - + diff-delta: widen `struct delta_index`' size fields to `size_t` - - The 'pack-objects' and delta-encoding code paths have been updated to - use 'size_t' instead of 'unsigned long' for object sizes and offset - limits, avoiding potential truncation issues on 64-bit Windows. - - Will merge to 'master'. - cf. - source: + Waiting for response. + cf. + cf. + source: * pz/fetch-submodule-errors-config (2026-07-16) 2 commits @@ -957,7 +1190,8 @@ Release tarballs are available at: refactored to use the internal apply API directly, avoiding the need to spawn a 'git apply' subprocess. - Needs review. + Will merge to 'next'? + cf. source: <20260711061246.58079-1-gatlavishweshwarreddy26@gmail.com> @@ -1003,33 +1237,17 @@ Release tarballs are available at: * zy/apply-abandoned-header-fix (2026-07-01) 1 commit - - apply: avoid leaking abandoned git-header state + . apply: avoid leaking abandoned git-header state A candidate 'git diff' header parsed by 'git apply' has been isolated in a temporary structure, preventing any partially parsed state from polluting the main patch structure and causing assertions to trip if the header is ultimately rejected. - Needs review. + Will discard. source: <20260702041759.51572-1-zhihao.yao@njit.edu> -* ps/libgit-in-subdir (2026-07-12) 3 commits - . Move libgit.a sources into separate "lib/" directory - . t/helper: prepare "test-example-tap.c" for introduction of "lib/" - . Merge branch 'ps/odb-source-packed' into ps/libgit-in-subdir - - The source files for 'libgit.a' have been moved into a new 'lib/' - directory to clean up the top-level directory and clearly separate - library code. This topic has been ejected for now, as it causes too - many evil merges with other topics. - - Waiting for response, stalled. - cf. - cf. - source: <20260713-pks-libgit-in-subdir-v4-0-696240876eb1@pks.im> - - * mm/line-log-limited-ops (2026-06-27) 7 commits - diffcore-pickaxe: scope -G to the -L tracked range - diff: support --check with -L line ranges @@ -1083,22 +1301,7 @@ Release tarballs are available at: source: -* tc/replay-linearize (2026-07-28) 3 commits - - replay: offer an option to linearize the commit topology - - replay: resolve the replay base outside pick_regular_commit() - - replay: add helper to put entry into replayed_commits - - The 'git replay' command has been taught the '--linearize' option to - drop merge commits and linearize the replayed history, mimicking 'git - rebase --no-rebase-merges'. - - Waiting for response. - cf. - cf. - source: <20260728-toon-git-replay-drop-merges-v8-0-ced11dffe749@iotcl.com> - - -* mm/diff-process-hunks (2026-08-13) 12 commits +* mm/diff-process-hunks (2026-08-13) 11 commits - fixup! diff: consult oid-only hunk providers via diff..process - diff: consult oid-only hunk providers via diff..process - userdiff: add diff..process config @@ -1119,9 +1322,8 @@ Release tarballs are available at: while leaving all output formatting (word diff, color, blame, etc.) to Git's standard pipeline. - Waiting for response, stalled - cf. - cf. <1f8fe709-ef19-496e-9857-8c2d24b29c56@gmail.com> + Expecting a reroll. + cf. source: <20260801174156.2998808-1-mmontalbo@gmail.com> @@ -1135,27 +1337,3 @@ Release tarballs are available at: Needs review. source: - - -* kk/merge-base-exhaustion (2026-08-11) 11 commits - (merged to 'next' on 2026-08-15 at 3f836fa1e4) - + commit-reach: remove commit-date ordering fallback - + commit-reach: move min_generation check into paint_queue_get() - + commit-reach: terminate merge-base walk when one paint side is exhausted - + commit-reach: introduce struct paint_state with per-side counters - + t6600: add clock-skew topologies and step counts for edge cases - + commit-reach: add trace2 instrumentation to paint_down_to_common() - + t6099: add side-exhaustion regression test - + t6600: add test cases for side-exhaustion edge cases - + test-lib-functions: improve diagnostic output for trace2 data assertions - + Documentation/technical: add paint-down-to-common doc - + Merge branch 'kk/commit-reach-find-all-fix' into kk/merge-base-exhaustion - - The merge-base computation has been optimized by stopping the walk - early when one side's exclusive commits in the queue are exhausted, - yielding significant speedups for queries with one-sided histories. - - Will merge to 'master'. - cf. - cf. - source: