What's cooking (2026/07 #01)

This commit is contained in:
Junio C Hamano
2026-07-01 14:30:38 -07:00
parent fb3ee0a9e2
commit 6a990135b8

View File

@@ -1,23 +1,31 @@
To: git@vger.kernel.org
Subject: What's cooking in git.git (Jun 2026, #11)
Subject: What's cooking in git.git (Jul 2026, #01)
X-master-at: e9019fcafe0040228b8631c30f97ae1adb61bcdc
X-next-at: 602f6c329a7d99df269d382df353b4e1bbbbd8aa
Bcc: lwn@lwn.net, gitster@pobox.com
What's cooking in git.git (Jun 2026, #11)
What's cooking in git.git (Jul 2026, #01)
-----------------------------------------
Here are the topics that have been cooking in my tree. Commits
prefixed with '+' are in 'next' (being in 'next' is a sign that a
topic is stable enough to be used and is a candidate to be in a
future release). Commits prefixed with '-' are only in 'seen', and
aren't considered "accepted" at all and may be annotated with a URL
aren't considered "accepted" at all. They may be annotated with a URL
to a message that raises issues but they are by no means exhaustive.
A topic without enough support may be discarded after a long period
of no activity (of course they can be resubmitted when new interests
arise).
of no activity (of course, it can be resubmitted when new interest
arises).
Git 2.55 (final) has been tagged, with a few last-minute fixes.
Git 2.55 (final) has been tagged. The next release is tentatively
called Git 2.56. This week is the 0th week of the cycle, which is
time to see if there are any brown paper bag breakages and
regressions we need to fix. Next week, I plan to start merging the
topics that have been cooking in 'next' down to 'master'. It has
been customary to rewind 'next' and rebuild it on top of 'master'
soon after a major release, but IIRC, we didn't do so in Git 2.55;
perhaps we can do without rebuilding it this cycle as well. We'll
see.
Copies of the source code to Git live in many repositories, and the
following is a list of the ones I push into or their mirrors. Some
@@ -50,84 +58,167 @@ Release tarballs are available at:
--------------------------------------------------
[New Topics]
* tb/repack-geometric-cruft (2026-06-28) 11 commits
- SQUASH??? bare grep !???
- repack: support combining '--geometric' with '--cruft'
- pack-objects: support '--refs-snapshot' with 'follow-reachable'
- pack-objects: introduce '--stdin-packs=follow-reachable'
- pack-objects: extract `stdin_packs_add_all_pack_entries()`
- repack-geometry: drop unused redundant-pack removal
- repack: delete geometric packs via existing_packs
- repack: teach MIDX retention about geometric rollups
- repack: mark geometric progression of packs as retained
- repack: extract `locate_existing_pack()` helper
- repack: unconditionally exclude non-kept packs
* kk/commit-reach-find-all-fix (2026-06-29) 2 commits
- commit-reach: guard !FIND_ALL early exit with generation ordering check
- t6600: add test for merge-base early exit with clock skew
Teach `git repack` to accept `--geometric` and `--cruft`
together. When both are given, the geometric repack rolls up non-cruft
packs as usual, while a separate cruft pack is written to collect
unreachable objects.
The early-exit optimization in paint_down_to_common() has been gated
on the queue being generation-ordered. This fixes a bug where git
merge-base (without --all) could return incorrect results on
repositories with v1 commit graphs and clock skew.
Needs review.
cf. <xmqqpl1d56dd.fsf@gitster.g>
source: <cover.1782500507.git.me@ttaylorr.com>
Comments?
cf. <xmqqa4sdw55v.fsf@gitster.g>
source: <pull.2162.git.1782739162.gitgitgadget@gmail.com>
* jk/reftable-leakfix (2026-06-28) 1 commit
- reftable: fix unlikely leak on API error
* bl/t7412-use-test-path-helpers (2026-06-29) 1 commit
- submodule absorbgitdirs tests: use test_* helper functions
Leakfix.
t7412 that tests "git submodule absorbgitdirs" has been modernized to
use test_path_is_file, test_path_is_dir, and test_path_is_missing
helper functions instead of raw "test -[fde]" commands.
Waiting for response(s) to review comment(s).
cf. <akTKHfKPsP3-Rn31@pks.im>
source: <20260630020220.1559190-1-bblima@usp.br>
* jk/format-patch-leakfix (2026-06-29) 2 commits
- format-patch: fix leak of rev_info in prepare_bases()
- t: move LSan errors from stdout to stderr
A memory leak in the '--base' handling of 'git format-patch' has been
plugged, and the leak-reporting of the test suite when running under a
TAP harness has been improved.
Will merge to 'next'?
cf. <akIPBJLtPqDjQt-A@pks.im>
source: <20260628090314.GA661068@coredump.intra.peff.net>
cf. <akOZy-BygZS8fqPM@pks.im>
source: <20260630063944.GA3733670@coredump.intra.peff.net>
* sg/t3420-do-not-grep-in-missing-file (2021-10-10) 1 commit
(merged to 'next' on 2026-06-29 at 2bf33c6a40)
+ t3420-rebase-autostash: don't try to grep non-existing files
* ps/setup-split-discovery-and-setup (2026-06-30) 16 commits
- setup: mark `set_git_work_tree()` as file-local
- setup: pass worktree to `init_db()`
- setup: drop redundant configuration of `startup_info->have_repository`
- setup: make repository discovery self-contained
- setup: propagate prefix via repository discovery
- setup: drop static `cwd` variable
- setup: move prefix into repository
- setup: embed repository format in discovery
- setup: introduce explicit repository discovery
- setup: split up concerns of `setup_git_env_internal()`
- setup: unify setup of shallow file
- setup: mark bogus worktree in `apply_repository_format()`
- setup: rename `check_repository_format_gently()`
- Merge branch 'jk/repo-info-path-keys' into ps/setup-split-discovery-and-setup
- Merge branch 'ps/setup-drop-global-state' into ps/setup-split-discovery-and-setup
- Merge branch 'ps/refs-onbranch-fixes' into ps/setup-split-discovery-and-setup
(this branch uses jk/repo-info-path-keys, ps/refs-onbranch-fixes and ps/setup-drop-global-state.)
Test fix.
The repository discovery and repository configuration phases, which
were previously intertwined in 'setup.c', have been split. Repository
discovery now populates a 'struct repo_discovery' without modifying
the repository state, and repository configuration takes this
structure to initialize the repository, paving the way for clean
unification of repository configuration.
Will merge to 'master'.
source: <20211010172809.1472914-1-szeder.dev@gmail.com>
--------------------------------------------------
[Graduated to 'master']
* jk/t5551-expensive-test-timeouts-fix (2026-06-28) 2 commits
- t5551: put many-tags case into its own repo
- t/lib-httpd: bump apache timeout
The Apache timeout in HTTP tests has been increased to prevent test
failures on heavily loaded CI runners. The tests creating an
enormous number of refs have been isolated to their own
repositories to avoid slowing down subsequent tests.
cf. <akIPBJLtPqDjQt-A@pks.im>
source: <20260628075716.GA3525066@coredump.intra.peff.net>
Needs review.
source: <20260630-pks-setup-split-discovery-and-setup-v1-0-13864eb5a032@pks.im>
* js/http-https-proxy-fix (2026-06-27) 1 commit
(merged to 'next' on 2026-06-28 at a7fdf2ec97)
+ http: accept https:// proxies again
* pw/rebase-drop-notes-with-commit (2026-06-30) 15 commits
- amend! sequencer: simplify pick_one_commit()
- amend! sequencer: remove unnecessary "or" in pick_one_commit()
- fixup! sequencer: never reschedule on failed commit
- fixup! sequencer: be more careful with external merge
- sequencer: do not record dropped commits as rewritten
- sequencer: use an enum to represent result of picking a commit
- sequencer: return early from pick_one_commit() on success
- sequencer: simplify pick_one_commit()
- sequencer: remove unnecessary condition in pick_one_commit()
- sequencer: simplify handing of fixup with conflicts
- sequencer: remove unnecessary "or" in pick_one_commit()
- sequencer: never reschedule on failed commit
- sequencer: be more careful with external merge
- sequencer: move definition of is_final_fixup()
- t3400: restore coverage for note copying with apply backend
We lost ability to use https:// proxies during this cycle; this is
a hotfix for the regression.
source: <pull.2161.git.1782580676734.gitgitgadget@gmail.com>
The rebase post-rewrite notes-copying logic has been corrected. When a
commit is dropped during rebase (e.g., because its changes are already
upstream), we no longer record it as rewritten, preventing its notes
from being copied to an unrelated commit.
Expecting a reroll.
cf. <dce74d17-eefd-40bb-82f3-f6b3179cc2b6@gmail.com>
source: <cover.1782833268.git.phillip.wood@dunelm.org.uk>
* ps/t4216-tap-fix (2026-06-19) 1 commit
(merged to 'next' on 2026-06-25 at 42296fc12e)
+ t4216: fix no-op test that breaks TAP output
* jk/bloom-leak-fixes (2026-06-30) 3 commits
- line-log: drop extra copy of range with bloom filters
- revision: avoid leaking bloom keyvecs with multiple traversals
- bloom: make bloom-filter slab initialization idempotent
TAP output breakage fix.
cf. <xmqq8q82fk8r.fsf@gitster.g>
source: <20260619-pks-t4216-drop-unused-prereq-v1-1-2ce0d7bea088@pks.im>
Plug various memory leaks in the Bloom-filter code paths that are
exposed when running tests with the
`GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1` environment variable.
Will merge to 'next'?
cf. <xmqqo6gqobrt.fsf@gitster.g>
source: <20260701063538.GA2579765@coredump.intra.peff.net>
* js/ci-dockerized-pid-limit (2026-07-01) 1 commit
- ci(dockerized): reduce the PID limit for private repositories
Dockerized CI jobs running in private GitHub repositories have been
adjusted to use explicit process and file limits, preventing resource
exhaustion errors on private runners.
Waiting for response(s) to review comment(s).
cf. <xmqq5x2yps4c.fsf@gitster.g>
source: <pull.2164.git.1782889484346.gitgitgadget@gmail.com>
* js/coverity-fixes (2026-07-01) 13 commits
- mingw: make exit_process() own the process handle on all paths
- fsmonitor: plug token-data leak on early daemon-startup failures
- reftable/table: release filter on error path
- imap-send: avoid leaking the IMAP upload buffer
- worktree: fix resource leaks when branch creation fails
- submodule: fix cwd leak in get_superproject_working_tree()
- dir: free allocations on parse-error paths in read_one_dir()
- line-log: avoid redundant copy that leaks in process_ranges
- run_diff_files: avoid memory leak
- run-command: avoid close(-1) in start_command() error paths
- download_https_uri_to_file(): do not leak fd upon failure
- loose: avoid closing invalid fd on error path
- load_one_loose_object_map(): fix resource leak
A collection of fixes for various resource leaks, invalid file
descriptor closures, and process handle ownership issues flagged by
Coverity.
Waiting for response(s) to review comment(s).
cf. <akTIMM6qLfDNdg-a@pks.im>
source: <pull.2163.git.1782889472.gitgitgadget@gmail.com>
--------------------------------------------------
[Stalled]
* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
- http: preserve wwwauth_headers across redirects
When cURL follows a redirect, the WWW-Authenticate headers from the
redirect target were lost because credential_from_url() cleared the
credential state. This has been fixed by preserving the collected
headers across the redirect update.
Expecting a reroll for too long, stalled.
cf. <5144a29d-a53f-4446-beff-e1f549345bf9@nvidia.com>
source: <20260602161150.1527493-1-aplattner@nvidia.com>
* jt/config-lock-timeout (2026-05-17) 1 commit
- config: retry acquiring config.lock, configurable via core.configLockTimeout
@@ -177,6 +268,49 @@ Release tarballs are available at:
--------------------------------------------------
[Cooking]
* tb/repack-geometric-cruft (2026-06-28) 11 commits
- SQUASH??? bare grep !???
- repack: support combining '--geometric' with '--cruft'
- pack-objects: support '--refs-snapshot' with 'follow-reachable'
- pack-objects: introduce '--stdin-packs=follow-reachable'
- pack-objects: extract `stdin_packs_add_all_pack_entries()`
- repack-geometry: drop unused redundant-pack removal
- repack: delete geometric packs via existing_packs
- repack: teach MIDX retention about geometric rollups
- repack: mark geometric progression of packs as retained
- repack: extract `locate_existing_pack()` helper
- repack: unconditionally exclude non-kept packs
Teach `git repack` to accept `--geometric` and `--cruft`
together. When both are given, the geometric repack rolls up non-cruft
packs as usual, while a separate cruft pack is written to collect
unreachable objects.
Expecting a reroll.
cf. <akTIMM6qLfDNdg-a@pks.im>
source: <cover.1782500507.git.me@ttaylorr.com>
* jk/reftable-leakfix (2026-06-28) 1 commit
- reftable: fix unlikely leak on API error
Leakfix.
Will merge to 'next'.
cf. <akIPBJLtPqDjQt-A@pks.im>
source: <20260628090314.GA661068@coredump.intra.peff.net>
* sg/t3420-do-not-grep-in-missing-file (2021-10-10) 1 commit
(merged to 'next' on 2026-06-29 at 2bf33c6a40)
+ t3420-rebase-autostash: don't try to grep non-existing files
Test fix.
Will merge to 'master'.
source: <20211010172809.1472914-1-szeder.dev@gmail.com>
* ad/gpg-strip-cr-before-lf (2026-06-24) 1 commit
- gpg-interface: fix strip_cr_before_lf to only remove CR before LF
@@ -184,7 +318,7 @@ Release tarballs are available at:
carriage return characters only when they immediately precede line
feeds, instead of unconditionally stripping all carriage returns.
Needs review.
Will merge to 'next'.
source: <20260624093618.17456-1-antonio.destefani08@gmail.com>
@@ -200,8 +334,10 @@ Release tarballs are available at:
interfaces instead of directly managing tmp_objdir for staging
incoming objects, bringing it closer to being ODB backend agnostic.
Waiting for response(s) to review comment(s).
Expecting a reroll.
cf. <aju_AmlKVi5UZaiQ@pks.im>
cf. <akK05yZ6843K8Vdd@denethor>
cf. <akLLB_J-pvJ7iR7c@denethor>
source: <20260624041920.2601961-1-jltobler@gmail.com>
@@ -219,7 +355,9 @@ Release tarballs are available at:
refactoring backend-specific object information retrieval into an
opt-in struct object_info_source structure.
Needs review.
Will merge to 'next'?
cf. <akOod6X1a2axIXKZ@pks.im>
cf. <xmqqv7b0rmt6.fsf@gitster.g>
source: <20260624-b4-pks-odb-drop-whence-v1-0-8d1877b790ac@pks.im>
@@ -252,7 +390,7 @@ Release tarballs are available at:
"git push origin/main" and "git branch origin main" could both be
an obvious typo, in which case offer the obvious typofix.
Will merge to 'next'?
Will merge to 'next'.
cf. <xmqqfr272lq7.fsf@gitster.g>
source: <pull.2331.v3.git.git.1782583345.gitgitgadget@gmail.com>
@@ -262,39 +400,39 @@ Release tarballs are available at:
Code clean-up with leakfix for a write file stream.
Needs review.
Will merge to 'next'?
cf. <akO1mhi2u2PntLbt@pks.im>
source: <xmqqmrwdxrat.fsf@gitster.g>
* ty/migrate-excludes-file (2026-06-27) 1 commit
* ty/migrate-excludes-file (2026-06-30) 1 commit
- environment: move excludes_file into repo_config_values
Move excludes_file global variable into per-repository structure.
Waiting for response(s) to review comment(s).
cf. <xmqqbjcv2h3j.fsf@gitster.g>
cf. <CAP8UFD3Z0M_1NEXGcAxNZKpRUQiSkHZLTEvNNYushKA_PoPgjA@mail.gmail.com>
source: <20260627160813.1074201-2-cat@malon.dev>
Needs review.
source: <20260630164401.2906091-2-cat@malon.dev>
* kk/merge-base-exhaustion (2026-06-28) 8 commits
- commit-reach: move min_generation check into paint_queue_get()
- commit-reach: terminate merge-base walk when one paint side is exhausted
- commit-reach: remove unused nonstale_queue dedup wrappers
- commit-reach: introduce struct paint_state with per-side counters
- commit-reach: add trace2 instrumentation to paint_down_to_common()
- t6099, t6600: add side-exhaustion regression tests
- t6600: add test cases for side-exhaustion edge cases
- Documentation/technical: add paint-down-to-common doc
* kk/merge-base-exhaustion (2026-07-01) 10 commits
. 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, t6600: add side-exhaustion regression tests
. 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
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.
Expecting a reroll.
cf. <48bfdb11-2624-4aa6-8fbd-d3f894c33bcc@gmail.com>
cf. <CAL71e4N92t8170UBW3rMA6B-rEUeOm-R_HSioB957mUKOpwRyQ@mail.gmail.com>
source: <pull.2149.v4.git.1782649547.gitgitgadget@gmail.com>
Needs review.
passes t6600 standalone, breaks when merged to 'seen'.
source: <pull.2149.v5.git.1782923832.gitgitgadget@gmail.com>
* dk/meson-enable-use-nsec-build (2026-06-20) 1 commit
@@ -328,8 +466,7 @@ Release tarballs are available at:
source: <20260625-pks-connected-generic-promisor-checks-v3-0-7308f3b9dc44@pks.im>
* ps/libgit-in-subdir (2026-06-26) 4 commits
- fixup??? Move libgit.a sources into separate "lib/" directory
* ps/libgit-in-subdir (2026-06-30) 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
@@ -340,10 +477,8 @@ Release tarballs are available at:
library code.
Waiting for response(s) to review comment(s).
cf. <32bb1cf6-1e37-dc0c-dfb2-e78a30763342@gmx.de>
cf. <xmqqwlvl6sr5.fsf@gitster.g>
cf. <aj9wcFEb6oCRnfn2@szeder.dev>
source: <20260622-pks-libgit-in-subdir-v2-0-cb946c51ee7b@pks.im>
cf. <cbbb08fc-fd4d-45ef-927b-05ac44602ff1@gmail.com>
source: <20260701-pks-libgit-in-subdir-v3-0-5e4860056094@pks.im>
* ps/odb-generalize-prepare (2026-06-22) 3 commits
@@ -357,8 +492,8 @@ Release tarballs are available at:
flag, and a new `odb_prepare()` wrapper has been introduced to
allow pre-opening object database sources.
Waiting for response(s) to review comment(s).
cf. <87ldc14i4n.fsf@emacs.iotcl.com>
Will merge to 'next'?
cf. <87ik704f1j.fsf@emacs.iotcl.com>
source: <20260622-b4-pks-odb-generalize-prepare-v1-0-d2a5c5d13144@pks.im>
@@ -371,7 +506,7 @@ Release tarballs are available at:
and how the resolution of such critiques should be recorded in the
final commit messages.
Will cook in 'next'.
Will merge to 'master'.
cf. <ajjwYGWZ6hQWr600@pks.im>
source: <xmqqeci0g4mz.fsf@gitster.g>
@@ -433,6 +568,7 @@ Release tarballs are available at:
Waiting for response(s) to review comment(s).
cf. <xmqqse65zyhw.fsf@gitster.g>
cf. <akIQLM6xZTHBudWT@pks.im>
cf. <3b3af3ef-a043-4af9-964e-429237789c97@gmail.com>
source: <pull.2337.v6.git.git.1782635349.gitgitgadget@gmail.com>
@@ -451,12 +587,12 @@ Release tarballs are available at:
provide a default for the per-remote `remote.<name>.followRemoteHEAD`
setting.
Will cook in 'next'.
Will merge to 'master'.
cf. <xmqqcxxp1j2t.fsf@gitster.g>
source: <20260619094751.2996804-1-m@lfurio.us>
* ps/refs-writing-subcommands (2026-06-17) 5 commits
* ps/refs-writing-subcommands (2026-06-30) 5 commits
- builtin/refs: add "rename" subcommand
- builtin/refs: add "create" subcommand
- builtin/refs: add "update" subcommand
@@ -467,8 +603,9 @@ Release tarballs are available at:
"update", and "rename" subcommands to create, delete, update, and
rename references, respectively.
Needs review.
source: <20260617-pks-refs-writing-subcommands-v2-0-07f3d18336f9@pks.im>
Will merge to 'next'?
cf. <xmqqcxx7susi.fsf@gitster.g>
source: <20260630-pks-refs-writing-subcommands-v3-0-deb04de1ecef@pks.im>
* po/hash-object-size-t (2026-06-16) 6 commits
@@ -484,7 +621,7 @@ Release tarballs are available at:
and other LLP64 platforms has been improved by converting object header
buffers and data-handling functions from 'unsigned long' to 'size_t'.
Will cook in 'next'.
Will merge to 'master'.
cf. <ajOQthRjhD3hRM9w@pks.im>
source: <pull.2138.v2.git.1781621398.gitgitgadget@gmail.com>
@@ -500,7 +637,7 @@ Release tarballs are available at:
The trailer sections in SubmittingPatches have been updated to
encourage use of standard trailers.
Will cook in 'next'.
Will merge to 'master'.
cf. <xmqq4ij0vo8f.fsf@gitster.g>
source: <V3_CV_SubPatches_trailers.9ec@msgid.xyz>
@@ -513,7 +650,7 @@ Release tarballs are available at:
which the path being tracked gets renamed differently in multiple
history lines, better.
Will cook in 'next'.
Will merge to 'master'.
source: <ajjU4w2B0NlZffw1@collabora.com>
@@ -554,6 +691,7 @@ Release tarballs are available at:
Waiting for response(s) to review comment(s).
cf. <aj93BE8MYatQAjoy@szeder.dev>
cf. <xmqqqzlpt543.fsf@gitster.g>
source: <pull.2135.v2.git.1781323575.gitgitgadget@gmail.com>
@@ -561,7 +699,7 @@ Release tarballs are available at:
(merged to 'next' on 2026-06-17 at 43ed8b3969)
+ cat-file: speed up default format
Will cook in 'next'.
Will merge to 'master'.
cf. <20260615165326.GA91269@coredump.intra.peff.net>
source: <5a7ed929-6fe0-496c-83bd-65dee57c2241@web.de>
@@ -575,8 +713,8 @@ Release tarballs are available at:
into prio_queue itself, speeding up commit traversal workflows and
simplifying callers.
On hold, waiting for kk/prio-queue-get-put-fusion to land first.
cf. <CAL71e4MYNiScZjTwkApjDAjRh2LM0_SP59h5HCTywV-Pua03tw@mail.gmail.com>
Will merge to 'next'?
cf. <xmqqh5mjrbgq.fsf@gitster.g>
source: <pull.2140.v4.git.1780945851.gitgitgadget@gmail.com>
@@ -591,7 +729,8 @@ Release tarballs are available at:
connectivity checks across many candidate refs with shared
history.
Needs review.
Comments?
cf. <xmqqqzlpulkp.fsf@gitster.g>
source: <20260612-ref-filter-memoized-contains-v4-0-5ed39fd001dd@gmail.com>
@@ -608,6 +747,7 @@ Release tarballs are available at:
cf. <xmqq5x358byf.fsf@gitster.g>
cf. <b5d70a0b-ef32-49c9-84ba-8a64b7809574@gmail.com>
cf. <f8b520d1-edeb-9e45-c503-025c8b5833c3@gmx.de>
cf. <akOpOXeD_gS5U7rH@pks.im>
source: <20260626-toon-git-replay-drop-merges-v5-0-5e120738b9d0@iotcl.com>
@@ -621,13 +761,14 @@ Release tarballs are available at:
+ builtin/init: simplify logic to configure worktree
+ builtin/init: stop modifying global `git_work_tree_cfg` variable
+ Merge branch 'ps/setup-centralize-odb-creation' into ps/setup-drop-global-state
(this branch is used by ps/setup-split-discovery-and-setup.)
Continuation of "setup.c" refactoring to drop remaining global state
(`git_work_tree_cfg`, `is_bare_repository_cfg`). The most notable
outcome is that `is_bare_repository()` has been updated to no longer
implicitly rely on `the_repository`.
Will cook in 'next'.
Will merge to 'master'.
cf. <airVOrTboNDDGBak@denethor>
cf. <87ldckyygk.fsf@emacs.iotcl.com>
source: <20260611-b4-pks-setup-drop-global-state-v2-0-a6f7269c841d@pks.im>
@@ -647,6 +788,7 @@ Release tarballs are available at:
+ setup: stop applying repository format twice
+ setup: inline `check_and_apply_repository_format()`
+ Merge branch 'ps/setup-centralize-odb-creation' into ps/refs-onbranch-fixes
(this branch is used by ps/setup-split-discovery-and-setup.)
Reference backend configuration is now loaded lazily to avoid
recursive calls during repository initialization when "onbranch"
@@ -684,7 +826,7 @@ Release tarballs are available at:
The packed object source has been refactored into a proper struct
odb_source.
Will cook in 'next'.
Will merge to 'master'.
cf. <ajK2QKdW-TdflfR0@denethor>
source: <20260617-pks-odb-source-packed-v3-0-b5c7583cd795@pks.im>
@@ -698,7 +840,7 @@ Release tarballs are available at:
their ref iterator, avoiding a loose-ref scaling regression in
repositories with many unrelated loose references.
Will cook in 'next'.
Will merge to 'master'.
cf. <xmqqik7fsv2m.fsf@gitster.g>
source: <20260612-fix-git-branch-regression-v4-1-f150038c02f4@gmail.com>
@@ -713,26 +855,26 @@ Release tarballs are available at:
been migrated into struct repo_config_values to tie them to
per-repository configuration state.
Will cook in 'next'.
Will merge to 'master'.
cf. <CAP8UFD35Tiy1_fqpjq8P-z=ZhzR3MTiThqfCs977652umRoSEQ@mail.gmail.com>
cf. <xmqqse6uwdnz.fsf@gitster.g>
source: <20260610124353.149874-2-cat@malon.dev>
source: <20260620140957.667820-1-cat@malon.dev>
* ps/cat-file-remote-object-info (2026-06-25) 13 commits
* ps/cat-file-remote-object-info (2026-07-01) 13 commits
- cat-file: make remote-object-info allow-list dynamic
- cat-file: validate remote atoms with allow_list
- cat-file: validate remote atoms with an allow-list
- cat-file: add remote-object-info to batch-command
- transport: add client support for object-info
- serve: advertise object-info feature
- fetch-pack: move fetch initialization
- connect: refactor packet writing
- fetch-pack: move function to connect.c
- fetch-pack: prepare function to be moved
- t1006: split test utility functions into new "lib-cat-file.sh"
- connect: make `write_fetch_command_and_capabilities()` more generic
- fetch-pack: move `write_fetch_command_and_capabilities()` to connect.c
- fetch-pack: drop static `advertise_sid` variable
- t1006: split test utility functions into new 'lib-cat-file.sh'
- cat-file: declare loop counter inside for()
- git-compat-util: add strtoul_szt() with error handling
- git-compat-util: add `strtoumax_szt()` with error handling
- transport-helper: fix memory leak of helper on disconnect
The `remote-object-info` command has been added to `git cat-file
@@ -745,21 +887,8 @@ Release tarballs are available at:
inapplicable or unsupported fields.
Waiting for response(s) to review comment(s).
cf. <CAOLa=ZScS3Gmm5BAgJF69phpaDXGnP_j9jx+bMhn_tfF65RXEg@mail.gmail.com>
source: <20260625-ps-eric-work-rebase-v14-0-09f7ffe21a53@gmail.com>
* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
- http: preserve wwwauth_headers across redirects
When cURL follows a redirect, the WWW-Authenticate headers from the
redirect target were lost because credential_from_url() cleared the
credential state. This has been fixed by preserving the collected
headers across the redirect update.
Expecting a reroll.
cf. <5144a29d-a53f-4446-beff-e1f549345bf9@nvidia.com>
source: <20260602161150.1527493-1-aplattner@nvidia.com>
cf. <xmqq7bneo9mh.fsf@gitster.g>
source: <20260701-ps-eric-work-rebase-v15-0-c88a43b63917@gmail.com>
* ps/doc-recommend-b4 (2026-06-15) 3 commits
@@ -772,7 +901,7 @@ Release tarballs are available at:
documentation has been updated to recommend using it as a
streamlined method for submitting patches.
Will cook in 'next'.
Will merge to 'master'.
cf. <87eci7yomp.fsf@emacs.iotcl.com>
source: <20260615-pks-b4-v4-0-22cfca8f19c5@pks.im>
@@ -823,7 +952,7 @@ Release tarballs are available at:
faster packaging by falling back to path-walk when bitmaps cannot
fully satisfy the request.
Will cook in 'next'.
Will merge to 'master'.
cf. <xmqqwlvq1qyy.fsf@gitster.g>
source: <cover.1782082975.git.me@ttaylorr.com>
@@ -837,7 +966,8 @@ Release tarballs are available at:
configuration) has been migrated into 'repo_config_values' to tie it
to a specific repository instance.
Needs review.
Comments?
cf. <xmqqcxx9ukvw.fsf@gitster.g>
source: <20260619162105.648495-1-cat@malon.dev>
@@ -859,6 +989,7 @@ Release tarballs are available at:
+ repo: add path.gitdir with absolute and relative suffix formatting
+ repo: add path.commondir with absolute and relative suffix formatting
+ path: extract format_path() and use in rev-parse
(this branch is used by ps/setup-split-discovery-and-setup.)
The "git repo info" command has been taught new keys to output both
absolute and relative paths for "gitdir" and "commondir", supported by
@@ -869,7 +1000,7 @@ Release tarballs are available at:
source: <20260624033748.108281-1-jayatheerthkulkarni2005@gmail.com>
* ps/history-drop (2026-06-29) 11 commits
* ps/history-drop (2026-07-01) 11 commits
- builtin/history: implement "drop" subcommand
- builtin/history: split handling of ref updates into two phases
- replay: expose `replay_result_queue_update()`
@@ -887,7 +1018,7 @@ Release tarballs are available at:
parent.
Needs review.
source: <20260629-b4-pks-history-drop-v7-0-6e9392a957d8@pks.im>
source: <20260701-b4-pks-history-drop-v8-0-19b5cdf1facd@pks.im>
* jk/setup-gitfile-diag-fix (2026-06-16) 1 commit
@@ -898,7 +1029,7 @@ Release tarballs are available at:
been fixed, avoiding a potential NULL-pointer crash when reporting
that a .git file does not point to a valid repository.
Will cook in 'next'.
Will merge to 'master'.
cf. <xmqqjyry4hax.fsf@gitster.g>
source: <20260616123516.GA2301231@coredump.intra.peff.net>
@@ -931,8 +1062,7 @@ Release tarballs are available at:
the path with a dot, matching standard shell-completion behavior.
Waiting for response(s) to review comment(s).
cf. <xmqq1pe0g08t.fsf@gitster.g>
cf. <xmqqbjd37i4y.fsf@gitster.g>
cf. <xmqqik71t3nr.fsf@gitster.g>
source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
@@ -968,7 +1098,7 @@ Release tarballs are available at:
diverged from its push branch has been updated to suggest "git pull
<remote> <branch>".
Will cook in 'next'.
Will merge to 'master'.
cf. <xmqq7bo6xuok.fsf@gitster.g>
source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com>
@@ -1006,7 +1136,7 @@ Release tarballs are available at:
remotes via the promisor.acceptFromServerURL configuration
variable.
Will cook in 'next'.
Will merge to 'master'.
cf. <877bo7294j.fsf@emacs.iotcl.com>
cf. <xmqqh5naxwfc.fsf@gitster.g>
source: <20260527140820.1438165-1-christian.couder@gmail.com>
@@ -1036,7 +1166,7 @@ Release tarballs are available at:
"ort" merge backend handles merging corrupt trees better by
aborting when it should.
Will cook in 'next'.
Will merge to 'master'.
cf. <xmqq5x3ldu4h.fsf@gitster.g>
source: <pull.2096.v2.git.1781419047.gitgitgadget@gmail.com>
@@ -1050,7 +1180,7 @@ Release tarballs are available at:
improved to correctly abbreviate object IDs for more commands and
avoid misinterpreting refs as object IDs.
Will cook in 'next'.
Will merge to 'master'.
source: <cover.1782230024.git.phillip.wood@dunelm.org.uk>
@@ -1065,8 +1195,9 @@ Release tarballs are available at:
appearing falsely related to unrelated commits rendered immediately
above them.
Waiting for response(s) to review comment(s).
Expecting a reroll.
The peek-ahead approach may need to be scratched.
cf. <CAN5EUNSj-2hkEBF7N_M6RLsuujDNFNUF3w53zR7SN1_5i2BRyg@mail.gmail.com>
cf. <CAL71e4OQ_kGb+UwHgikHG236-8BVtc7P9OdpV4i4UzYRCoPczw@mail.gmail.com>
cf. <CAN5EUNTQV68_eofa7BGb0BukMe=U2d4-FEVmJwW4dObQ2r6LuA@mail.gmail.com>
source: <20260620-ps-pre-commit-indent-v6-0-cdc6d8fd5fbc@gmail.com>