git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* What's cooking in git.git (Nov 2025, #07; Sun, 23)
@ 2025-11-24  4:59 Junio C Hamano
  2025-11-24 15:46 ` D. Ben Knoble
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Junio C Hamano @ 2025-11-24  4:59 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 are 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 an URL
to a message that raises issues but they are no means exhaustive.  A
topic without enough support may be discarded after a long period of
no activity (of course they can be resubmit when new interests
arise).

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']

* jc/gitattributes-whitespace-no-indent-fix (2025-11-11) 1 commit
  (merged to 'next' on 2025-11-19 at cd849a23a1)
 + .gitattributes: remove misspelled no-op whitespace attribute

 Originally merged to 'next' on 2025-11-14

 Ever since we added whitespace rules for this project, we misspelt
 an entry, which has been corrected.
 source: <xmqqv7jgwgxb.fsf@gitster.g>


* kn/maintenance-is-needed (2025-11-08) 7 commits
  (merged to 'next' on 2025-11-19 at faaa24f412)
 + maintenance: add 'is-needed' subcommand
 + maintenance: add checking logic in `pack_refs_condition()`
 + refs: add a `optimize_required` field to `struct ref_storage_be`
 + reftable/stack: add function to check if optimization is required
 + reftable/stack: return stack segments directly
 + Merge branch 'kn/refs-optim-cleanup' into kn/maintenance-is-needed
 + Merge branch 'ps/ref-peeled-tags' into kn/maintenance-is-needed

 Originally merged to 'next' on 2025-11-14

 "git maintenance" command learned "is-needed" subcommand to tell if
 it is necessary to perform various maintenance tasks.
 source: <20251108-562-add-sub-command-to-check-if-maintenance-is-needed-v4-0-a90f229b6023@gmail.com>


* rs/diff-quiet-no-rename (2025-11-09) 1 commit
  (merged to 'next' on 2025-11-19 at dc0b078446)
 + diff: disable rename detection with --quiet

 Originally merged to 'next' on 2025-11-14

 As "git diff --quiet" only cares about the existence of any
 changes, disable rename/copy detection to skip more expensive
 processing whose result will be discarded anyway.
 source: <8796cd59-2335-4674-823d-d682ce7b7f8e@web.de>

--------------------------------------------------
[New Topics]

* ja/doc-synopsis-style (2025-11-19) 3 commits
  (merged to 'next' on 2025-11-21 at eb9c1703c0)
 + doc: convert git push to synopsis style
 + doc: convert git pull to synopsis style
 + doc: convert git fetch to synopsis style

 Doc mark-up updates.

 Will merge to 'master'.
 source: <pull.2002.git.1763588404.gitgitgadget@gmail.com>


* jc/optional-path (2025-11-20) 3 commits
 - config: really treat missing optional path as not configured
 - config: really pretend missing :(optional) value is not there
 - config: mark otherwise unused function as file-scope static

 "git config get --path" segfaulted on an ":(optional)path" that
 does not exist, which has been corrected.

 Will merge to 'next'?
 source: <xmqqikf47ajk.fsf@gitster.g>


* kh/doc-committer-date-is-author-date (2025-11-20) 1 commit
 - doc: warn against --committer-date-is-author-date

 The "--committer-date-is-author-date" option of "git am/rebase" is
 a misguided one.  The documentation is updated to discourage its
 use.

 Will merge to 'next'?
 source: <V2_committer-date-is-author-date.1@msgid.xyz>


* gf/win32-pthread-cond-init (2025-11-20) 1 commit
 - win32: pthread_cond_init should return a value

 Emulation code clean-up.

 Will merge to 'next'?
 source: <pull.2103.v3.git.git.1763675016637.gitgitgadget@gmail.com>


* gf/win32-pthread-cond-wait-err (2025-11-18) 1 commit
  (merged to 'next' on 2025-11-21 at 89d9e04f91)
 + win32: return error if SleepConditionVariableCS fails

 Emulation code clean-up.

 Will merge to 'master'.
 source: <pull.2104.v2.git.git.1763480514065.gitgitgadget@gmail.com>


* kn/ref-location (2025-11-19) 2 commits
 - refs: add GIT_REF_URI to specify reference backend and directory
 - refs: support obtaining ref_store for given dir

 A mechanism to specify what reference backend to use and store
 references in which directory is introduced, which would likely to
 be useful during ref migration.
 source: <20251119-kn-alternate-ref-dir-v1-0-4cf4a94c8bed@gmail.com>

--------------------------------------------------
[Cooking]

* jk/ci-windows-meson-test-fix (2025-11-18) 2 commits
  (merged to 'next' on 2025-11-20 at a0afd4fd5b)
 + ci(windows-meson-test): handle options and output like other test jobs
 + unit-test: ignore --no-chain-lint

 "Windows+meson" job at the GitHub Actions CI was hard to debug, as
 it did not show and save failed test artifacts, which has been
 corrected.

 Will merge to 'master'.
 source: <20251118093221.GA530337@coredump.intra.peff.net>


* jk/test-mktemp-leakfix (2025-11-18) 1 commit
  (merged to 'next' on 2025-11-19 at 1da34f8b26)
 + test-mktemp: plug memory and descriptor leaks

 Test leakfix.

 Will merge to 'master'.
 source: <20251118122124.GA1117960@coredump.intra.peff.net>


* js/ci-github-setup-go-update (2025-11-17) 1 commit
  (merged to 'next' on 2025-11-19 at 9922384c2b)
 + ci: bump actions/setup-go from 5 to 6

 Update a version of action used at the GitHub Actrions CI.

 Will merge to 'master'.
 source: <ebc68ec5b2abbc4702b94f833b9b3bf1adb79f1a.1763450087.git.zhiyou.jx@alibaba-inc.com>


* js/ci-show-breakage-in-dockerized-jobs (2025-11-17) 1 commit
 - ci(dockerized): do show the result of failing tests again

 Dockerised jobs at the GitHub Actions CI have been taught to show
 more details of failed tests.

 Will merge to 'next' after amending?
 cf. <xmqqpl9gike6.fsf@gitster.g>
 source: <pull.2003.git.1763399064983.gitgitgadget@gmail.com>


* js/cmake-libgit-fix (2025-11-17) 1 commit
  (merged to 'next' on 2025-11-19 at 1593640ab0)
 + cmake: stop trying to build the reftable and xdiff libraries

 Makefile based build have recently been updated to build a
 libgit.a that also has reftable and xdiff objects; CMake based
 build procedure has been updated to match.

 Will merge to 'master'.
 source: <pull.2006.git.1763412008722.gitgitgadget@gmail.com>


* js/mingw-assign-comma-fix (2025-11-17) 1 commit
  (merged to 'next' on 2025-11-19 at d1a5807e11)
 + mingw: avoid the comma operator

 The "return errno = EFOO, -1" construct, which is heavily used in
 compat/mingw.c and triggers warnings under "-Wcomma", has been
 rewritten to avoid the warnings.

 Will merge to 'master'.
 source: <pull.2007.git.1763412374866.gitgitgadget@gmail.com>


* js/strip-scalar-too (2025-11-17) 1 commit
 - make strip: include `scalar`

 "make strip" has been taught to strip "scalar" as well as "git".

 Will merge to 'next'?
 cf. <xmqq7bvoiadg.fsf@gitster.g>
 source: <pull.2004.git.1763409086322.gitgitgadget@gmail.com>


* js/wincred-get-credential-alloc-fix (2025-11-17) 1 commit
  (merged to 'next' on 2025-11-19 at 4c43c53c49)
 + wincred: avoid memory corruption

 Under-allocation fix.

 Will merge to 'master'.
 source: <pull.2005.git.1763411984773.gitgitgadget@gmail.com>


* pw/worktree-list-display-width-fix (2025-11-18) 2 commits
  (merged to 'next' on 2025-11-20 at 3a341524cb)
 + worktree list: quote paths
 + worktree list: fix column spacing

 "git worktree list" attempts to show paths to worktrees while
 aligning them, but miscounted display columns for the paths when
 non-ASCII characters were involved, which has been corrected.

 Will merge to 'master'.
 source: <cover.1763482051.git.phillip.wood@dunelm.org.uk>


* rs/xmkstemp-simplify (2025-11-17) 1 commit
  (merged to 'next' on 2025-11-19 at 228e9f54ab)
 + wrapper: simplify xmkstemp()

 Code simplification.

 Will merge to 'master'.
 source: <058c5722-30f5-4bc5-90f5-24e4c6f3ff8f@web.de>


* dw/config-global-list (2025-10-09) 4 commits
 - config: keep bailing on unreadable global files
 - config: read global scope via config_sequence
 - config: test home and xdg files in `list --global`
 - cleanup_path: force forward slashes on Windows

 "git config --list --global", unlike "git config --list", did not
 consult both of the two possible per-user sources of the
 configuration files, i.e. $HOME/.gitconfig and the XDG one, which
 has been corrected.

 Comments?
 source: <pull.1938.git.1760058849.gitgitgadget@gmail.com>


* ps/object-read-stream (2025-11-23) 20 commits
 - streaming: drop redundant type and size pointers
 - streaming: move into object database subsystem
 - streaming: refactor interface to be object-database-centric
 - streaming: move logic to read packed objects streams into backend
 - streaming: move logic to read loose objects streams into backend
 - streaming: make the `odb_read_stream` definition public
 - streaming: get rid of `the_repository`
 - streaming: rely on object sources to create object stream
 - packfile: introduce function to read object info from a store
 - streaming: move zlib stream into backends
 - streaming: create structure for filtered object streams
 - streaming: create structure for packed object streams
 - streaming: create structure for loose object streams
 - streaming: create structure for in-core object streams
 - streaming: allocate stream inside the backend-specific logic
 - streaming: explicitly pass packfile info when streaming a packed object
 - streaming: propagate final object type via the stream
 - streaming: drop the `open()` callback function
 - streaming: rename `git_istream` into `odb_read_stream`
 - Merge branch 'ps/object-source-loose' into ps/object-read-stream
 (this branch uses ps/object-source-loose.)

 The "git_istream" abstraction has been revamped to make it easier
 to interface with pluggable object database design.

 Will merge to 'next'?
 source: <20251123-b4-pks-odb-read-stream-v3-0-1a129182822b@pks.im>


* ps/object-source-management (2025-11-18) 14 commits
 - odb: handle recreation of quarantine directories
 - odb: handle changing a repository's commondir
 - chdir-notify: add function to unregister listeners
 - odb: handle initialization of sources in `odb_new()`
 - http-push: stop setting up `the_repository` for each reference
 - t/helper: stop setting up `the_repository` repeatedly
 - builtin/index-pack: fix deferred fsck outside repos
 - oidset: introduce `oidset_equal()`
 - odb: move logic to disable ref updates into repo
 - odb: refactor `odb_clear()` to `odb_free()`
 - odb: adopt logic to close object databases
 - setup: convert `set_git_dir()` to have file scope
 - path: move `enter_repo()` into "setup.c"
 - Merge branch 'ps/object-source-loose' into ps/object-source-management
 (this branch uses ps/object-source-loose.)

 Code refactoring around object database sources.

 Comments?
 source: <20251119-b4-pks-odb-creation-v1-0-2b2ed2612cb6@pks.im>


* jc/submodule-add (2025-11-15) 1 commit
 - submodule add: sanity check existing .gitmodules

 "git submodule add" to add a submodule under <name> segfaulted,
 when a submodule.<name>.something is already in .gitmodules file
 without defining where its submodule.<name>.path is, which has been
 corrected.

 Comments?
 source: <xmqqv7jacvdq.fsf@gitster.g>


* kn/fix-fetch-backfill-tag-with-batched-ref-updates (2025-11-21) 3 commits
 - fetch: fix failed batched updates skipping operations
 - fetch: fix non-conflicting tags not being committed
 - fetch: extract out reference committing logic

 "git fetch" that involves fetching tags, when a tag being fetched
 needs to overwrite existing one, failed to fetch other tags, which
 has been corrected.

 Will merge to 'next'?
 source: <20251121-fix-tags-not-fetching-v8-0-23b53a8a8334@gmail.com>


* jk/asan-bonanza (2025-11-18) 9 commits
 - t: enable ASan's strict_string_checks option
 - fsck: avoid parse_timestamp() on buffer that isn't NUL-terminated
 - fsck: remove redundant date timestamp check
 - fsck: avoid strcspn() in fsck_ident()
 - fsck: assert newline presence in fsck_ident()
 - cache-tree: avoid strtol() on non-string buffer
 - Makefile: turn on NO_MMAP when building with ASan
 - pack-bitmap: handle name-hash lookups in incremental bitmaps
 - compat/mmap: mark unused argument in git_munmap()

 Various issues detected by Asan have been corrected.

 Will merge to 'next'.
 source: <20251118091127.GA4175601@coredump.intra.peff.net>


* jk/attr-macroexpand-wo-recursion (2025-11-11) 1 commit
  (merged to 'next' on 2025-11-19 at 5d5f74f4f0)
 + attr: avoid recursion when expanding attribute macros

 Originally merged to 'next' on 2025-11-16

 The code to expand attribute macros has been rewritten to avoid
 recursion to avoid running out of stack space in an uncontrolled
 way.

 Will merge to 'master'.
 source: <20251111223647.GA4055973@coredump.intra.peff.net>


* bc/submodule-force-same-hash (2025-11-14) 2 commits
  (merged to 'next' on 2025-11-19 at eec9dca32c)
 + read-cache: drop submodule check from add_to_cache()
 + object-file: disallow adding submodules of different hash algo

 Originally merged to 'next' on 2025-11-16

 Adding a repository that uses a different hash function is a no-no,
 but "git submodule add" did nt prevent it, which has been corrected.

 Will merge to 'master'.
 source: <20251112235434.1499699-1-sandals@crustytoothpaste.net>


* jx/repo-struct-utf8width-fix (2025-11-15) 2 commits
  (merged to 'next' on 2025-11-19 at 35bff72b75)
 + builtin/repo: fix table alignment for UTF-8 characters
 + t/unit-tests: add UTF-8 width tests for CJK chars

 Originally merged to 'next' on 2025-11-18

 The "git repo structure" subcommand tried to align its output but
 mixed up byte count and display column width, which has been
 corrected.

 Will merge to 'master'.
 source: <cover.1763213290.git.worldhello.net@gmail.com>


* kh/doc-commit-extra-references (2025-11-14) 1 commit
  (merged to 'next' on 2025-11-19 at 9c89891116)
 + doc: commit: link to git-status(1) on all format options

 Originally merged to 'next' on 2025-11-18

 Doc update.

 Will merge to 'master'.
 source: <c4349a03724.1763129061.git.code@khaugsbakk.name>


* kn/osxkeychain-idempotent-store-fix (2025-11-13) 1 commit
  (merged to 'next' on 2025-11-19 at 335d6bb2ea)
 + osxkeychain: avoid incorrectly skipping store operation

 Originally merged to 'next' on 2025-11-18

 An earlier check added to osx keychain credential helper to avoid
 storing the credential itself supplied was overeager and rejected
 credential material supplied by other helper backends that it would
 have wanted to store, which has been corrected.

 Will merge to 'master'.
 source: <pull.1999.v2.git.1763100270949.gitgitgadget@gmail.com>


* lc/rebase-trailer (2025-11-05) 4 commits
 - rebase: support --trailer
 - trailer: append trailers in-process and drop the fork to `interpret-trailers`
 - trailer: move process_trailers to trailer.h
 - interpret-trailers: factor out buffer-based processing to process_trailers()

 Refactor code paths to run "interpret-trailers" from "git
 commit/tag" and use it in "git rebase".

 Expecting a reroll.
 cf. <19a8fe42354.3909481a3912041.7970296104893780556@linux.beauty>
 source: <20251105142944.73061-1-me@linux.beauty>


* en/ort-rename-another-fix (2025-11-03) 3 commits
  (merged to 'next' on 2025-11-19 at 53d94af6b4)
 + merge-ort: fix failing merges in special corner case
 + merge-ort: remove debugging crud
 + t6429: update comment to mention correct tool

 Yet another corner case fix around renames in the "ort" merge
 strategy.

 Will merge to 'master'.
 source: <pull.1992.git.1762192908.gitgitgadget@gmail.com>


* qj/doc-http-bad-want-response (2025-11-05) 1 commit
  (merged to 'next' on 2025-11-19 at a602cd96eb)
 + doc: clarify server behavior for invalid 'want' lines in HTTP protocol

 Originally merged to 'next' on 2025-11-18

 Doc update.

 Will merge to 'master'.
 source: <20251105143849.1192-1-qjessa662@gmail.com>


* jc/exclude-with-gitignore (2025-11-04) 1 commit
 - dir.c: do not be fooled by :(exclude) pathspec elements

 "git add ':(exclude)foo.o'" is clearly a request not to add 'foo.o',
 but the command complained about listing an ignored path foo.o on
 the command line, which has been corrected.

 Comments?
 source: <xmqqtsz9o3cn.fsf@gitster.g>


* cc/fast-import-strip-if-invalid (2025-11-16) 3 commits
 - fast-import: add 'strip-if-invalid' mode to --signed-commits=<mode>
 - commit: refactor verify_commit_buffer()
 - fast-import: refactor finalize_commit_buffer()

 "git fast-import" learns "--strip-if-invalid" option to drop
 invalid cryptographic signature from objects.

 Comments?
 source: <20251117043450.322644-1-christian.couder@gmail.com>


* jc/whitespace-incomplete-line (2025-11-12) 12 commits
 - attr: enable incomplete-line whitespace error for this project
 - diff: highlight and error out on incomplete lines
 - apply: check and fix incomplete lines
 - whitespace: allocate a few more bits and define WS_INCOMPLETE_LINE
 - apply: revamp the parsing of incomplete lines
 - diff: update the way rewrite diff handles incomplete lines
 - diff: call emit_callback ecbdata everywhere
 - diff: refactor output of incomplete line
 - diff: keep track of the type of the last line seen
 - diff: correct suppress_blank_empty hack
 - diff: emit_line_ws_markup() if/else style fix
 - whitespace: correct bit assignment comments

 Both "git apply" and "git diff" learn a new whitespace error class,
 "incomplete-line".

 Will merge to 'next'.
 source: <20251112220258.1009253-1-gitster@pobox.com>


* ps/object-source-loose (2025-11-02) 13 commits
  (merged to 'next' on 2025-11-19 at 8bb0269243)
 + object-file: refactor writing objects via a stream
 + object-file: rename `write_object_file()`
 + object-file: refactor freshening of objects
 + object-file: rename `has_loose_object()`
 + object-file: read objects via the loose object source
 + object-file: move loose object map into loose source
 + object-file: hide internals when we need to reprepare loose sources
 + object-file: move loose object cache into loose source
 + object-file: introduce `struct odb_source_loose`
 + object-file: move `fetch_if_missing`
 + odb: adjust naming to free object sources
 + odb: introduce `odb_source_new()`
 + odb: fix subtle logic to check whether an alternate is usable
 (this branch is used by ps/object-read-stream and ps/object-source-management.)

 Originally merged to 'next' on 2025-11-18

 A part of code paths that deals with loose objects has been cleaned
 up.

 Will merge to 'master'.
 source: <20251103-b4-pks-odb-loose-backend-v3-0-6a61ea977393@pks.im>


* bc/sha1-256-interop-02 (2025-11-17) 15 commits
 - object-file-convert: always make sure object ID algo is valid
 - rust: add a small wrapper around the hashfile code
 - rust: add a new binary object map format
 - rust: add functionality to hash an object
 - rust: add a build.rs script for tests
 - hash: expose hash context functions to Rust
 - write-or-die: add an fsync component for the object map
 - csum-file: define hashwrite's count as a uint32_t
 - rust: add additional helpers for ObjectID
 - hash: add a function to look up hash algo structs
 - rust: add a hash algorithm abstraction
 - rust: add a ObjectID struct
 - hash: use uint32_t for object_id algorithm
 - conversion: don't crash when no destination algo
 - repository: require Rust support for interoperability

 The code to maintain mapping between object names in multiple hash
 functions is being added, written in Rust.
 source: <20251117221621.2863243-1-sandals@crustytoothpaste.net>


* ad/blame-diff-algorithm (2025-11-17) 2 commits
  (merged to 'next' on 2025-11-19 at e1e456469f)
 + blame: make diff algorithm configurable
 + xdiff: add 'minimal' to XDF_DIFF_ALGORITHM_MASK

 "git blame" learns "--diff-algorithm=<algo>" option.

 Will merge to 'master'.
 cf. <fd03f2a5-bf9e-453f-97d1-d5a66bc87470@gmail.com>
 source: <pull.2075.v6.git.git.1763366672.gitgitgadget@gmail.com>


* lo/repo-info-all (2025-11-18) 2 commits
  (merged to 'next' on 2025-11-21 at bb6bddcfc7)
 + repo: add --all to git-repo-info
 + repo: factor out field printing to dedicated function

 "git repo info" learned "--all" option.

 Will merge to 'master'.
 source: <20251118204929.43597-1-lucasseikioshiro@gmail.com>


* en/xdiff-cleanup-2 (2025-11-18) 10 commits
 - xdiff: rename rindex -> reference_index
 - xdiff: change rindex from long to size_t in xdfile_t
 - xdiff: make xdfile_t.nreff a size_t instead of long
 - xdiff: make xdfile_t.nrec a size_t instead of long
 - xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash
 - xdiff: use unambiguous types in xdl_hash_record()
 - xdiff: use size_t for xrecord_t.size
 - xdiff: make xrecord_t.ptr a uint8_t instead of char
 - xdiff: use ptrdiff_t for dstart/dend
 - doc: define unambiguous type mappings across C and Rust

 Code clean-up.

 Will merge to 'next'?
 source: <pull.2070.v5.git.git.1763505262.gitgitgadget@gmail.com>


* ar/run-command-hook (2025-10-17) 10 commits
 - receive-pack: convert receive hooks to hook API
 - receive-pack: convert update hooks to new API
 - hooks: allow callers to capture output
 - run-command: allow capturing of collated output
 - reference-transaction: use hook API instead of run-command
 - hook: allow overriding the ungroup option
 - transport: convert pre-push to hook API
 - hook: convert 'post-rewrite' hook in sequencer.c to hook API
 - hook: provide stdin via callback
 - run-command: add stdin callback for parallelization

 Use hook API to replace ad-hoc invocation of hook scripts with the
 run_command() API.

 Seems to leak and break CI
 cf. <xmqq346ff56h.fsf@gitster.g>
 source: <20251017141544.1538542-1-adrian.ratiu@collabora.com>


* je/doc-reset (2025-10-17) 4 commits
 - doc: git-reset: clarify `git reset <pathspec>`
 - doc: git-reset: clarify `git reset [mode]`
 - doc: git-reset: clarify intro
 - doc: git-reset: reorder the forms

 Documentation updates.

 Expecting a reroll.
 cf. <8099e7ef-2673-407e-8cca-e6b566b99549@app.fastmail.com>
 source: <pull.1991.git.1760731558.gitgitgadget@gmail.com>


* je/doc-data-model (2025-11-12) 1 commit
 - doc: add an explanation of Git's data model

 Add a new manual that describes the data model.

 Will merge to 'next'.
 source: <pull.1981.v7.git.1762977200244.gitgitgadget@gmail.com>


* ps/history (2025-10-27) 12 commits
 - builtin/history: implement "split" subcommand
 - cache-tree: allow writing in-memory index as tree
 - add-patch: add support for in-memory index patching
 - add-patch: remove dependency on "add-interactive" subsystem
 - add-patch: split out `struct interactive_options`
 - add-patch: split out header from "add-interactive.h"
 - builtin/history: implement "reword" subcommand
 - builtin: add new "history" command
 - replay: stop using `the_repository`
 - replay: extract logic to pick commits
 - wt-status: provide function to expose status for trees
 - Merge branch 'sa/replay-atomic-ref-updates' into ps/history
 (this branch uses sa/replay-atomic-ref-updates.)

 "git history" history rewriting UI.

 Expecting a reroll.
 cf. <aRxDYkeAi8T-HH8M@pks.im>
 source: <20251027-b4-pks-history-builtin-v6-0-407dd3f57ad3@pks.im>


* ms/doc-worktree-side-by-side (2025-10-10) 2 commits
 - doc: git-worktree: Add side by side branch checkout example
 - doc: git-worktree: Link to examples

 Document "git worktree add" and use of out-of-tree worktrees with
 examples.

 Expecting a reroll.
 cf. <CAPig+cSNesf0UwS4=Bxe-Qn+G9y3YYPyOK+7y3q8QJk+o7jaVg@mail.gmail.com>
 source: <a203b35538847f3c9358a5ae26fb4ebea5734cfc.1759420102.git.msuchanek@suse.de>


* sa/replay-atomic-ref-updates (2025-11-05) 3 commits
  (merged to 'next' on 2025-11-19 at ae19b06a22)
 + replay: add replay.refAction config option
 + replay: make atomic ref updates the default behavior
 + replay: use die_for_incompatible_opt2() for option validation
 (this branch is used by ps/history.)

 Originally merged to 'next' on 2025-11-18

 "git replay" (experimental) learned to perform ref updates itself
 in a transaction by default, instead of emitting where each refs
 should point at and leaving the actual update to another command.

 Will merge to 'master'.
 cf. <00a5a8f3-f761-46e8-84cc-4bd95db68b49@gmail.com>
 source: <20251105191650.89975-1-siddharthasthana31@gmail.com>


* ar/submodule-gitdir-tweak (2025-11-19) 7 commits
 - meson/Makefile: allow setting submodule encoding at build time
 - submodule: use hashed name for gitdir
 - submodule: fix case-folding gitdir filesystem colisions
 - submodule: add extension to encode gitdir paths
 - submodule: always validate gitdirs inside submodule_name_to_gitdir
 - builtin/credential-store: move is_rfc3986_unreserved to url.[ch]
 - submodule--helper: use submodule_name_to_gitdir in add_submodule

 Avoid local submodule repository directory paths overlapping with
 each other by encoding submodule names before using them as path
 components.
 source: <20251119211030.2008441-1-adrian.ratiu@collabora.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)
  2025-11-24  4:59 What's cooking in git.git (Nov 2025, #07; Sun, 23) Junio C Hamano
@ 2025-11-24 15:46 ` D. Ben Knoble
  2025-11-24 18:26   ` Junio C Hamano
  2025-11-25  6:55 ` Elijah Newren
  2025-11-25 11:40 ` Toon Claes
  2 siblings, 1 reply; 8+ messages in thread
From: D. Ben Knoble @ 2025-11-24 15:46 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Sun, Nov 23, 2025 at 11:59 PM Junio C Hamano <gitster@pobox.com> wrote:

> --------------------------------------------------
> [New Topics]
>
> * jc/optional-path (2025-11-20) 3 commits
>  - config: really treat missing optional path as not configured
>  - config: really pretend missing :(optional) value is not there
>  - config: mark otherwise unused function as file-scope static
>
>  "git config get --path" segfaulted on an ":(optional)path" that
>  does not exist, which has been corrected.
>
>  Will merge to 'next'?
>  source: <xmqqikf47ajk.fsf@gitster.g>

Any interest in also marking this for 2.52.1? It's unlikely to be used
much yet, but since the segfault affects several invocations (git
blame, etc.) it will be irritating to folks who try the recently
released version.

-- 
D. Ben Knoble

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)
  2025-11-24 15:46 ` D. Ben Knoble
@ 2025-11-24 18:26   ` Junio C Hamano
  2025-12-22 22:06     ` D. Ben Knoble
  0 siblings, 1 reply; 8+ messages in thread
From: Junio C Hamano @ 2025-11-24 18:26 UTC (permalink / raw)
  To: D. Ben Knoble; +Cc: git

"D. Ben Knoble" <ben.knoble@gmail.com> writes:

> On Sun, Nov 23, 2025 at 11:59 PM Junio C Hamano <gitster@pobox.com> wrote:
>
>> --------------------------------------------------
>> [New Topics]
>>
>> * jc/optional-path (2025-11-20) 3 commits
>>  - config: really treat missing optional path as not configured
>>  - config: really pretend missing :(optional) value is not there
>>  - config: mark otherwise unused function as file-scope static
>>
>>  "git config get --path" segfaulted on an ":(optional)path" that
>>  does not exist, which has been corrected.
>>
>>  Will merge to 'next'?
>>  source: <xmqqikf47ajk.fsf@gitster.g>
>
> Any interest in also marking this for 2.52.1? It's unlikely to be used
> much yet, but since the segfault affects several invocations (git
> blame, etc.) it will be irritating to folks who try the recently
> released version.

Yes, this is a clear regression-fix material.  The branch you are
commenting on is designed to be merge-able anywhere the original
topic that had the segfault can be (or has been) merged, by building
directly on top of ccfcaf39 (parseopt: values of pathname type can
be prefixed with :(optional), 2025-09-28), which was the tip of the
original topic.



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)
  2025-11-24  4:59 What's cooking in git.git (Nov 2025, #07; Sun, 23) Junio C Hamano
  2025-11-24 15:46 ` D. Ben Knoble
@ 2025-11-25  6:55 ` Elijah Newren
  2025-11-25 17:18   ` Junio C Hamano
  2025-11-25 11:40 ` Toon Claes
  2 siblings, 1 reply; 8+ messages in thread
From: Elijah Newren @ 2025-11-25  6:55 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

I tried to take a look at some of the series whose status you were
asking for feedback on (and just threw an extra comment on one that
you didn't ask about).  Comments below...

On Sun, Nov 23, 2025 at 8:59 PM Junio C Hamano <gitster@pobox.com> wrote:
>
> * jc/optional-path (2025-11-20) 3 commits
>  - config: really treat missing optional path as not configured
>  - config: really pretend missing :(optional) value is not there
>  - config: mark otherwise unused function as file-scope static
>
>  "git config get --path" segfaulted on an ":(optional)path" that
>  does not exist, which has been corrected.
>
>  Will merge to 'next'?
>  source: <xmqqikf47ajk.fsf@gitster.g>

This topic seems to be missing a squashed-in fix from
xmqqy0o05nuy.fsf@gitster.g; should that be squashed in and then merge
down to next?

> * kh/doc-committer-date-is-author-date (2025-11-20) 1 commit
>  - doc: warn against --committer-date-is-author-date
>
>  The "--committer-date-is-author-date" option of "git am/rebase" is
>  a misguided one.  The documentation is updated to discourage its
>  use.
>
>  Will merge to 'next'?
>  source: <V2_committer-date-is-author-date.1@msgid.xyz>

I think merging down makes sense.  It's a simple enough change, that
just gives helpful documentation warnings.  (As a side note, I found
it illuminating to read from that commit message about the reason that
flag was added; it never made any sense to me, but I didn't dig
further.  I'm glad Johannes and Kristoffer did.)

> * js/ci-show-breakage-in-dockerized-jobs (2025-11-17) 1 commit
>  - ci(dockerized): do show the result of failing tests again
>
>  Dockerised jobs at the GitHub Actions CI have been taught to show
>  more details of failed tests.
>
>  Will merge to 'next' after amending?
>  cf. <xmqqpl9gike6.fsf@gitster.g>
>  source: <pull.2003.git.1763399064983.gitgitgadget@gmail.com>

I had a slight tweak for the wording of the first paragraph, which I
just left as a comment on the patch.  Not sure that needs to hold it
up, but maybe worth considering to include in your amending if
Johannes is fine with it?

> * js/strip-scalar-too (2025-11-17) 1 commit
>  - make strip: include `scalar`
>
>  "make strip" has been taught to strip "scalar" as well as "git".
>
>  Will merge to 'next'?
>  cf. <xmqq7bvoiadg.fsf@gitster.g>
>  source: <pull.2004.git.1763409086322.gitgitgadget@gmail.com>

I'd kind of like to see a response to your suggested alternative.

> * dw/config-global-list (2025-10-09) 4 commits
>  - config: keep bailing on unreadable global files
>  - config: read global scope via config_sequence
>  - config: test home and xdg files in `list --global`
>  - cleanup_path: force forward slashes on Windows
>
>  "git config --list --global", unlike "git config --list", did not
>  consult both of the two possible per-user sources of the
>  configuration files, i.e. $HOME/.gitconfig and the XDG one, which
>  has been corrected.
>
>  Comments?
>  source: <pull.1938.git.1760058849.gitgitgadget@gmail.com>

Perhaps mark this topic as expecting a re-roll?  (c.f.
20251122020047.GB3947@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net)

> * jc/submodule-add (2025-11-15) 1 commit
>  - submodule add: sanity check existing .gitmodules
>
>  "git submodule add" to add a submodule under <name> segfaulted,
>  when a submodule.<name>.something is already in .gitmodules file
>  without defining where its submodule.<name>.path is, which has been
>  corrected.
>
>  Comments?
>  source: <xmqqv7jacvdq.fsf@gitster.g>

Left a couple minor wording suggestions.

> * en/ort-rename-another-fix (2025-11-03) 3 commits
>   (merged to 'next' on 2025-11-19 at 53d94af6b4)
>  + merge-ort: fix failing merges in special corner case
>  + merge-ort: remove debugging crud
>  + t6429: update comment to mention correct tool
>
>  Yet another corner case fix around renames in the "ort" merge
>  strategy.
>
>  Will merge to 'master'.
>  source: <pull.1992.git.1762192908.gitgitgadget@gmail.com>

A sidenote that probably doesn't matter since you've already marked it
for merging down: this topic has been deployed at GitHub for just over
a month without incident (whereas there were some problems prior to
deploying these fixes, and those problems cleared up the minute that
these changes were deployed).

> * cc/fast-import-strip-if-invalid (2025-11-16) 3 commits
>  - fast-import: add 'strip-if-invalid' mode to --signed-commits=<mode>
>  - commit: refactor verify_commit_buffer()
>  - fast-import: refactor finalize_commit_buffer()
>
>  "git fast-import" learns "--strip-if-invalid" option to drop
>  invalid cryptographic signature from objects.
>
>  Comments?
>  source: <20251117043450.322644-1-christian.couder@gmail.com>

I think this one is ready to merge down.

> * en/xdiff-cleanup-2 (2025-11-18) 10 commits
>  - xdiff: rename rindex -> reference_index
>  - xdiff: change rindex from long to size_t in xdfile_t
>  - xdiff: make xdfile_t.nreff a size_t instead of long
>  - xdiff: make xdfile_t.nrec a size_t instead of long
>  - xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash
>  - xdiff: use unambiguous types in xdl_hash_record()
>  - xdiff: use size_t for xrecord_t.size
>  - xdiff: make xrecord_t.ptr a uint8_t instead of char
>  - xdiff: use ptrdiff_t for dstart/dend
>  - doc: define unambiguous type mappings across C and Rust
>
>  Code clean-up.
>
>  Will merge to 'next'?
>  source: <pull.2070.v5.git.git.1763505262.gitgitgadget@gmail.com>

I think so.  There are certainly additional cleanups needed, as this
series makes clear, but that's clearly a bigger problem and the author
has stated he plans to work on those but just needed to limit the
series to some initial cleanup that wasn't too big to send to the
list.  The series has gotten reviews from lots of folks, and I just
looked over v5 and couldn't spot anything to call out.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)
  2025-11-24  4:59 What's cooking in git.git (Nov 2025, #07; Sun, 23) Junio C Hamano
  2025-11-24 15:46 ` D. Ben Knoble
  2025-11-25  6:55 ` Elijah Newren
@ 2025-11-25 11:40 ` Toon Claes
  2025-11-25 17:19   ` Junio C Hamano
  2 siblings, 1 reply; 8+ messages in thread
From: Toon Claes @ 2025-11-25 11:40 UTC (permalink / raw)
  To: Junio C Hamano, git

Junio C Hamano <gitster@pobox.com> writes:

> * ps/object-source-management (2025-11-18) 14 commits
>  - odb: handle recreation of quarantine directories
>  - odb: handle changing a repository's commondir
>  - chdir-notify: add function to unregister listeners
>  - odb: handle initialization of sources in `odb_new()`
>  - http-push: stop setting up `the_repository` for each reference
>  - t/helper: stop setting up `the_repository` repeatedly
>  - builtin/index-pack: fix deferred fsck outside repos
>  - oidset: introduce `oidset_equal()`
>  - odb: move logic to disable ref updates into repo
>  - odb: refactor `odb_clear()` to `odb_free()`
>  - odb: adopt logic to close object databases
>  - setup: convert `set_git_dir()` to have file scope
>  - path: move `enter_repo()` into "setup.c"
>  - Merge branch 'ps/object-source-loose' into ps/object-source-management
>  (this branch uses ps/object-source-loose.)
>
>  Code refactoring around object database sources.
>
>  Comments?
>  source: <20251119-b4-pks-odb-creation-v1-0-2b2ed2612cb6@pks.im>

I've read through the patches, and I've got no comments to add.

-- 
Cheers,
Toon

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)
  2025-11-25  6:55 ` Elijah Newren
@ 2025-11-25 17:18   ` Junio C Hamano
  0 siblings, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2025-11-25 17:18 UTC (permalink / raw)
  To: Elijah Newren; +Cc: git

Elijah Newren <newren@gmail.com> writes:

> I tried to take a look at some of the series whose status you were
> asking for feedback on (and just threw an extra comment on one that
> you didn't ask about).  Comments below...
>
> On Sun, Nov 23, 2025 at 8:59 PM Junio C Hamano <gitster@pobox.com> wrote:
>>
>> * jc/optional-path (2025-11-20) 3 commits
>> ...
>>  Will merge to 'next'?
>>  source: <xmqqikf47ajk.fsf@gitster.g>
>
> This topic seems to be missing a squashed-in fix from
> xmqqy0o05nuy.fsf@gitster.g; should that be squashed in and then merge
> down to next?

Thanks for carefully checking.  The second patch with yesterday's
committer timestamp has the squash, so it seems that our mails
crossed ;-)

>> * js/ci-show-breakage-in-dockerized-jobs (2025-11-17) 1 commit
>> ...
>>  Will merge to 'next' after amending?
>>  cf. <xmqqpl9gike6.fsf@gitster.g>
>>  source: <pull.2003.git.1763399064983.gitgitgadget@gmail.com>
>
> I had a slight tweak for the wording of the first paragraph, which I
> just left as a comment on the patch.  Not sure that needs to hold it
> up, but maybe worth considering to include in your amending if
> Johannes is fine with it?

FWIW, I found the updated explanation you gave easier to read than
the original.  I still do not think of a reason why we want a more
conservative o+w when making things world-writable, other than the
case where there is a user in the same group as the owner of the
file that we specifically want to forbid touching it, but then I do
not have any idea who that special user in the same group would be.

>> * js/strip-scalar-too (2025-11-17) 1 commit
>>  - make strip: include `scalar`
>>
>>  "make strip" has been taught to strip "scalar" as well as "git".
>>
>>  Will merge to 'next'?
>>  cf. <xmqq7bvoiadg.fsf@gitster.g>
>>  source: <pull.2004.git.1763409086322.gitgitgadget@gmail.com>
>
> I'd kind of like to see a response to your suggested alternative.

I am OK if we applied the patch posted as-is, and left such a
clean-up as #leftoverbits.

>> * dw/config-global-list (2025-10-09) 4 commits
>> ...
>>  Comments?
>>  source: <pull.1938.git.1760058849.gitgitgadget@gmail.com>
>
> Perhaps mark this topic as expecting a re-roll?  (c.f.
> 20251122020047.GB3947@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net)

Great.  That's an awfully long message-id, by the way ;-)

>> * jc/submodule-add (2025-11-15) 1 commit
>>  - submodule add: sanity check existing .gitmodules
>>
>>  "git submodule add" to add a submodule under <name> segfaulted,
>>  when a submodule.<name>.something is already in .gitmodules file
>>  without defining where its submodule.<name>.path is, which has been
>>  corrected.
>>
>>  Comments?
>>  source: <xmqqv7jacvdq.fsf@gitster.g>
>
> Left a couple minor wording suggestions.

Thanks; amended.

>> * en/ort-rename-another-fix (2025-11-03) 3 commits
>>   (merged to 'next' on 2025-11-19 at 53d94af6b4)
>>  + merge-ort: fix failing merges in special corner case
>>  + merge-ort: remove debugging crud
>>  + t6429: update comment to mention correct tool
>>
>>  Yet another corner case fix around renames in the "ort" merge
>>  strategy.
>>
>>  Will merge to 'master'.
>>  source: <pull.1992.git.1762192908.gitgitgadget@gmail.com>
>
> A sidenote that probably doesn't matter since you've already marked it
> for merging down: this topic has been deployed at GitHub for just over
> a month without incident (whereas there were some problems prior to
> deploying these fixes, and those problems cleared up the minute that
> these changes were deployed).

Great to hear.

>> * cc/fast-import-strip-if-invalid (2025-11-16) 3 commits
>>  - fast-import: add 'strip-if-invalid' mode to --signed-commits=<mode>
>>  - commit: refactor verify_commit_buffer()
>>  - fast-import: refactor finalize_commit_buffer()
>>
>>  "git fast-import" learns "--strip-if-invalid" option to drop
>>  invalid cryptographic signature from objects.
>>
>>  Comments?
>>  source: <20251117043450.322644-1-christian.couder@gmail.com>
>
> I think this one is ready to merge down.
>
>> * en/xdiff-cleanup-2 (2025-11-18) 10 commits
>>  - xdiff: rename rindex -> reference_index
>>  - xdiff: change rindex from long to size_t in xdfile_t
>>  - xdiff: make xdfile_t.nreff a size_t instead of long
>>  - xdiff: make xdfile_t.nrec a size_t instead of long
>>  - xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash
>>  - xdiff: use unambiguous types in xdl_hash_record()
>>  - xdiff: use size_t for xrecord_t.size
>>  - xdiff: make xrecord_t.ptr a uint8_t instead of char
>>  - xdiff: use ptrdiff_t for dstart/dend
>>  - doc: define unambiguous type mappings across C and Rust
>>
>>  Code clean-up.
>>
>>  Will merge to 'next'?
>>  source: <pull.2070.v5.git.git.1763505262.gitgitgadget@gmail.com>
>
> I think so.  There are certainly additional cleanups needed, as this
> series makes clear, but that's clearly a bigger problem and the author
> has stated he plans to work on those but just needed to limit the
> series to some initial cleanup that wasn't too big to send to the
> list.  The series has gotten reviews from lots of folks, and I just
> looked over v5 and couldn't spot anything to call out.

Great, and thanks.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)
  2025-11-25 11:40 ` Toon Claes
@ 2025-11-25 17:19   ` Junio C Hamano
  0 siblings, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2025-11-25 17:19 UTC (permalink / raw)
  To: Toon Claes; +Cc: git

Toon Claes <toon@iotcl.com> writes:

> Junio C Hamano <gitster@pobox.com> writes:
>
>> * ps/object-source-management (2025-11-18) 14 commits
>>  - odb: handle recreation of quarantine directories
>>  - odb: handle changing a repository's commondir
>>  - chdir-notify: add function to unregister listeners
>>  - odb: handle initialization of sources in `odb_new()`
>>  - http-push: stop setting up `the_repository` for each reference
>>  - t/helper: stop setting up `the_repository` repeatedly
>>  - builtin/index-pack: fix deferred fsck outside repos
>>  - oidset: introduce `oidset_equal()`
>>  - odb: move logic to disable ref updates into repo
>>  - odb: refactor `odb_clear()` to `odb_free()`
>>  - odb: adopt logic to close object databases
>>  - setup: convert `set_git_dir()` to have file scope
>>  - path: move `enter_repo()` into "setup.c"
>>  - Merge branch 'ps/object-source-loose' into ps/object-source-management
>>  (this branch uses ps/object-source-loose.)
>>
>>  Code refactoring around object database sources.
>>
>>  Comments?
>>  source: <20251119-b4-pks-odb-creation-v1-0-2b2ed2612cb6@pks.im>
>
> I've read through the patches, and I've got no comments to add.

Thanks.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: What's cooking in git.git (Nov 2025, #07; Sun, 23)
  2025-11-24 18:26   ` Junio C Hamano
@ 2025-12-22 22:06     ` D. Ben Knoble
  0 siblings, 0 replies; 8+ messages in thread
From: D. Ben Knoble @ 2025-12-22 22:06 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Mon, Nov 24, 2025 at 1:26 PM Junio C Hamano <gitster@pobox.com> wrote:
>
> "D. Ben Knoble" <ben.knoble@gmail.com> writes:
>
> > On Sun, Nov 23, 2025 at 11:59 PM Junio C Hamano <gitster@pobox.com> wrote:
> >
> >> --------------------------------------------------
> >> [New Topics]
> >>
> >> * jc/optional-path (2025-11-20) 3 commits
> >>  - config: really treat missing optional path as not configured
> >>  - config: really pretend missing :(optional) value is not there
> >>  - config: mark otherwise unused function as file-scope static
> >>
> >>  "git config get --path" segfaulted on an ":(optional)path" that
> >>  does not exist, which has been corrected.
> >>
> >>  Will merge to 'next'?
> >>  source: <xmqqikf47ajk.fsf@gitster.g>
> >
> > Any interest in also marking this for 2.52.1? It's unlikely to be used
> > much yet, but since the segfault affects several invocations (git
> > blame, etc.) it will be irritating to folks who try the recently
> > released version.
>
> Yes, this is a clear regression-fix material.  The branch you are
> commenting on is designed to be merge-able anywhere the original
> topic that had the segfault can be (or has been) merged, by building
> directly on top of ccfcaf39 (parseopt: values of pathname type can
> be prefixed with :(optional), 2025-09-28), which was the tip of the
> original topic.

I noticed a .1 was never released. I'm not sure what the
protocol/process/etiquette is, but figured I'd bump this in your inbox
;)

I saw your other recent mail about family things, so no rush of course.

-- 
D. Ben Knoble

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-12-22 22:06 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-24  4:59 What's cooking in git.git (Nov 2025, #07; Sun, 23) Junio C Hamano
2025-11-24 15:46 ` D. Ben Knoble
2025-11-24 18:26   ` Junio C Hamano
2025-12-22 22:06     ` D. Ben Knoble
2025-11-25  6:55 ` Elijah Newren
2025-11-25 17:18   ` Junio C Hamano
2025-11-25 11:40 ` Toon Claes
2025-11-25 17:19   ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).