* What's cooking in git.git (Oct 2026, #01)
@ 2026-10-01 22:48 Junio C Hamano
2026-10-02 9:10 ` Patrick Steinhardt
2026-10-02 16:54 ` What's cooking in git.git K Jayatheerth
0 siblings, 2 replies; 16+ messages in thread
From: Junio C Hamano @ 2026-10-01 22:48 UTC (permalink / raw)
To: git
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. 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, it can be resubmitted when new interest
arises).
The symbolic ref 'maint' now points at 'maint-2.56'; the
GIT-VERSION-GEN script in 'master' identifies the in-development
version as v2.56.GIT to signal that we are in the post-2.56 era. As
agreed at the Contributors' Summit, the next release due by the end
of this year will be called Git 2.98 to prepare for Git 2.99 that is
to come sometime in the spring.
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
repositories have only a subset of branches.
With maint, master, next, seen, todo:
git://git.kernel.org/pub/scm/git/git.git/
git://repo.or.cz/alt-git.git/
https://kernel.googlesource.com/pub/scm/git/git/
https://github.com/git/git/
https://gitlab.com/git-scm/git/
With all the integration branches and topics broken out:
https://github.com/gitster/git/
Even though the preformatted documentation in HTML and man format
are not sources, they are published in these repositories for
convenience (replace "htmldocs" with "manpages" for the manual
pages):
git://git.kernel.org/pub/scm/git/git-htmldocs.git/
https://github.com/gitster/git-htmldocs.git/
Release tarballs are available at:
https://www.kernel.org/pub/software/scm/git/
--------------------------------------------------
[Graduated to 'master']
* ak/refs-files-root-ref-lock (2026-09-11) 1 commit
(merged to 'next' on 2026-09-16 at c8568ea3e1)
+ refs/files: avoid packed-refs lock for root ref deletion
The files backend has been updated to avoid unconditionally locking
the 'packed-refs' file when deleting a root ref (which are never
packed).
Graduated to 'master'.
cf. <aqeLMG7lTJy3bM-h@pks.im>
source: <20260912014609.535922-1-skariel@gmail.com>
* dk/use-nsec-runtime (2026-09-11) 3 commits
(merged to 'next' on 2026-09-15 at 67ef6d82ef)
+ core: convert build-time USE_NSEC into runtime core.useNanosec
+ environment: align repo_config_values_init with struct declaration
+ meson: expose knob for xmlto relative links in manuals
The build-time knob 'USE_NSEC' for nanosecond stat precision has been
converted to a runtime configuration 'core.useNanosec', allowing
distributions to bundle one binary that adapts to filesystem
capabilities dynamically.
Graduated to 'master'.
cf. <apVJCt4prIi2GgXp@pks.im>
source: <cover.1789129924.git.ben.knoble@gmail.com>
* hn/history-squash (2026-09-08) 8 commits
(merged to 'next' on 2026-09-15 at 28dd773b8b)
+ history: support editing squashed commit messages
+ history: create squashed commits without editing
+ history: protect branches when squashing a range
+ history: validate squash revision ranges
+ history: add skeleton for squash subcommand
+ sequencer: share the squash message marker helpers and flags
+ history: give commit_tree_ext a message template
+ history: extract helper for a commit's parent tree
The experimental 'git history' command has been taught a new 'squash'
subcommand to fold a range of commits into a single commit, with any
descendants replayed on top.
Graduated to 'master'.
cf. <xmqqik4fv4v1.fsf@gitster.g>
source: <pull.2337.v15.git.git.1788900119.gitgitgadget@gmail.com>
* jc/cocci-free-updates (2026-09-11) 2 commits
(merged to 'next' on 2026-09-16 at 35b8bafa06)
+ cocci: FREE_AND_NULL(E) is safe to call on NULL
+ cocci: remove risky "if (!E) free(E)" conversion
Updates to Coccinelle semantic patches to correctly handle the
'FREE_AND_NULL()' macro and avoid generating broken transformations
for negated pointer checks.
Graduated to 'master'.
cf. <96aca004-0df4-4e21-b60a-0288239122cc@web.de>
source: <xmqqld978mok.fsf@gitster.g>
source: <xmqqh5jv8m4w.fsf@gitster.g>
* kn/receive-report-hook (2026-09-14) 5 commits
(merged to 'next' on 2026-09-15 at aa6cbdb87e)
+ receive-pack: coccinelle fix
+ hook: introduce the receive-report hook
+ receive-pack: move message generation to separate function
+ receive-pack: drop static variables to track report status version
+ 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.
Graduated to 'master'.
source: <20260910-758-introduce-hook-v10-0-06f9c506631c@gmail.com>
source: <xmqqwlsn31gq.fsf_-_@gitster.g>
* ps/odb-alternates-at-creation (2026-09-10) 9 commits
(merged to 'next' on 2026-09-15 at 4acaa6a8aa)
+ 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
+ setup: split up concerns of `init_db()`
+ Merge branch 'ps/odb-eagerly-load-alternates' into ps/odb-alternates-at-creation
(this branch is used by ps/setup-enforce-repo-passed-to-create-repository-has-no-state.)
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.
Graduated to 'master'.
cf. <CAOLa=ZRYsJL_0sKnfHD0PJO+5c+BKSMiuN20PeQHKJin82TJDw@mail.gmail.com>
source: <20260910-pks-odb-write-alternates-at-creation-time-v5-0-8d10c4238edc@pks.im>
* ps/ref-storage-format (2026-09-09) 13 commits
(merged to 'next' on 2026-09-16 at 8937a6240b)
+ setup: allow "--ref-storage-format=" to specify a payload
+ setup: rename "init.defaultRefFormat" to "init.defaultRefStorageFormat"
+ t: rename GIT_TEST_DEFAULT_REF_FORMAT
+ setup: rename ref storage format environment variables
+ setup: refactor how we configure the ref storage format
+ refs: expose function to parse reference URIs
+ help: rename "default-ref-format" to "default-ref-storage-format"
+ builtin/rev-parse: rename "--show-ref-format" to "--show-ref-storage-format"
+ builtin/submodule: rename "--ref-format=" to "--ref-storage-format="
+ builtin/refs: rename "--ref-format=" to "--ref-storage-format="
+ builtin/clone: rename "--ref-format=" to "--ref-storage-format="
+ builtin/init: rename "--ref-format=" to "--ref-storage-format="
+ parse-options: allow for hidden aliases
The terminology regarding reference storage formats has been unified
across command-line options, environment variables, configuration
variables, and source code, standardizing on the phrase "ref storage
format" (e.g., `--ref-storage-format`, `'GIT_REF_STORAGE_FORMAT'`).
Additionally, the `--ref-storage-format` option has been updated to
accept payloads in the form `<format>://<payload>`.
Graduated to 'master'.
cf. <CAOLa=ZRxXimh8W-QBJB3VhbHOZWMEfWXB0ST0a=dOi+PNiR6sQ@mail.gmail.com>
cf. <5e062976-d584-496d-84e0-e4b59c8f6876@gmail.com>
source: <20260909-b4-pks-unify-ref-storage-format-v3-0-ca041fb40ad8@pks.im>
--------------------------------------------------
[New Topics]
* jk/http-curl-strip-creds (2026-09-27) 1 commit
- http: handle curl stripping creds from effective url
The HTTP transport has been updated to handle changes in recent curl
versions that strip credentials from the effective URL, preventing
unnecessary credential prompts during redirects.
Will merge to 'next'.
cf. <xmqqo6dho1xj.fsf@gitster.g>
cf. <artP42iEIYeQxh4C@pks.im>
source: <20260928040149.GA498186@coredump.intra.peff.net>
* jk/name-rev-update-hash-descriptions (2026-09-27) 1 commit
(merged to 'next' on 2026-09-30 at 66cac248cb)
+ name-rev: update hash descriptions
The documentation for 'git-name-rev' has been updated to refer to
object IDs instead of SHA-1, to more accurately reflect that the
active hash algorithm is used.
Will merge to 'master'.
cf. <armZ28MWl9dTHDz6@fruit.crustytoothpaste.net>
cf. <xmqqbj9iqp27.fsf@gitster.g>
source: <20260927194602.86750-1-jyotishkumar725015@gmail.com>
* js/p5551-fetch-rescan-fix (2026-09-26) 1 commit
- p5551: fix repeated runs with update-ref --no-deref
The performance test for `git fetch` pack-dir rescans has been
updated to use the `--no-deref` option when cleaning up
remote-tracking branches. This prevents `git update-ref` from
failing with a multiple updates error when both a symref and its
target are deleted in the same transaction.
Will merge to 'next'.
cf. <20260928040511.GA498426@coredump.intra.peff.net>
source: <20260926180648.60770-1-jon@jonsimons.org>
* kh/doc-trailers-cmd-examples (2026-09-27) 1 commit
- doc: interpret-trailers: fix cmd examples
The documentation for 'git interpret-trailers' has been updated to
fix the grammatical errors in the descriptions of command examples.
Expecting a reroll.
cf. <be487f47-054c-443f-b5cb-b612269fedba@app.fastmail.com>
source: <doc_trailers_cmd_examples.ce1@m5gid.xyz>
* dm/libsecret-explicit-load (2026-09-27) 1 commit
- credential/libsecret: load secrets explicitly
The 'libsecret' credential helper has been updated to explicitly
load secrets instead of relying on the search flag, preventing
assertion failures when items are concurrently deleted or locked.
Needs review.
source: <pull.2372.v2.git.git.1790549181518.gitgitgadget@gmail.com>
* hn/ci-leak-sanitizer-annotations (2026-10-01) 2 commits
- ci: point test failures and fixed known breakages at their file and line
- ci: annotate leaks and stop a leak-sanitizer script at its first failure
CI on GitHub Actions gets a better annotation experience. Leak test
scripts are stopped at their first failure with --immediate to
prevent flooding the log, and failures are correctly annotated with
their file and line number.
Waiting for response.
cf. <0e0972b7-65a2-46ce-84a9-7e403620802a@gmail.com>
cf. <xmqqld8h41vm.fsf@gitster.g>
source: <pull.2419.v4.git.git.1790880255.gitgitgadget@gmail.com>
* mg/doc-remote-set-head (2026-09-29) 1 commit
- doc: remote: say that it only affects the local repository
The documentation for 'git remote set-head' has been updated to
clarify that it only modifies the local repository's remote-tracking
symbolic reference, and does not alter the target remote
repository's own 'HEAD'.
Looking good.
cf. <xmqqld8khviu.fsf@gitster.g>
source: <20260929120010.840402-1-matthias.goergens@gmail.com>
* pm/replay-add-signing-support (2026-09-25) 2 commits
- replay: add the -S option
- replay: handle failure to create commits
The experimental 'git replay' command has been taught to GPG-sign
commits, fixing an existing limitation and plugging a bug where
intermediate commit creation failures were silently ignored.
Waiting for response.
cf. <aroaOsUFWt2lYOVS@pks.im>
cf. <xmqqcxtxo0vx.fsf@gitster.g>
source: <20260925205348.1210154-1-pmonette@google.com>
* tb/t5520-reflog-expire (2026-10-01) 1 commit
- t5520: don't expire reflogs where it matters
(this branch is used by dk/stash-apply-index-incore.)
The t5520 test script has been updated to disable reflog expiration.
This prevents test flakiness caused by auto-maintenance running
geometric repack which would otherwise immediately expire the test's
reflogs due to them carrying hardcoded timestamps from 2005.
Will merge to 'next'?
cf. <667a68a1-641f-46c4-a718-8dd81d5c219f@gmail.com>
source: <pull.2243.v3.git.1790843056949.gitgitgadget@gmail.com>
* jk/xdiff-size_t (2026-09-30) 7 commits
- merge-ll: report an error when reading external merge results fails
- merge-ll: handle external driver status before reading result
- merge-ll: use read_mmfile() to read external merge results
- xdiff: NUL-terminate buffers read by read_mmfile()
- xdiff: use size_t for buffer sizes
- xdiff: replace mmbuffer_t with mmfile_t
- xdiff: clean up read_mmfile() allocations on error
The internal diff and merge machinery has been updated to use
standard size_t types rather than signed longs for buffer
allocations and offsets, preventing subtle overflow issues on LLP64
architectures, and plugging uninitialized memory leaks along error
paths.
Will merge to 'next'?
cf. <ar5dDe02hgodgOHS@pks.im>
source: <20260930234348.GA1340390@coredump.intra.peff.net>
* ps/reftable-reflog-timezone (2026-09-30) 3 commits
- refs/reftable: fix on-disk representation of reflog timezones
- t/helper: fix segfault in "dump-reftable -t"
- date: add helpers to convert between "+HHMM" timezones and minutes
The internal representation of timezones in the reflog for the
reftable format has been fixed to match the specification, which
dictates an offset in minutes rather than the parsed "+HHMM" integer
representation.
Will merge to 'next'?
cf. <CAOLa=ZRVt=e3MqjLY=UkitfSg_YjpsfFjeDsEmqJQm-5YhopxA@mail.gmail.com>
cf. <xmqq33up73dm.fsf@gitster.g>
source: <20261001-pks-reftables-fix-timezone-format-v2-0-a4fd1f7cd21a@pks.im>
* je/doc-remove-gittutorial-2 (2026-09-28) 3 commits
- Delete translations of gittutorial-2 description
- Remove references to gittutorial-2
- Remove gittutorial-2
An outdated tutorial 'gittutorial-2' has been removed.
Expecting a reroll.
cf. <fea59b5f-11e9-4f86-b04e-346a3fe0a757@app.fastmail.com>
source: <pull.2241.git.1790627122.gitgitgadget@gmail.com>
* kz/doc-add-rm-typofix (2026-09-29) 1 commit
(merged to 'next' on 2026-10-01 at 5f775693b6)
+ doc: remove unnecessary commas in git-add and git-rm documentation
Typofixes.
Will merge to 'master'.
source: <20260929210618.147-1-kaliugov@gmail.com>
* pw/checkout-m-conflict-labels (2026-09-30) 2 commits
- merge: remember conflict labels
- remove_branch_state: convert boolean argument to flags
When recreating a merge conflict using 'git checkout -m', the
original conflict labels (such as branch names) were lost and
replaced with generic ones. The merge machinery has been updated to
record the original labels in '.git/MERGE_LABELS', allowing 'git
checkout -m' to restore them.
Expecting a reroll.
cf. <6e028692-447c-4a21-a9bb-739e42f1c9aa@gmail.com>
source: <cover.1790761727.git.phillip.wood@dunelm.org.uk>
* tb/repack-cruft-less-midx-corner-cases (2026-09-30) 8 commits
- repack: include required packs in incremental MIDX writes
- repack: defer allocating the append plan's write step
- repack: track the preferred pack explicitly in MIDX write steps
- repack: follow kept packs when omitting cruft from the MIDX
- repack: use a sorted list for explicitly kept packs
- repack: retain cruft packs in MIDXs after incremental repacks
- pack-objects: ensure tree/tag closure with '--stdin-packs=follow'
- pack-objects: introduce `stdin_packs_context` struct
Various corner cases in the cruft-less MIDX feature have been fixed
to ensure reachability closure when writing reachability bitmaps,
such as properly retaining cruft packs after incremental repacks or
when containing kept packs.
Needs review.
source: <cover.1790827875.git.me@ttaylorr.com>
* hn/object-name-push-short (2026-09-30) 1 commit
- object-name: accept @{p} as short for @{push}
The @{upstream} notation had short-hand @{u} from the beginning,
and @{push} learned corresponding @{p} to match.
Waiting for response.
cf. <xmqq7bk28i88.fsf@gitster.g>
source: <pull.2431.git.git.1790797186658.gitgitgadget@gmail.com>
* gm/filter-branch-state-map-fix (2026-09-30) 1 commit
- filter-branch: fix commit map init from state branch
The commit map populated from the state branch in 'git
filter-branch' has been corrected to parse the map using the
original-to-rewritten order.
Waiting for response.
cf. <ar3xSurCd0-yDruA@pks.im>
cf. <20261001063306.616-1-michele@locati.it>
cf. <xmqqh5j57677.fsf@gitster.g>
source: <20261001012347.3998801-1-dev@grantmoyer.com>
* hn/fetch-refmap (2026-10-01) 5 commits
- SQUASH???
- remote: default to --limited-fetch in a shallow repository
- remote: add "git remote add --limited-fetch"
- fetch: infer branches to fetch from a refmap-only remote
- fetch: add remote.<name>.refmap
In a shallow repository, adding a new remote and fetching from it
used to eagerly fetch all remote branches. The default refspec
configured for remotes added in shallow repositories has been
changed to rely on remote.<name>.refmap rather than
remote.<name>.fetch, pulling only those remote branches tracked by
local branches.
Waiting for response.
cf. <xmqqzewzerrh.fsf@gitster.g>
source: <pull.2412.v4.git.git.1790673598.gitgitgadget@gmail.com>
--------------------------------------------------
[Cooking]
* bc/git-contacts-stdin (2026-09-28) 2 commits
- git-contacts: add stdin functionality to docs
- git-contacts: allow inputting patch via stdin
The 'git-contacts' program (in contrib/) has been taught to read
patches from the standard input stream when an explicit dash ('-') is
passed in place of a file.
Waiting for response.
cf. <xmqqv77ng8kk.fsf@gitster.g>
cf. <xmqqh5j8hvfq.fsf@gitster.g>
source: <20260928-git-contacts-stdin-v5-0-e9becaebc47e@brighamcampbell.com>
* dk/stash-apply-index-incore (2026-09-30) 4 commits
- builtin/stash: merge index in-core
- t3903: test failed "stash apply --index"
- stash: prepare merge options earlier
- builtin/stash: remove unused header
- Merge branch 'tb/t5520-reflog-expire' into dk/stash-apply-index-incore
(this branch uses tb/t5520-reflog-expire.)
The handling of index conflicts in 'git stash apply --index' has
been optimized. Instead of relying on expensive external
subprocesses using 'git diff-tree' and 'git apply', the index is now
merged in-core using the merge-ort machinery, which fixes a
concurrent lock file issue with autostash.
Will merge to 'next'?
cf. <d3adb734-2b84-4d7b-b245-5407ee410eb4@gmail.com>
cf. <xmqq4if55n3u.fsf@gitster.g>
source: <cover.1790803471.git.ben.knoble@gmail.com>
* am/p4-apply-commit-shell-injection-fix (2026-09-24) 1 commit
- git-p4: avoid shell interpretation of commit ids in applyCommit
The `applyCommit()` function inside 'git-p4.py' has been updated to
use direct subprocess pipes in order to avoid shell interpolation,
plugging a potential shell injection vulnerability when processing
commit IDs.
Needs review.
source: <pull.2411.v2.git.git.1790238482045.gitgitgadget@gmail.com>
* mc/refs-rename-transaction (2026-09-23) 1 commit
- refs: run copy and rename through transactions
Both reference rename and copy operations have been refactored to
use the generic reference transaction API, ensuring that hooks
observe the updates as unified logical operations rather than
piece-meal internal deletions and additions.
Needs review.
source: <20260923133651.74120-1-maciej.ciemborowicz@gmail.com>
* yn/worktree-repair-completion (2026-09-14) 1 commit
(merged to 'next' on 2026-09-27 at 7ddcdd6fbb)
+ completion: complete 'git worktree repair'
The command-line completion script (in 'contrib/') has been taught
to complete the 'repair' subcommand for 'git worktree'.
Will merge to 'master'.
cf. <arPMLIi7FL52CVJk@pks.im>
source: <pull.2218.v2.git.1789414536838.gitgitgadget@gmail.com>
* td/ci-large-test-resources (2026-09-30) 2 commits
- ci: use twice the CPU count on both providers
- t4205: compare huge output without diff
CI resource exhaustion during test runs on GitHub Actions has been
mitigated by switching a comparison of a huge output to use a binary
comparison, and by capping the parallel jobs on Linux to the number
of available CPUs.
Will merge to 'next'?
cf. <ar0gon2VE0RlG_cC@pks.im>
source: <20260930-ci-large-test-resources-v3-0-d65ac7c21b5f@gmail.com>
* rs/dir-skip-nested-repo-fix (2026-09-26) 1 commit
(merged to 'next' on 2026-09-30 at b33b5cd0e7)
+ dir: skip excluded directory with nested repo on prefix match
The directory traversal logic has been updated to correctly evaluate
pathspecs for ignored directories containing nested repositories,
and has been fortified to gracefully handle null pathspecs during
checkout operations.
Will merge to 'master'.
source: <1c6ac703-a5a5-421b-bf0b-640bc1a0932f@web.de>
* jk/parse-revision-opt-fixes (2026-09-25) 2 commits
(merged to 'next' on 2026-09-30 at 705a098926)
+ revision: handle argv movement in parse_revision_opt()
+ revision: avoid reporting known options as unknown on error
The command-line parsing of revision options has been updated to
properly distinguish between malformed and unknown options, and to
correctly report the name of unknown options after they have been
moved during the option parsing process.
Will merge to 'master'.
cf. <xmqqbj9lt1gn.fsf@gitster.g>
source: <20260925203359.GA1506705@coredump.intra.peff.net>
* jk/pull-null-merge-head (2026-09-21) 1 commit
(merged to 'next' on 2026-09-25 at c12a88db84)
+ pull: avoid segfault when commit lookup fails
'git pull' has been taught to fail more gracefully instead of
segfaulting when lookup_commit_reference() fails on unparseable
objects.
Will merge to 'master'.
cf. <xmqqld92xixa.fsf@gitster.g>
source: <pull.2223.v2.git.1790001166646.gitgitgadget@gmail.com>
* je/doc-asciidoc-xrefs (2026-09-24) 1 commit
(merged to 'next' on 2026-09-27 at 278ef7bb0b)
+ doc: add more AsciiDoc cross-references
Various documentation files have been updated to use explicit
'<<TARGET,TARGET>>' AsciiDoc cross-references instead of plain text
references. This improves rendering on the web and avoids broken
links when manual pages are included into other pages.
Will merge to 'master'.
cf. <20260925082723.GB1493716@coredump.intra.peff.net>
source: <pull.2416.v2.git.git.1790297546771.gitgitgadget@gmail.com>
* js/ci-debian-12-http2-workaround (2026-09-24) 1 commit
(merged to 'next' on 2026-09-27 at 83e6342dc0)
+ ci: work around Debian 12's HTTP/2 authentication failures
The Debian 12 CI job has been updated to skip a half-auth clone test
that occasionally fails due to a bug in the packaged curl version
handling early HTTP/2 responses.
Will merge to 'master'.
cf. <20260924232214.GA765100@coredump.intra.peff.net>
source: <pull.2236.v2.git.1790283229626.gitgitgadget@gmail.com>
* ps/reflog-expiry-fix (2026-09-24) 1 commit
(merged to 'next' on 2026-09-27 at afa9ef2166)
+ reflog: fix default expiry periods
The default expiry periods for both reachable and unreachable reflog
entries have been corrected from a past regression that swapped
them.
Will merge to 'master'.
cf. <xmqqwlsa1p5d.fsf@gitster.g>
source: <20260924175843.8383-2-pushkarkumarsingh1970@gmail.com>
* hn/shallow-history-advice (2026-09-23) 1 commit
- object-name: explain why <rev>~N fails in a shallow clone
Providing advice when ~<n> or ^<n> resolves to a commit whose
parents are missing due to the repository being a shallow clone,
instead of an unhelpful 'not a commit' error.
Needs review.
source: <pull.2413.v3.git.git.1790189759802.gitgitgadget@gmail.com>
* mc/refs-hook-report-old-values (2026-09-24) 1 commit
- refs: report old values to transaction hooks
The 'reference-transaction' hook has been updated to report the
observed old object IDs and symref targets for unconditional ref
updates and deletions, instead of reporting the null object ID.
Needs review.
source: <2af3eeadd18806c5298d53072428656885cff89d.1790269745.git.maciej.ciemborowicz@gmail.com>
* td/ls-files-untracked-cache (2026-09-23) 3 commits
- ls-files: use and update the untracked cache
- dir: share untracked caches across output modes
- dir: hash ignore files before appending newline
The git ls-files command has been optimized to reuse and populate
the untracked cache for the working tree, and untracked cache
implementations have been updated to share identical caches across
-unormal and -uall outputs, avoiding redundant filesystem
traversals.
Needs review.
source: <20260923-ls-files-untracked-cache-v2-0-d7ee33476eb8@gmail.com>
* je/doc-merge-conflicts (2026-09-24) 7 commits
. ignore conflict markers in gitmergeconflicts.adoc
. git-pull: link to new merge conflicts guide
. git-cherry-pick: link to new merge conflicts guide
. git-revert: link to new merge conflicts guide
. git-rebase: link to new merge conflicts guide
. git-merge: link to new merge conflicts guide
. Add new gitmergeconflicts man page
A new gitmergeconflicts(7) manual page has been added to provide a
centralized guide for understanding and resolving merge conflicts.
The documentation for commands that generate conflicts (like 'git
merge', 'git rebase', and 'git cherry-pick') has been updated to
link to this new guide instead of duplicating the instructions.
Expecting a reroll.
cf. <01f196af-3a6a-40e6-86c9-f8b4ce7bfe47@app.fastmail.com>
source: <pull.2237.git.1790261062.gitgitgadget@gmail.com>
* kn/ci-unit-tests-on-windows-fix (2026-09-24) 1 commit
(merged to 'next' on 2026-09-27 at 2d6f538729)
+ ci: fix unit tests not running on windows
The CI script has been updated to check for one-indexed slice numbers
when deciding to run unit tests on Windows, mirroring the behaviour in
the modern GitHub and GitLab workflows.
Will merge to 'master'.
cf. <arUwKpju14AVHOIy@pks.im>
source: <20260924-785-unit-tests-don-t-run-on-windows-v1-1-223cd2e4df43@gmail.com>
* ps/meson-improvements (2026-09-24) 7 commits
- gitlab-ci: fix hanging MSVC jobs
- meson: update wrappers
- meson: fix outdated completion helpers
- meson: use precompiled headers for unit tests
- meson: use precompiled headers for our test-helper
- meson: don't recompile git-remote-http(1) multiple times for tests
- meson: avoid recompiling HTTP sources several times
The build configurations for Meson have been optimized to avoid
recompiling HTTP sources multiple times and to utilize precompiled
headers for test-helpers and unit tests, reducing clean build times.
Additionally, the shell completion tests and GitLab CI MSVC runner
jobs have been fixed.
Will merge to 'next'?
cf. <CAOLa=ZS8Exa_WkMLiFNspeYaKFf40eOM19ZgecC=yTnFEAhMzQ@mail.gmail.com>
source: <20260924-pks-meson-improvements-v1-0-90b7f79f1c4e@pks.im>
* ps/setup-enforce-repo-passed-to-create-repository-has-no-state (2026-09-28) 7 commits
- setup: enforce that passed-in repo does not carry relevant state
- repository: adapt `repo_clear()` to fully reset the repository
- builtin/clone: don't apply "core.sharedRepository" to leading dirs
- builtin/init: move handling of "core.sharedRepository" into "setup.c"
- builtin/init: refactor messy creation of leading directories
- path: introduce `safe_create_leading_directories_no_share_const()`
- path: drop useless `safe_create_leading_directories_1()`
- Merge branch 'ps/odb-alternates-at-creation' into ps/setup-enforce-repo-passed-to-create-repository-has-no-state
The repository initialization sequence has been refactored to treat
the repository object passed to create_repository() purely as an
out-parameter.
Waiting for response.
cf. <b0ec2ef9-7aef-4f7d-b31b-7141b39c2d24@gmail.com>
cf. <xmqqtsn9mkog.fsf@gitster.g>
cf. <CAOLa=ZSX0e25wK5qQwznXN9rVM+WHn8631pkTEN9Zm-BrXfEsg@mail.gmail.com>
source: <20260928-pks-create-repository-stateless-v2-0-a03612f703fa@pks.im>
* rr/upload-pack-swap-shallow-wanted-ref (2026-09-16) 1 commit
(merged to 'next' on 2026-09-22 at af040867c8)
+ upload-pack: swap wanted-ref/shallow-info responses
The server-side protocol v2 response order for 'wanted-refs' and
'shallow-info' has been swapped to match the client's expectation,
fixing a fetch failure when the server has 'uploadpack.allowRefInWant'
enabled and the client performs a shallow fetch.
Will merge to 'master'.
source: <20260916203221.5265-1-royceremer@gmail.com>
* bs/runtime-prefix-obsd-getexecpath (2026-09-16) 1 commit
- exec_cmd: RUNTIME_PREFIX on OpenBSD systems
Git on OpenBSD historically lacked an authoritative mechanism to
resolve its executable path, as it doesn't support the
KERN_PROC_PATHNAME sysctl. With OpenBSD 8.0 introducing
getexecpath(3), it is now utilized to provide proper RUNTIME_PREFIX
resolution instead of relying on argv[0] fallback.
Waiting for response.
cf. <xmqq4ifio83d.fsf@gitster.g>
source: <aqthQ3u4eW1wHCn7@humpty.home.comstyle.com>
* js/coverity-fixes (2026-09-17) 7 commits
(merged to 'next' on 2026-09-22 at bb99d71d99)
+ test-read-midx: check midx_fill_entry() result
+ oss-fuzz: handle reftable iterator initialization failures
+ t/unit-tests: check reftable iterator initialization
+ rerere: do not record failed conflict resolution data
+ midx: validate incremental MIDX pack IDs
+ gpg-interface: make signature-prefix matching length-aware
+ wrapper: guard writev_in_full() against signed overflow
Assorted fixes for code paths that are not careful with boundary and
error conditions.
Will merge to 'master'.
cf. <xmqq5x03u0xz.fsf@gitster.g>
cf. <xmqq1parorz4.fsf@gitster.g>
source: <pull.2231.git.1789667556.gitgitgadget@gmail.com>
* yt/winansi-die-lasterr-fix (2026-09-21) 1 commit
(merged to 'next' on 2026-09-27 at c619c26b80)
+ compat/winansi: fix die_lasterr() argument formatting
The error reporting machinery in the WinANSI compatibility layer has
been simplified to pass the exact Windows error code and correctly
format arguments for fatal errors.
Will merge to 'master'.
cf. <3e2befed-355b-4a82-af82-25dedaee0565@kdbg.org>
source: <20260921234756.77997-1-yqtian668@gmail.com>
* hd/diff-no-index-reverse-fix (2026-09-18) 1 commit
(merged to 'next' on 2026-09-25 at c6cd42c625)
+ diff --no-index: fix -R with file/directory conflicts
A bug in git diff --no-index that mishandled reverse (-R) output
when conflicts existed between a file and a directory has been
fixed.
Will merge to 'master'.
cf. <9b97c14b-1d25-409b-a72c-d8caf298bf87@web.de>
cf. <0c82d50e-f2c0-4db6-ade8-7a403cac73da@intel.com>
source: <pull.2232.git.1789715946888.gitgitgadget@gmail.com>
* js/gitlab-ci-windows-rust (2026-09-24) 4 commits
(merged to 'next' on 2026-10-01 at da393682d9)
+ ci(gitlab,windows): provide GNU Rust's host-linker support
+ ci(gitlab,windows): fix Rust setup for GitLab's MinGW build
+ ci(gitlab,windows): preserve exclusions during dependency setup
+ ci(gitlab,windows): provision GNU Rust for SDK-based MinGW builds
The Windows GitLab CI job has been updated to provision and use the
GCC-targeting Rust toolchain for MinGW builds, fixing job failures
caused by incomplete Rust setup and missing linker support.
Will merge to 'master'.
cf. <aroOHoSXsemSlP-7@pks.im>
source: <pull.2233.v2.git.1790280113.gitgitgadget@gmail.com>
* jc/advice-config-set-global (2026-09-14) 1 commit
- advice: give cut-and-pasteable advice to squelch
The advice subsystem has been updated to suggest using the
'--global' option when recommending a command snippet to squelch
future advice messages, since global configuration is generally
more appropriate for user-level preferences than per-repository
settings.
Needs review.
source: <xmqq33vb4hma.fsf@gitster.g>
* sg/precompile-git-compat-util (2026-09-14) 4 commits
(merged to 'next' on 2026-09-21 at 68acceee5b)
+ Makefile: precompile "git-compat-util.h"
+ Makefile: reintroduce REFTABLE_OBJS
+ cmake: remove any "$(*_OBJS)" variables when parsing Makefile for sources
+ Makefile: remove XDIFF_OBJS initialization
The 'Makefile' has been taught to precompile 'git-compat-util.h' to
speed up overall compilation, while excluding sources that do not
include the compatibility header.
Will merge to 'master'.
source: <20260915060952.569535-1-szeder.dev@gmail.com>
* of/commit-reach-repo-awareness (2026-09-16) 1 commit
(merged to 'next' on 2026-09-22 at 94fab2d79f)
+ commit-reach: parse commits in the given repository
The can_all_from_reach() and can_all_from_reach_with_flag()
functions have been updated to accept a repository context,
preventing bugs where submodule merging incorrectly reads from the
superproject's commit-graph.
Will merge to 'master'.
source: <20260916134632.1424829-1-orestisflo@gmail.com>
* hn/range-diff-matched-only (2026-09-15) 1 commit
- range-diff: add --matched-only to skip one-sided commits
The 'git range-diff' command has been augmented with a
'--matched-only' option to skip commits that are only present on
one side, allowing users to easily focus on only the commits that
have been retained.
Needs review.
source: <pull.2401.v3.git.git.1789458703432.gitgitgadget@gmail.com>
* jt/object-file-batch-fsync-fix (2026-09-23) 2 commits
(merged to 'next' on 2026-09-27 at 8fbe62ae27)
+ object-file: flush transaction packfile before migrating objects
+ object-file: lift ODB reprepare out of packfile flush
When 'core.fsyncMethod' is set to 'batch', the ODB transaction
failed to properly flush large blob packfiles residing in the
temporary directory before migrating the directory's contents to the
main object store. The execution sequence has been corrected by
performing the packfile flush before the temporary directory
migration, averting failure.
Will merge to 'master'.
cf. <arS8oikUroITi2d2@pks.im>
source: <20260923220315.569424-1-jltobler@gmail.com>
* tb/rerere-wait-for-merge-rr-lock (2026-09-28) 3 commits
- rerere: go on at a conflict when the lock stays busy
- rerere: add "gc --auto" that skips a held lock
- rerere: wait for MERGE_RR.lock before giving up
Instead of failing to record conflicts to be resolved immediately,
wait while "rerere gc" is ongoing.
Expecting a reroll.
cf. <CAA0xjtoj_uf-f+kzjRpmOkq1RsbGnkXdodeSS2ND0R-FsP4qRg@mail.gmail.com>
source: <pull.2214.v5.git.1790596702.gitgitgadget@gmail.com>
* pp/midx-write-skip-empty (2026-09-08) 1 commit
- midx-write: skip writes with no object entries
The `git multi-pack-index write` command has been updated to
silently return success when there are no object entries to index.
This avoids writing empty `multi-pack-index` layers, which
previously caused subsequent incremental midx writes using the
`--bitmap` option to fail when attempting to load the missing
reverse index.
Waiting for review.
cf. <aqAkfGZtLJ97nG1m@com-79390>
cf. <CAOWp8q5UqPrJQosjypdcq=KX1TKcVenAOoZUYfTBDKbRUwazTw@mail.gmail.com>
source: <eef33827000cf106544174ed000129c2989af1cd.1788851232.git.pia@pierre.co>
* jk/merge-ll-tempfile-cleanup (2026-09-28) 2 commits
(merged to 'next' on 2026-10-01 at b39a4cc5d8)
+ merge-ll: use tempfile API for external driver files
+ merge-ll: catch close() errors when writing external tempfiles
The external merge driver in 'git merge' now uses the tempfile API
to create its temporary files. This ensures that these temporaries
are reliably cleaned up even when the merge driver or its parent Git
process is terminated abruptly.
Will merge to 'next'?
cf. <xmqqcxtwhufq.fsf@gitster.g>
source: <20260929051200.GA1100000@coredump.intra.peff.net>
* mh/rust-crate-subdir (2026-09-16) 1 commit
- move rust gitcore crate to a different subdirectory
The Rust code and its 'Cargo.toml' file have been moved from the
top-level repository root and 'src/' directory into a dedicated
'rust/' subdirectory. This avoids confusing Cargo's packaging
mechanism when the Git repository is included as a submodule in
other Rust projects.
Waiting for review.
cf. <yc4bgjoyxnm6o7q4gwols4d6zvdrq3ydw2c65wjdwof3hjyde6@2osv37jtuxx3>
source: <20260917060415.2986259-1-mh@glandium.org>
* ta/command-list-guides-sync-lint (2026-09-10) 2 commits
- lint-docs: check the guide list in command-list.txt
- command-list.txt: add gitformat-loose(5) and gitpacking(7)
- Merge branch 'kh/doc-datamodel' into ta/command-list-guides-sync-lint
A new linter test has been added to Documentation/lint-manpages.sh
to ensure that all non-command manual pages (guides and developer
interfaces) listed in Documentation/Makefile are present in
command-list.txt, replacing an older comment that reminded
developers to keep them in sync.
Needs review.
cf. <xmqq1pb2s33e.fsf@gitster.g>
source: <20260910194351.20809-1-taahol@utu.fi>
* ap/var-broken-down-idents (2026-09-26) 4 commits
- var: add broken-out identity variables
- var: accept more than one variable
- var: add "-z" output mode
- var: represent multi-valued variables with a string_list
The 'git var' command has been updated to output individual components
of the author and committer identities, take multiple keys on the
command-line, and support NUL-delimited output with the '-z' option.
Needs review.
source: <20260926162048.30853-1-andrewpleeter@gmail.com>
* tc/push-force-if-includes-fixes (2026-09-17) 3 commits
- push: --force-if-includes should allow fast-forward
- push: fix --force-if-includes non-branch advice
- push: check pushed ref for --force-if-includes
The '--force-if-includes' protection for 'git push' has been updated
to consult the reflog of the local branch being pushed, rather than
incorrectly checking the reflog of a local branch that shares the name
of the remote destination branch. The push advice for detached HEAD
scenarios has also been adjusted to indicate that the remote ref
cannot be verified locally. A regression that caused perfectly valid
fast-forward pushes to be rejected when reflogs were expired has been
fixed.
Needs review.
source: <20260917224351.57171-1-tyler@tylercipriani.com>
* as/push-force-if-includes-no-reflog (2026-09-29) 1 commit
- push: fix --force-if-includes when remote-tracking ref has no reflog
The timestamp used for checking the reflog of a remote-tracking
branch during 'git push --force-if-includes' was left uninitialized
when the reflog was completely empty, which has been corrected.
Will merge to 'next'?
cf. <xmqq8q4khuax.fsf@gitster.g>
source: <20260929091319.86392-1-f@lex.la>
* tb/rerere-lock-grace (2026-09-17) 3 commits
(merged to 'next' on 2026-09-27 at e5c9d4eea7)
+ sequencer: disable auto maintenance in spawned commands
+ rebase, cherry-pick, revert: run auto maintenance when done
+ config: add git_config_append_parameter()
The sequencer machinery (used by 'git rebase', 'git cherry-pick', and
'git revert') has been updated to defer automatic maintenance tasks
until the end of the operation, preventing nested 'git commit', 'git
merge', and 'exec' commands from triggering GC operations that could
contend for locks or delete open packs while the sequence is in
progress.
Will merge to 'master'.
cf. <c67ed25c-e54b-4289-bfb4-67f86beb6df6@gmail.com>
source: <pull.2217.v5.git.1789670534.gitgitgadget@gmail.com>
* cc/lazy-fetch-trusted-bit (2026-09-28) 5 commits
- builtin/upload-pack: don't disable lazy fetching on trusted repo
- promisor-remote: prevent infinite recursion when lazy fetching
- upload-pack: read uploadpack.lazyFetchTrusted
- 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.
cf. <xmqqse2sgda6.fsf@gitster.g>
cf. <xmqqy0ckgea3.fsf@gitster.g>
source: <20260928133846.2094261-1-christian.couder@gmail.com>
* cc/early-scan-options (2026-09-23) 3 commits
- fast-import: use early_scan_options() for --allow-unsafe-features
- parse-options: add early_scan_options()
- parse-options: add parse_options_takes_argument()
The process of parsing command-line options in commands that
perform an early scan over their arguments (such as 'git bisect',
'git rev-parse', and 'git fast-import') has been unified using a
new early-scan sub-API, which parses and skips known options taking
separate values to prevent logic bugs.
Waiting for response.
cf. <84f9d1c9-30b7-4d8b-82d6-9afd16d0ab08@gmail.com>
source: <20260923080928.1534413-1-christian.couder@gmail.com>
* ec/commit-fixup-options (2026-09-22) 2 commits
- commit: allow -c/-C for all kinds of --fixup
- commit: allow -m/-F for all kinds of --fixup
Support for '-m', '-F', '-c', or '-C' options to supply a commit log
message from outside the editor has been added for all 'git commit
--fixup' variations.
Needs review.
source: <cover.1790082176.git.erik@cervined.in>
* ll/doc-pushcert-if-asked (2026-08-29) 1 commit
- doc: remote-helpers: option pushcert if-asked
The remote helper documentation for the 'pushcert' option has been
updated to mention that it can also take 'if-asked', reflecting the
existing implementation in the code.
Needs review.
source: <20260829183659.29947-1-lorenz.leutgeb@posteo.eu>
* ws/squelch-svn-migrate (2026-08-27) 2 commits
- Makefile: add NO_GIT_SVN knob to skip building/installing git-svn
- git-svn: don't print v1-layout migration noise when there's nothing to migrate
Needs review.
source: <20260827234345.1037130-1-wesleys@opperschaap.net>
* 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.
Expecting a reroll.
cf. <aqIvJhLLcCSnyaL4-delilahwu@linux.microsoft.com>
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>
* ap/http-preserve-wwwauth-redirect (2026-08-19) 1 commit
- http: preserve wwwauth_headers across redirects
When an HTTP request triggers a redirect and the target yields an
authentication challenge, the WWW-Authenticate headers received
during the redirect are now explicitly preserved across the
credential URL update, fixing an issue where they were incorrectly
cleared.
Needs review.
source: <20260819-http-preserve-wwwauth-redirect-v2-1-4c61039432b0@nvidia.com>
* kh/format-rev-more-options (2026-08-18) 5 commits
- format-rev: learn --abbrev, --color, and --date
- doc: rev-list-options.adoc: factor out --date alts
- format-rev: factor option variables into a struct
- format-rev: place BUG calls first in callback
- format-rev: use lower case for opts description
The experimental 'git format-rev' has been taught a few more
formatting options.
Needs review.
source: <V2_CV_format-rev_three_more_opts.bd3@msgid.xyz>
* gg/http-ssl-verify-status (2026-09-15) 1 commit
(merged to 'next' on 2026-09-22 at e93bda5dfa)
+ http: add http.sslVerifyStatus to check stapled OCSP responses
The HTTP transport has been taught to check the revocation status of
the server certificate using the stapled OCSP response during the
TLS handshake via a new 'http.sslVerifyStatus' configuration
variable.
Will merge to 'master'.
cf. <xmqqv785uha7.fsf@gitster.g>
source: <20260915162348.97792-1-ggordon@gitlab.com>
* bc/restrict-hex-to-lowercase (2026-09-07) 7 commits
- hex: allow only lowercase object IDs in breaking changes mode
- t5324: adjust tests for corrupt commit-graph
- object-name: use hexval
- hex: label usages of hex parsing for object IDs
- hex: make hex_to_bytes accept kind of hex to use
- hex: allow specifying hex type with hex2chr
- hex: add functionality for lowercase-only hex
The parser for hex object names has been updated to reject uppercase
hexadecimal characters when running in the breaking changes mode, in
preparation for Git 3.0.
Needs review.
source: <20260907195941.1024289-1-sandals@crustytoothpaste.net>
* kj/repo-info-more-path-keys (2026-09-11) 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
- repo: add path.hooks with absolute and relative suffixes
- repo: add path.superproject-root with absolute and relative suffixes
- repo: add path.toplevel with absolute and relative suffix formatting
The 'git repo info' command has been taught more keys to output
paths of various repository components (such as the working tree
root, superproject working tree, object database, etc.), supporting
both absolute and relative path formats.
Expecting a reroll.
cf. <CA+rGoLcRRZPu8SD-vZw+rEjVzKO02=nMn_x+4ANJX7eh9jgBcw@mail.gmail.com>
source: <20260911144519.1011780-1-jayatheerthkulkarni2005@gmail.com>
* tc/last-modified-bloom (2026-09-01) 6 commits
- last-modified: keep per-path Bloom filters for wildcard pathspecs
- last-modified: check pathspec against Bloom filter first
- revision: add Bloom check that includes parent directories
- bloom: add helper to check if any key in a vector is present
- revision: expose check for paths maybe changed in Bloom filter
- revision: move bloom keyvec precondition into function
The 'git last-modified' command has been optimized by using Bloom
filters. It now reuses revision walk filtering logic from 'git log'
to pre-filter commits, and maintains per-path Bloom filters even when
wildcard pathspecs are used.
Waiting for response for too long, stalled.
cf. <aqJWihcFmX7tPio5@pks.im>
cf. <aqJWX0INerT8F687@pks.im>
source: <20260901-toon-speed-up-last-modified-v4-0-a09949800404@iotcl.com>
* ds/trace2-tolerate-failed-timestamp (2026-08-31) 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
Functions like `xstrfmt()` and `xcalloc()` have been banned from use
in the trace2 API codebase to prevent calls to `die()` which lead to
unwanted process exits and recursion when memory allocation fails.
Needs review.
source: <pull.2178.v3.git.1788197143.gitgitgadget@gmail.com>
* pz/fetch-submodule-errors-config (2026-07-16) 2 commits
- fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal
- submodule: fix premature failure in recursive submodule fetch
The 'git fetch' command can now configure how submodule fetch errors
are handled via 'fetch.submoduleErrors' and '--submodule-errors',
making them non-fatal. A premature failure during recursive submodule
fetches has been fixed by deferring the error until the OID-based
retry phase fails.
Needs review.
source: <20260716140956.1023740-1-paulius.zaleckas@gmail.com>
* ij/subtree-reject-v2-config (2026-07-06) 2 commits
- git-subtree: Bail out if we find output from Rust rewrite (test)
- git-subtree: Bail out if we find output from Rust rewrite
The shell script implementation of 'git subtree' has been updated to
check for the presence of the configuration file of the new Rust
implementation, preventing users from accidentally running the old
script on repositories already managed by the new tool.
Expecting a reroll.
cf. <27219.20156.438730.881821@chiark.greenend.org.uk>
source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>
* mm/line-log-limited-ops (2026-09-02) 7 commits
- diffcore-pickaxe: limit -G to the -L tracked range
- diff: support --check with -L line ranges
- diff: support stat formats with -L
- diff: extract a line-range diff helper for reuse
- diff: emit -L hunk headers via xdiff's formatter
- diff: simplify the line-range filter by classifying removals immediately
- diff: rename line-range filter struct and clarify fields
(this branch is used by mm/diff-process-hunks.)
The 'git log -L<range>:<path>' command has been taught to limit
various 'diff' operations, such as '--stat', '--check', and '-G', to
the specified range and path.
Needs review.
source: <pull.2152.v3.git.1788411919.gitgitgadget@gmail.com>
* tb/midx-incremental-custom-base (2026-06-12) 3 commits
- midx-write: include packs above custom incremental base
- midx: pass custom '--base' through incremental writes
- t5334: expose shared `nth_line()` helper
The 'git multi-pack-index write --incremental' command has been
corrected to properly honor the '--base' option. Previously, the
custom base was ignored by the normal write path; packs from layers
above the selected base were incorrectly skipped by the pack exclusion
logic, and reachability closure for bitmaps was broken.
Expecting a reroll.
cf. <an4uIQA09rDCwwBp@com-79390>
cf. <apUbQ4S-zJGtBeu2@pks.im>
source: <cover.1781294771.git.me@ttaylorr.com>
* mm/diff-process-hunks (2026-08-13) 11 commits
- fixup! diff: consult oid-only hunk providers via diff.<driver>.process
- diff: consult oid-only hunk providers via diff.<driver>.process
- userdiff: add diff.<driver>.process config
- sub-process: add a gentle status read
- sub-process: separate process lifecycle from hashmap management
- blame: read precomputed hunks
- diff: read precomputed hunks for stat output
- diff: record precomputed hunks during stat output
- diff-hunks: add the store format, library, and command
- diff: introduce a hunk provider interface
- gitattributes: document how external diff drivers relate to diff features
- Merge branch 'mm/line-log-limited-ops' into mm/diff-process-hunks
(this branch uses mm/line-log-limited-ops.)
A new 'diff.<driver>.process' configuration has been introduced to
allow a long-running external process to act as a hunk provider,
enabling external tools to control which lines Git considers changed
while leaving all output formatting (word diff, color, blame, etc.) to
Git's standard pipeline.
Expecting a reroll.
cf. <CAC2Qwm+kzT_3_GKrpay=JLGYsxS10oWCg2MJPHrCVogFHA0OdA@mail.gmail.com>
source: <20260801174156.2998808-1-mmontalbo@gmail.com>
* kh/format-patch-range-diff-notes (2026-09-26) 2 commits
- format-patch: learn --[no-]range-diff-notes
- 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.
Expecting a reroll.
cf. <57741bea-f264-45ab-b5fc-52466fdcb03e@app.fastmail.com>
source: <V2_CV_format-patch_learn_--range-diff-notes.cdb@m5gid.xyz>
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: What's cooking in git.git (Oct 2026, #01)
2026-10-01 22:48 What's cooking in git.git (Oct 2026, #01) Junio C Hamano
@ 2026-10-02 9:10 ` Patrick Steinhardt
2026-10-02 15:02 ` Junio C Hamano
2026-10-02 16:54 ` What's cooking in git.git K Jayatheerth
1 sibling, 1 reply; 16+ messages in thread
From: Patrick Steinhardt @ 2026-10-02 9:10 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On Thu, Oct 01, 2026 at 03:48:09PM -0700, Junio C Hamano wrote:
> * ps/reftable-reflog-timezone (2026-09-30) 3 commits
> - refs/reftable: fix on-disk representation of reflog timezones
> - t/helper: fix segfault in "dump-reftable -t"
> - date: add helpers to convert between "+HHMM" timezones and minutes
>
> The internal representation of timezones in the reflog for the
> reftable format has been fixed to match the specification, which
> dictates an offset in minutes rather than the parsed "+HHMM" integer
> representation.
>
> Will merge to 'next'?
> cf. <CAOLa=ZRVt=e3MqjLY=UkitfSg_YjpsfFjeDsEmqJQm-5YhopxA@mail.gmail.com>
> cf. <xmqq33up73dm.fsf@gitster.g>
> source: <20261001-pks-reftables-fix-timezone-format-v2-0-a4fd1f7cd21a@pks.im>
Yeah, this one should be ready.
> * mc/refs-rename-transaction (2026-09-23) 1 commit
> - refs: run copy and rename through transactions
>
> Both reference rename and copy operations have been refactored to
> use the generic reference transaction API, ensuring that hooks
> observe the updates as unified logical operations rather than
> piece-meal internal deletions and additions.
>
> Needs review.
> source: <20260923133651.74120-1-maciej.ciemborowicz@gmail.com>
Oh, I completely missed this series. I'll have a look.
> * td/ci-large-test-resources (2026-09-30) 2 commits
> - ci: use twice the CPU count on both providers
> - t4205: compare huge output without diff
>
> CI resource exhaustion during test runs on GitHub Actions has been
> mitigated by switching a comparison of a huge output to use a binary
> comparison, and by capping the parallel jobs on Linux to the number
> of available CPUs.
>
> Will merge to 'next'?
> cf. <ar0gon2VE0RlG_cC@pks.im>
> source: <20260930-ci-large-test-resources-v3-0-d65ac7c21b5f@gmail.com>
I'm happy with this series.
> * mc/refs-hook-report-old-values (2026-09-24) 1 commit
> - refs: report old values to transaction hooks
>
> The 'reference-transaction' hook has been updated to report the
> observed old object IDs and symref targets for unconditional ref
> updates and deletions, instead of reporting the null object ID.
>
> Needs review.
> source: <2af3eeadd18806c5298d53072428656885cff89d.1790269745.git.maciej.ciemborowicz@gmail.com>
Yeah, this is in my backlog to review.
> * ps/meson-improvements (2026-09-24) 7 commits
> - gitlab-ci: fix hanging MSVC jobs
> - meson: update wrappers
> - meson: fix outdated completion helpers
> - meson: use precompiled headers for unit tests
> - meson: use precompiled headers for our test-helper
> - meson: don't recompile git-remote-http(1) multiple times for tests
> - meson: avoid recompiling HTTP sources several times
>
> The build configurations for Meson have been optimized to avoid
> recompiling HTTP sources multiple times and to utilize precompiled
> headers for test-helpers and unit tests, reducing clean build times.
> Additionally, the shell completion tests and GitLab CI MSVC runner
> jobs have been fixed.
>
> Will merge to 'next'?
> cf. <CAOLa=ZS8Exa_WkMLiFNspeYaKFf40eOM19ZgecC=yTnFEAhMzQ@mail.gmail.com>
> source: <20260924-pks-meson-improvements-v1-0-90b7f79f1c4e@pks.im>
Yup, I'd be happy to have this merged so that our pipelines are finally
green again :)
> * ps/setup-enforce-repo-passed-to-create-repository-has-no-state (2026-09-28) 7 commits
> - setup: enforce that passed-in repo does not carry relevant state
> - repository: adapt `repo_clear()` to fully reset the repository
> - builtin/clone: don't apply "core.sharedRepository" to leading dirs
> - builtin/init: move handling of "core.sharedRepository" into "setup.c"
> - builtin/init: refactor messy creation of leading directories
> - path: introduce `safe_create_leading_directories_no_share_const()`
> - path: drop useless `safe_create_leading_directories_1()`
> - Merge branch 'ps/odb-alternates-at-creation' into ps/setup-enforce-repo-passed-to-create-repository-has-no-state
>
> The repository initialization sequence has been refactored to treat
> the repository object passed to create_repository() purely as an
> out-parameter.
>
> Waiting for response.
> cf. <b0ec2ef9-7aef-4f7d-b31b-7141b39c2d24@gmail.com>
> cf. <xmqqtsn9mkog.fsf@gitster.g>
> cf. <CAOLa=ZSX0e25wK5qQwznXN9rVM+WHn8631pkTEN9Zm-BrXfEsg@mail.gmail.com>
> source: <20260928-pks-create-repository-stateless-v2-0-a03612f703fa@pks.im>
Hm. All I can see is the discussion around free(3) vs free(3p). Is the
expectation to do a reroll with s/free(3p)/free(3)?
Patrick
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: What's cooking in git.git (Oct 2026, #01)
2026-10-02 9:10 ` Patrick Steinhardt
@ 2026-10-02 15:02 ` Junio C Hamano
0 siblings, 0 replies; 16+ messages in thread
From: Junio C Hamano @ 2026-10-02 15:02 UTC (permalink / raw)
To: Patrick Steinhardt; +Cc: git
Patrick Steinhardt <ps@pks.im> writes:
>> Waiting for response.
>> cf. <b0ec2ef9-7aef-4f7d-b31b-7141b39c2d24@gmail.com>
>> cf. <xmqqtsn9mkog.fsf@gitster.g>
>> cf. <CAOLa=ZSX0e25wK5qQwznXN9rVM+WHn8631pkTEN9Zm-BrXfEsg@mail.gmail.com>
>> source: <20260928-pks-create-repository-stateless-v2-0-a03612f703fa@pks.im>
>
> Hm. All I can see is the discussion around free(3) vs free(3p). Is the
> expectation to do a reroll with s/free(3p)/free(3)?
Sorry, I thought I already relabelled the topic, but apparently I
didn't do so. I think this should be ready.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: What's cooking in git.git
2026-10-01 22:48 What's cooking in git.git (Oct 2026, #01) Junio C Hamano
2026-10-02 9:10 ` Patrick Steinhardt
@ 2026-10-02 16:54 ` K Jayatheerth
2026-10-02 17:03 ` Junio C Hamano
1 sibling, 1 reply; 16+ messages in thread
From: K Jayatheerth @ 2026-10-02 16:54 UTC (permalink / raw)
To: gitster; +Cc: git
>* kj/repo-info-more-path-keys (2026-09-11) 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
> - repo: add path.hooks with absolute and relative suffixes
> - repo: add path.superproject-root with absolute and relative suffixes
> - repo: add path.toplevel with absolute and relative suffix formatting
>
> The 'git repo info' command has been taught more keys to output
> paths of various repository components (such as the working tree
> root, superproject working tree, object database, etc.), supporting
> both absolute and relative path formats.
>
> Expecting a reroll.
> cf. <CA+rGoLcRRZPu8SD-vZw+rEjVzKO02=nMn_x+4ANJX7eh9jgBcw@mail.gmail.com>
> source: <20260911144519.1011780-1-jayatheerthkulkarni2005@gmail.com>
Hey Junio, I have sent a new series at the message ID
<20260927114420.59724-1-jayatheerthkulkarni2005@gmail.com>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: What's cooking in git.git
2026-10-02 16:54 ` What's cooking in git.git K Jayatheerth
@ 2026-10-02 17:03 ` Junio C Hamano
0 siblings, 0 replies; 16+ messages in thread
From: Junio C Hamano @ 2026-10-02 17:03 UTC (permalink / raw)
To: K Jayatheerth; +Cc: git
K Jayatheerth <jayatheerthkulkarni2005@gmail.com> writes:
>>* kj/repo-info-more-path-keys (2026-09-11) 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
>> - repo: add path.hooks with absolute and relative suffixes
>> - repo: add path.superproject-root with absolute and relative suffixes
>> - repo: add path.toplevel with absolute and relative suffix formatting
>>
>> The 'git repo info' command has been taught more keys to output
>> paths of various repository components (such as the working tree
>> root, superproject working tree, object database, etc.), supporting
>> both absolute and relative path formats.
>>
>> Expecting a reroll.
>> cf. <CA+rGoLcRRZPu8SD-vZw+rEjVzKO02=nMn_x+4ANJX7eh9jgBcw@mail.gmail.com>
>> source: <20260911144519.1011780-1-jayatheerthkulkarni2005@gmail.com>
>
> Hey Junio, I have sent a new series at the message ID
> <20260927114420.59724-1-jayatheerthkulkarni2005@gmail.com>
Will replace. Thanks.
^ permalink raw reply [flat|nested] 16+ messages in thread
* What's cooking in git.git
@ 2015-08-05 22:55 Junio C Hamano
2015-08-05 23:14 ` David Turner
` (2 more replies)
0 siblings, 3 replies; 16+ messages in thread
From: Junio C Hamano @ 2015-08-05 22:55 UTC (permalink / raw)
To: git
This is still a draft but only to show the highlights on new topics.
* bb/remote-get-url (2015-08-05) 1 commit
- remote: add get-url subcommand
"git remote" learned "get-url" subcommand to show the URL for a
given remote name used for fetching and pushing.
Expecting a reroll.
* dt/untracked-subdir (2015-08-05) 2 commits
- DONTMERGE: Waiting for an Ack from Duy
- untracked-cache: fix subdirectory handling
(this branch uses dt/untracked-sparse.)
This seems to break some tests.
* cb/open-noatime-clear-errno (2015-08-05) 1 commit
- git_open_noatime: return with errno=0 on success
Breaks build; need to tweak.
* jk/guess-repo-name-regression-fix (2015-08-05) 2 commits
- clone: use computed length in guess_dir_name
- clone: add tests for output directory
(this branch is used by ps/guess-repo-name-at-root.)
"git clone $URL" in recent releases of Git contains a regression in
the code that invents a new repository name incorrectly based on
the $URL. This has been corrected.
May need some tests from SQUASH??? on ps/guess-repo-name-at-root
squashed into this, but otherwise looks good.
* ps/guess-repo-name-at-root (2015-08-05) 4 commits
- SQUASH???
- clone: abort if no dir name could be guessed
- clone: do not use port number as dir name
- clone: do not include authentication data in guessed dir
(this branch uses jk/guess-repo-name-regression-fix.)
"git clone $URL", when cloning from a site whose sole purpose is to
host a single repository (hence, no path after <scheme>://<site>/),
tried to used the site name as the new repository name, but did
not remove username or password when <site> part was of the form
<user>@<pass>:<host>. The code is taught to redact these.
* jk/notes-merge-config (2015-08-05) 4 commits
- SQUASH???
- notes: add notes.merge option to select default strategy
- notes: add tests for --commit/--abort/--strategy exclusivity
- notes: document cat_sort_uniq rewriteMode
"git notes merge" can be told with "--strategy=<how>" option how to
automatically handle conflicts; this can now be configured by
setting notes.merge configuration variable.
The last step to add more specific notes.$ref.merge looked
questionable.
Waiting for reroll.
* mk/submodule-gitdir-path (2015-08-05) 2 commits
- path: implement common_dir handling in git_path_submodule()
- submodule refactor: use git_path_submodule() in add_submodule_odb()
The submodule code has been taught to work better with separate
work trees created via "git worktree add".
* mm/pull-upload-pack (2015-07-30) 1 commit
- pull.sh: quote $upload_pack when passing it to git-fetch
"git pull" in recent releases of Git has a regression in the code
that allows custom path to the --upload-pack=<program>. This has
been corrected.
Will merge to 'maint'.
This should have already become irrelevant in 'master' with "git
pull" getting rewritten in C.
* ps/t1509-chroot-test-fixup (2015-08-05) 2 commits
- tests: fix cleanup after tests in t1509-root-worktree
- tests: fix broken && chains in t1509-root-worktree
t1509 test that requires a dedicated VM environment had some
bitrot, which has been corrected.
Will merge to 'next'.
* pt/am-builtin-options (2015-08-05) 4 commits
- am: let --signoff override --no-signoff
- am: let command-line options override saved options
- squash! test_terminal: redirect child process' stdin to a pty
- test_terminal: redirect child process' stdin to a pty
(this branch uses pt/am-builtin.)
After "git am --opt1" stops, running "git am --opt2" pays attention
to "--opt2" only for the patch that caused the original invocation
to stop.
* sb/remove-get-pathspec (2015-08-03) 1 commit
- builtin/mv: remove get_pathspec()
Expecting a reroll ($gmane/275224).
* sb/submodule-helper (2015-08-05) 1 commit
- submodule: implement `module_list` as a builtin helper
The beginning of "git submodule" rewritten in C.
* tb/complete-rebase-i-edit-todo (2015-08-05) 1 commit
- completion: offer '--edit-todo' during interactive rebase
Comments?
* jk/negative-hiderefs (2015-07-28) 2 commits
- refs: support negative transfer.hideRefs
- docs/config.txt: reorder hideRefs config
Allow negative !ref entry in multi-value transfer.hideRefs
configuration to say "don't hide this one".
An update to test coming?
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: What's cooking in git.git
2015-08-05 22:55 Junio C Hamano
@ 2015-08-05 23:14 ` David Turner
2015-08-05 23:58 ` Junio C Hamano
2015-08-06 4:55 ` Jeff King
2015-08-06 10:19 ` Johannes Schindelin
2 siblings, 1 reply; 16+ messages in thread
From: David Turner @ 2015-08-05 23:14 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On Wed, 2015-08-05 at 15:55 -0700, Junio C Hamano wrote:
> * dt/untracked-subdir (2015-08-05) 2 commits
> - DONTMERGE: Waiting for an Ack from Duy
> - untracked-cache: fix subdirectory handling
> (this branch uses dt/untracked-sparse.)
>
> This seems to break some tests.
All tests pass for me locally. What's broken for you?
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: What's cooking in git.git
2015-08-05 23:14 ` David Turner
@ 2015-08-05 23:58 ` Junio C Hamano
2015-08-07 16:40 ` Junio C Hamano
0 siblings, 1 reply; 16+ messages in thread
From: Junio C Hamano @ 2015-08-05 23:58 UTC (permalink / raw)
To: David Turner; +Cc: git
David Turner <dturner@twopensource.com> writes:
> On Wed, 2015-08-05 at 15:55 -0700, Junio C Hamano wrote:
>> * dt/untracked-subdir (2015-08-05) 2 commits
>> - DONTMERGE: Waiting for an Ack from Duy
>> - untracked-cache: fix subdirectory handling
>> (this branch uses dt/untracked-sparse.)
>>
>> This seems to break some tests.
>
> All tests pass for me locally. What's broken for you?
*** prove ***
t7063-status-untracked-cache.sh .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 3/30 subtests
Test Summary Report
-------------------
t7063-status-untracked-cache.sh (Wstat: 256 Tests: 30 Failed: 3)
Failed tests: 28-30
Non-zero exit status: 1
Files=1, Tests=30, 27 wallclock secs ( 0.04 usr 0.01 sys + 0.15 cusr 0.67 csys = 0.87 CPU)
Result: FAIL
$ sh t7063-status-untracked-cache -i -v
ends like so:
...
node creation: 2
gitignore invalidation: 0
directory invalidation: 1
opendir: 3
EOF
test_cmp ../trace.expect ../trace
strace: invalid option -- 'k'
usage: strace [-CdffhiqrtttTvVxxy] [-I n] [-e expr]...
[-a column] [-o file] [-s strsize] [-P path]...
-p pid... / [-D] [-E var=val]... [-u username] PROG [ARGS]
or: strace -c[df] [-I n] [-e expr]... [-O overhead] [-S sortby]
-p pid... / [-D] [-E var=val]... [-u username] PROG [ARGS]
-c -- count time, calls, and errors for each syscall and report summary
-C -- like -c but also print regular output
-d -- enable debug output to stderr
-D -- run tracer process as a detached grandchild, not as parent
-f -- follow forks, -ff -- with output into separate files
-i -- print instruction pointer at time of syscall
-q -- suppress messages about attaching, detaching, etc.
-r -- print relative timestamp, -t -- absolute timestamp, -tt -- with usecs
-T -- print time spent in each syscall
-v -- verbose mode: print unabbreviated argv, stat, termios, etc. args
-x -- print non-ascii strings in hex, -xx -- print all strings in hex
-y -- print paths associated with file descriptor arguments
-h -- print help message, -V -- print version
-a column -- alignment COLUMN for printing syscall results (default 40)
-b execve -- detach on this syscall
-e expr -- a qualifying expression: option=[!]all or option=[!]val1[,val2]...
options: trace, abbrev, verbose, raw, signal, read, write
-I interruptible --
1: no signals are blocked
2: fatal signals are blocked while decoding syscall (default)
3: fatal signals are always blocked (default if '-o FILE PROG')
4: fatal signals and SIGTSTP (^Z) are always blocked
(useful to make 'strace -o FILE PROG' not stop on ^Z)
-o file -- send trace output to FILE instead of stderr
-O overhead -- set overhead for tracing syscalls to OVERHEAD usecs
-p pid -- trace process with process id PID, may be repeated
-s strsize -- limit length of print strings to STRSIZE chars (default 32)
-S sortby -- sort syscall counts by: time, calls, name, nothing (default time)
-u username -- run command as username handling setuid and/or setgid
-E var=val -- put var=val in the environment for command
-E var -- remove var from the environment for command
-P path -- trace accesses to path
not ok 28 - test sparse status with untracked cache and subdir
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: What's cooking in git.git
2015-08-05 23:58 ` Junio C Hamano
@ 2015-08-07 16:40 ` Junio C Hamano
0 siblings, 0 replies; 16+ messages in thread
From: Junio C Hamano @ 2015-08-07 16:40 UTC (permalink / raw)
To: David Turner; +Cc: git
Junio C Hamano <gitster@pobox.com> writes:
> David Turner <dturner@twopensource.com> writes:
>
>> On Wed, 2015-08-05 at 15:55 -0700, Junio C Hamano wrote:
>>> * dt/untracked-subdir (2015-08-05) 2 commits
>>> - DONTMERGE: Waiting for an Ack from Duy
>>> - untracked-cache: fix subdirectory handling
>>> (this branch uses dt/untracked-sparse.)
>>>
>>> This seems to break some tests.
>>
>> All tests pass for me locally. What's broken for you?
>
> *** prove ***
> t7063-status-untracked-cache.sh .. Dubious, test returned 1 (wstat 256, 0x100)
> Failed 3/30 subtests
>
> Test Summary Report
> -------------------
> t7063-status-untracked-cache.sh (Wstat: 256 Tests: 30 Failed: 3)
> Failed tests: 28-30
> Non-zero exit status: 1
> Files=1, Tests=30, 27 wallclock secs ( 0.04 usr 0.01 sys + 0.15 cusr 0.67 csys = 0.87 CPU)
> Result: FAIL
So it turns out that you run "strace -k -o /tmp/tr" and never look
at /tmp/tr; I am guessing that this was a remnant of your debugging
while developing the test, sign of lack of proofreading before
sending the patch out, perhaps?
I didn't carefully read the remainder of the patch, but at the
minimum this needs to be squashed in. They may be a reroll with
some more tweaks from you after other people comment on it, so I'll
keep this separate and squashable.
Thanks.
t/t7063-status-untracked-cache.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh
index bb0e2a9..ca8dc3a 100755
--- a/t/t7063-status-untracked-cache.sh
+++ b/t/t7063-status-untracked-cache.sh
@@ -486,7 +486,7 @@ test_expect_success 'test sparse status with untracked cache and subdir' '
avoid_racy &&
: >../trace &&
GIT_TRACE_UNTRACKED_STATS="$TRASH_DIRECTORY/trace" \
- strace -k -o /tmp/st git status --porcelain >../status.actual &&
+ git status --porcelain >../status.actual &&
cat >../status.expect <<EOF &&
M done/two
?? .gitignore
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: What's cooking in git.git
2015-08-05 22:55 Junio C Hamano
2015-08-05 23:14 ` David Turner
@ 2015-08-06 4:55 ` Jeff King
2015-08-07 18:47 ` Junio C Hamano
2015-08-06 10:19 ` Johannes Schindelin
2 siblings, 1 reply; 16+ messages in thread
From: Jeff King @ 2015-08-06 4:55 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On Wed, Aug 05, 2015 at 03:55:23PM -0700, Junio C Hamano wrote:
> * jk/negative-hiderefs (2015-07-28) 2 commits
> - refs: support negative transfer.hideRefs
> - docs/config.txt: reorder hideRefs config
>
> Allow negative !ref entry in multi-value transfer.hideRefs
> configuration to say "don't hide this one".
>
> An update to test coming?
Thanks for reminding me. I think we just want to squash this in to the
tip commit:
diff --git a/t/t5512-ls-remote.sh b/t/t5512-ls-remote.sh
index afde495..7756100 100755
--- a/t/t5512-ls-remote.sh
+++ b/t/t5512-ls-remote.sh
@@ -150,7 +150,8 @@ do
git config --add $configsection.hiderefs "!refs/tags/magic" &&
git config --add $configsection.hiderefs refs/tags/magic/one &&
git ls-remote . >actual &&
- verbose grep refs/tags/magic/two actual
+ verbose grep refs/tags/magic/two actual &&
+ ! grep refs/tags/magic/one actual
'
done
-Peff
PS I don't recall the outcome of our last discussion on the "verbose"
test function. Here it makes debug output for the "grep" above more
readable when it fails. But it also looks weird not to have the
matching negative one for the final grep (which could be
test_must_fail in this case, but we do not usually apply that to
non-git commands). If you would prefer to strip out the "verbose"
(from here and the test just below) while squashing, I am OK with
that.
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: What's cooking in git.git
2015-08-06 4:55 ` Jeff King
@ 2015-08-07 18:47 ` Junio C Hamano
0 siblings, 0 replies; 16+ messages in thread
From: Junio C Hamano @ 2015-08-07 18:47 UTC (permalink / raw)
To: Jeff King; +Cc: git
Jeff King <peff@peff.net> writes:
> PS I don't recall the outcome of our last discussion on the "verbose"
> test function. Here it makes debug output for the "grep" above more
> readable when it fails. But it also looks weird not to have the
> matching negative one for the final grep (which could be
> test_must_fail in this case, but we do not usually apply that to
> non-git commands). If you would prefer to strip out the "verbose"
> (from here and the test just below) while squashing, I am OK with
> that.
Yeah, let's do that then.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: What's cooking in git.git
2015-08-05 22:55 Junio C Hamano
2015-08-05 23:14 ` David Turner
2015-08-06 4:55 ` Jeff King
@ 2015-08-06 10:19 ` Johannes Schindelin
2 siblings, 0 replies; 16+ messages in thread
From: Johannes Schindelin @ 2015-08-06 10:19 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
Hi Junio,
On 2015-08-06 00:55, Junio C Hamano wrote:
> * sb/submodule-helper (2015-08-05) 1 commit
> - submodule: implement `module_list` as a builtin helper
>
> The beginning of "git submodule" rewritten in C.
I am really looking forward to that, with my Windows performance hat firmly on my head.
> * tb/complete-rebase-i-edit-todo (2015-08-05) 1 commit
> - completion: offer '--edit-todo' during interactive rebase
>
> Comments?
The problem fixed by this one has bugged me plenty of times. I often need to edit the TODO e.g. when I managed to get the reordering wrong and want to insert a `pick <commit>` later in the `git-rebase-todo` and then call `git rebase --skip`.
Read: I am very much in favor of fast-tracking this topic.
Thanks,
Dscho
^ permalink raw reply [flat|nested] 16+ messages in thread
* What's cooking in git.git
@ 2006-12-13 21:38 Junio C Hamano
0 siblings, 0 replies; 16+ messages in thread
From: Junio C Hamano @ 2006-12-13 21:38 UTC (permalink / raw)
To: git
I think the last issue in "consolidated topic listing" format
was a success, so this is in the same format. In the following
listing, a commit in 'next' has '+' in front, and the ones only
in 'pu' have '-' in front. The date after each topic name is
the last time the topic was touched.
* jc/diff--cached (Wed Dec 13 01:33:43 2006 -0800) 1 commit
+ Revert "git-diff: Introduce --index and deprecate --cached."
Will merge to 'master' shortly and will be in v1.5.0.
* jc/git-add--interactive (Mon Dec 11 17:09:26 2006 -0800) 2 commits
- git-add --interactive: hunk splitting
- git-add --interactive
Undecided. Either drop it altogether or merge it to 'next'
after adding 'edit' interface to the index contents.
* jn/web (Sun Dec 10 13:25:49 2006 +0100) 5 commits
+ gitweb: SHA-1 in commit log message links to "object" view
+ gitweb: Hyperlink target of symbolic link in "tree" view (if
possible)
+ gitweb: Add generic git_object subroutine to display object of any
type
+ gitweb: Show target of symbolic link in "tree" view
+ gitweb: Don't use Content-Encoding: header in git_snapshot
Haven't looked at them fully, but likely to be in v1.5.0.
* jc/blame-boundary (Fri Dec 1 20:45:45 2006 -0800) 1 commit
+ git-blame: show lines attributed to boundary commits differently.
This does not break gitweb nor git-cvsserver because they have
no way to specify boundary commits. Likely to be in v1.5.0.
Later we can update gitweb to allow specifying the range and
handle 'boundary' annotations in a special way.
* jc/explain (Mon Dec 4 19:35:04 2006 -0800) 1 commit
- git-explain
We probably should come up with a unified way to allow various
commands that can leave the working tree into special states to
communicate with each other first. Will NOT be in v1.5.0.
* jc/patch-inline-comments (Fri Dec 8 21:03:52 2006 -0800) 1 commit
- mailinfo: hack to accept in-line annotations in patches.
Will drop.
* sv/git-svn (Tue Dec 5 16:17:38 2006 +1100) 5 commits
- git-svn: re-map repository URLs and UUIDs on SVK mirror paths
- git-svn: collect revision properties when fetching
- git-svn: collect SVK source URL on mirror paths
- git-svn: let libsvn_ls_fullurl return properties too
- git-svn: make test for SVK mirror path import
Sam Villain's SVN fixes are queued in 'pu' but the series hasn't
seen updates after Eric commented on them. Still on hold.
* jc/3way (Wed Nov 29 18:53:13 2006 -0800) 1 commit
+ git-merge: preserve and merge local changes when doing fast
forward
This does the magic unconditionally which I am not 100% happy
about, because the resulting mess could be too large to handle.
On the other hand, the user deserves what he gets if he starts a
merge from wildly unclean state, so it may not be too much of an
issue. Undecided.
* jc/leftright (Sun Oct 22 17:32:47 2006 -0700) 1 commit
- rev-list --left-right
I think this needs a better UI integration into 'git log' and
friends, not just rev-list. Currently, I can say:
$ git rev-list --no-merges --left-right --pretty v1.4.4.2...master
but that still misses --stat and --patch output. If people find
this useful, maybe we would want to merge it to 'next' after
adding the option to log and friends (or turn it on
automatically when symmetric difference is used).
* js/shallow (Fri Nov 24 16:00:13 2006 +0100) 15 commits
+ fetch-pack: Do not fetch tags for shallow clones.
+ get_shallow_commits: Avoid memory leak if a commit has been
reached already.
+ git-fetch: Reset shallow_depth before auto-following tags.
+ upload-pack: Check for NOT_SHALLOW flag before sending a shallow
to the client.
+ fetch-pack: Properly remove the shallow file when it becomes
empty.
+ shallow clone: unparse and reparse an unshallowed commit
+ Why didn't we mark want_obj as ~UNINTERESTING in the old code?
+ Why does it mean we do not have to register shallow if we have
one?
+ We should make sure that the protocol is still extensible.
+ add tests for shallow stuff
+ Shallow clone: do not ignore shallowness when following tags
+ allow deepening of a shallow repository
+ allow cloning a repository "shallowly"
+ support fetching into a shallow repository
+ upload-pack: no longer call rev-list
The 'shallow clone'. Most likely post v1.5.0.
* jc/web (Wed Nov 8 14:54:09 2006 -0800) 1 commit
- gitweb: steal loadavg throttle from kernel.org
If somebody steps up to maintain the gitweb installation at
kernel.org, merging this would make one less thing to customize
there. Undecided.
* jc/pickaxe (Sun Nov 5 11:52:43 2006 -0800) 1 commit
- blame: --show-stats for easier optimization work.
This is developer-only; will hold.
* jc/diff (Mon Sep 25 23:03:34 2006 -0700) 1 commit
- para-walk: walk n trees, index and working tree in parallel
Backburnered and will continue to hold. I suspect unpack-trees
logic that is used by read-tree would turn out to be too
cumbersome to optimize and at that point this might become
useful.
* jc/diff-apply-patch (Fri Sep 22 16:17:58 2006 -0700) 1 commit
+ git-diff/git-apply: make diff output a bit friendlier to GNU patch
(part 2)
Will hold until February.
^ permalink raw reply [flat|nested] 16+ messages in thread
* What's cooking in git.git
@ 2006-01-12 0:04 Junio C Hamano
2006-01-14 3:45 ` Junio C Hamano
2006-01-16 10:53 ` Petr Baudis
0 siblings, 2 replies; 16+ messages in thread
From: Junio C Hamano @ 2006-01-12 0:04 UTC (permalink / raw)
To: git
I have queued the following for the maintenance branches.
For both 1.0.X and 1.1.X series:
- update-index: work with c-quoted name
- show-branch: handle [] globs as well.
- name-rev: do not omit leading components of ref name.
For 1.1.X series only:
- Add git-describe to .gitignore.
- describe: do not silently ignore indescribable commits
I plan to do 1.0.10 [*1*] and 1.1.2 sometime this weekend, along
with some other fixes that would appear until then.
On the development front, I have these in the proposed updates
branch:
- Exec git programs without using PATH (Michal Ostrowski).
This has been discussed for the last couple of days on the
list. I think C side is ready to go in, but I'd like to
decide what to do on the scripting side before merging it
into the master branch.
- Disable USE_SYMLINK_HEAD by default (Pavel Roskin).
This has been on hold for almost two months -- forever in git
timescale.
One offender that could have been broken by this change was
fixed recently (gitweb), so this can go in anytime now. Do
people still care about it? The argument for the change when
it was proposed was "then we only have to worry about one
format of .git/HEAD, not two", and it still is a valid
argument from Porcelain writers' point of view. To be
honest, since I do not do Porcelain, I am neutral about it.
- convert-packs: futureproofing.
- Require packfiles to follow the naming convention (preparation).
These two I have been holding for a while. I would
eventually like to force people to rename the packfiles
created by GIT older than v0.99.9 which has unverifiable
hexadecimal string in their names and these are the first
two baby steps toward that goal. If people object to the
idea of verifiable packname in general, please raise hand,
and I may be talked into shelving the whole thing.
- Documentation: show-branch.
- show-branch: always include the current branch
- show-branch: make --topo-order noop and default.
- show-branch: make the current branch stand out.
Here are mostly usability updates.
I'll send out some of the above patches to the list separately
for discussion and review.
[Footnote]
*1* 1.0.X series maintenance can largely be ignored by general
public, since I do not see any reason to stick to 1.0.X series.
1.1.X series does not have any backward incompatibility issues
as far as I know. I am doing 1.0.X series primarily as a
practice for myself, and to experiment with a maintainer
workflow like this:
- "fixo/1.0" topic branch queues fixes applicable for 1.0
series *and* *later* maintenance series.
- "fix" topic branch queues fixes applicable only for the
current maintenance series.
- "mainto/1.0" branch is used to cut releases for the 1.0.X
maintenance series from. This pulls from "fixo/1.0" topic
branch.
- "maint" branch is used to cut releases for the current
maintenance series from. This pulls from both "fix" topic
branch and "mainto/*" topic branches.
With this setup, I can first merge "fixo/1.0" to "mainto/1.0",
and then merge "mainto/1.0" and "fix" branches to "maint", to
come up with something like this:
$ git show-branch fix fixo/* maint mainto/*
! [fix] describe: do not silently ignore indescribable commits
! [fixo/1.0] name-rev: do not omit leading components of ref name.
* [maint] GIT 1.1.2 (not really -- just a demonstration)
! [mainto/1.0] GIT 1.0.10 (not really -- just a demonstration)
----
* [maint] GIT 1.1.2 (not really -- just a demonstration)
+ * [fix] describe: do not silently ignore indescribable commits
+ * [fix^] Add git-describe to .gitignore.
* [maint^] Merge fixes up to GIT 1.0.10 (not really)
*+ [mainto/1.0] GIT 1.0.10 (not really -- just a demonstration)
+*+ [fixo/1.0] name-rev: do not omit leading components of ref name.
+*+ [fixo/1.0^] update-index: work with c-quoted name
*+ [mainto/1.0^] GIT 1.0.9
* [maint~2] GIT 1.1.1
+*+ [fixo/1.0~2] glossary: explain "master" and "origin"
+ * [maint~3] GIT-VERSION-GEN: detect dirty tree and mark the ver...
+ * [maint~4] For release tarballs, include the proper version
+ * [maint~5] GIT 1.1.0
+ *+ [mainto/1.0~2] GIT 1.0.8
++*+ [fixo/1.0~3] mailsplit: allow empty input from stdin
^ permalink raw reply [flat|nested] 16+ messages in thread* What's cooking in git.git
2006-01-12 0:04 Junio C Hamano
@ 2006-01-14 3:45 ` Junio C Hamano
2006-01-16 10:53 ` Petr Baudis
1 sibling, 0 replies; 16+ messages in thread
From: Junio C Hamano @ 2006-01-14 3:45 UTC (permalink / raw)
To: git
Junio C Hamano <junkio@cox.net> writes:
> - Exec git programs without using PATH (Michal Ostrowski).
>
> This has been discussed for the last couple of days on the
> list. I think C side is ready to go in, but I'd like to
> decide what to do on the scripting side before merging it
> into the master branch.
I've done a minor fix in the Makefile (things were installed in
the wrong way around --- $bindir should hold git and gitk and
$gitexecdir should hold the rest), and ran a brief test after
installing things with gitexecdir set to /usr/lib/git-core/x.
gitk needs to be taught to use git --exec-path upfront to set
its own PATH, but other than that, everything looks peachy.
About prepending to/appending to/not touching PATH, my current
thinking is that prepending is the way to go. The best
rationale so far I have heard against mucking with PATH was
"/home/mo/bin/diff vs /usr/bin/diff" issue, but I do not find
this to be so convincing in practice. This "use my diff not
system diff" is done most often when system diff is not GNU
enough, but on such a machine git will not be installed under
/usr/bin anyway (after all git prefers GNU diff).
And this becomes truly a non-issue when you point $gitexecdir at
a separate location that holds *only* git stuff. Everybody will
find the matching version of git that way, and when looking for
"diff", it will be found from one of the directories in the rest
of the PATH, not from $gitexecdir.
So unless there is an objection, this will graduate into the
"master" branch over the weekend.
What happens if gitexecdir != bindir?
As long as the user invokes "git foo" from the command line, not
"git-foo", everything should work fine, and once gitk is
updated, binary distributions could ship git with only git and
gitk in /usr/bin and others in /usr/lib/git-core/tools, or
something like that.
I will _not_ change the default gitexecdir in my Makefile nor
change the spec file, so RPM binary from kernel.org will still
have everything in /usr/bin for now.
Somebody needs to audit how ready popular Porcelains are, for at
least Cogito, stgit, gitweb and qgit and feed patches to
respective authors as necessary. I haven't looked into any of
them about this issue. The rules are:
(1) you can assume "git" is available on PATH;
(2) you should be safe if you do not use "git-foo" form;
(3) you can run
PATH="$(git --exec-path):$PATH"; export PATH
once at the beginning of your program and use "git-foo"
form.
Volunteers?
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: What's cooking in git.git
2006-01-12 0:04 Junio C Hamano
2006-01-14 3:45 ` Junio C Hamano
@ 2006-01-16 10:53 ` Petr Baudis
1 sibling, 0 replies; 16+ messages in thread
From: Petr Baudis @ 2006-01-16 10:53 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
Dear diary, on Thu, Jan 12, 2006 at 01:04:41AM CET, I got a letter
where Junio C Hamano <junkio@cox.net> said that...
> - Disable USE_SYMLINK_HEAD by default (Pavel Roskin).
>
> This has been on hold for almost two months -- forever in git
> timescale.
>
> One offender that could have been broken by this change was
> fixed recently (gitweb), so this can go in anytime now. Do
> people still care about it? The argument for the change when
> it was proposed was "then we only have to worry about one
> format of .git/HEAD, not two", and it still is a valid
> argument from Porcelain writers' point of view. To be
> honest, since I do not do Porcelain, I am neutral about it.
Yes, I'd still be pleased to see this. Cogito should be ready for this
for long enough, as far as I'm concerned.
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
Of the 3 great composers Mozart tells us what it's like to be human,
Beethoven tells us what it's like to be Beethoven and Bach tells us
what it's like to be the universe. -- Douglas Adams
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2026-10-02 17:03 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-01 22:48 What's cooking in git.git (Oct 2026, #01) Junio C Hamano
2026-10-02 9:10 ` Patrick Steinhardt
2026-10-02 15:02 ` Junio C Hamano
2026-10-02 16:54 ` What's cooking in git.git K Jayatheerth
2026-10-02 17:03 ` Junio C Hamano
-- strict thread matches above, loose matches on Subject: below --
2015-08-05 22:55 Junio C Hamano
2015-08-05 23:14 ` David Turner
2015-08-05 23:58 ` Junio C Hamano
2015-08-07 16:40 ` Junio C Hamano
2015-08-06 4:55 ` Jeff King
2015-08-07 18:47 ` Junio C Hamano
2015-08-06 10:19 ` Johannes Schindelin
2006-12-13 21:38 Junio C Hamano
2006-01-12 0:04 Junio C Hamano
2006-01-14 3:45 ` Junio C Hamano
2006-01-16 10:53 ` Petr Baudis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox