Skip to contentSkip to conversation

What's cooking in git.git (Jul 2025, #04; Mon, 14)

DISCUSSION Junio C Hamano 3 participants 5 messages Jul 14, 2025 – Jul 15, 2025

lore
Share & tools
lore
#0 lore raw

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

* ac/prune-wo-the-repository (2025-07-04) 2 commits
(merged to 'next' on 2025-07-07 at 3dd296a911)
+ builtin/prune: stop depending on 'the_repository'
+ repository: move 'repository_format_precious_objects' to repo scope

Some code paths in the "git prune" used to ignore passed in repository object and used the_repository singleton instance instead, which has been corrected.

source: <[email protected]>

* bs/config-mak-freebsd (2025-07-02) 2 commits (merged to 'next' on 2025-07-07 at d6761aa225)
+ build: retire NO_UINTMAX_T
+ config.mak.uname: set NO_MEMMEM only for functional version

Drop FreeBSD 4 support and assume we are at least at FreeBSD 6 with memmem() supported.

source: <[email protected]>

* bs/remote-helpers-doc-markup-fix (2025-07-02) 1 commit (merged to 'next' on 2025-07-07 at 60c2a47d1b)
+ gitremote-helpers.adoc: fix formatting

Docfix.

source: <[email protected]>

* cb/total-ram-bsd-fix (2025-07-07) 1 commit
(merged to 'next' on 2025-07-07 at d9a7ca747c)
+ builtin/gc: correct total_ram calculation with HAVE_BSD_SYSCTL

Use of sysctl() system call to learn the total RAM size used on BSDs has been corrected.

source: <[email protected]>

* hy/read-cache-lock-error-fix (2025-07-03) 1 commit (merged to 'next' on 2025-07-07 at a97a188a9e)
+ read-cache: report lock error when refreshing index

A failure to open the index file for writing due to conflicting access did not state what went wrong, which has been corrected.

source: <[email protected]>

* jc/coccicheck-fails-make-when-it-fails (2025-06-23) 1 commit (merged to 'next' on 2025-07-07 at 0b7affe7cd)
+ coccicheck: fail "make" when it fails

"make coccicheck" succeeds even when spatch made suggestions, which has been updated to fail in such a case.

source: <[email protected]>

* jk/all-negative-diff-filter-fix (2025-07-03) 1 commit (merged to 'next' on 2025-07-07 at 139dd3db75)
+ setup_revisions(): turn on diffs for all-negative diff filter

A diff-filter with negative-only specification like "git log --diff-filter=d" did not trigger correctly, which has been fixed.

source: <[email protected]>

* kh/doc-config-subcommands (2025-07-01) 5 commits (merged to 'next' on 2025-07-07 at b0db48b397)
+ config: mention --url in the synopsis
+ config: use --value instead of value-pattern
+ config: document --[no-]value
+ config: use --value=<pattern> consistently
+ config: document --[no-]show-names

Documentation updates.

source: <[email protected]>

* kn/clang-format-updates (2025-07-02) 3 commits (merged to 'next' on 2025-07-07 at 0b0770e97a)
+ meson: add rule to run 'git clang-format'
+ clang-format: add 'RemoveBracesLLVM' to the main config
+ clang-format: set 'ColumnLimit' to 0

Update ".clang-format" and ".editorconfig" to match our style guide a bit better.

source: <20250702-525-make-clang-format-more-robust-v3-0-705344f30580@gmail.com>

* mc/netrc-service-names (2025-06-25) 3 commits
(merged to 'next' on 2025-07-07 at e98100afdd)
+ contrib: better support symbolic port names in git-credential-netrc
+ contrib: warn for invalid netrc file ports in git-credential-netrc
+ contrib: use a more portable shebang for git-credential-netrc

"netrc" credential helper has been improved to understand textual service names (like smtp) in addition to the numeric port numbers (like 25).

source: <[email protected]>

* ps/perlless-test-fixes (2025-07-07) 2 commits (merged to 'next' on 2025-07-07 at 2c56966ff8)
+ t5333: fix missing terminator for sed(1) 's' command
+ t4150: fix warning printed by awk due to escaped '\@'

Test fixes.

source: <[email protected]>

* ps/use-reftable-as-default-in-3.0 (2025-07-04) 2 commits (merged to 'next' on 2025-07-07 at 3f3402f221)
+ setup: use "reftable" format when experimental features are enabled
+ BreakingChanges: announce switch to "reftable" format

The reftable ref backend has matured enough; Git 3.0 will make it the default format in a newly created repositories by default.

source: <[email protected]>

* re/ssh-sign-buffer-fix (2025-07-07) 1 commit
(merged to 'next' on 2025-07-07 at 36dad3e4dc)
+ ssh signing: don't detach the filename strbuf from key_file tempfile

Tempfile removal fix in the codepath to sign commits with SSH keys.

source: <[email protected]>

* rj/freebsd-sysinfo-build-fix (2025-07-04) 1 commit (merged to 'next' on 2025-07-07 at bc4cbfd76d)
+ build: fix FreeBSD build when sysinfo compat library installed

Build fix for FreeBSD.

source: <[email protected]>

* rp/apply-intent-to-add-fix (2025-07-07) 4 commits (merged to 'next' on 2025-07-07 at 957e3fd081)
+ apply docs: clarify wording for --intent-to-add
+ t4140: test apply --intent-to-add interactions
+ apply: only write intents to add for new files
+ apply: read in the index in --intent-to-add mode

"git apply -N" should start from the current index and register only new files, but it instead started from an empty index, which has been corrected.

source: <[email protected]>

* sj/string-list (2025-06-28) 8 commits
(merged to 'next' on 2025-07-07 at 5a95dc8007)
+ u-string-list: move "remove duplicates" test to "u-string-list.c"
+ u-string-list: move "filter string" test to "u-string-list.c"
+ u-string-list: move "test_split_in_place" to "u-string-list.c"
+ u-string-list: move "test_split" into "u-string-list.c"
+ string-list: enable sign compare warnings check
+ string-list: return index directly when inserting an existing element
+ string-list: remove unused "insert_at" parameter from add_entry
+ string-list: fix sign compare warnings for loop iterator

Code and test clean-up around string-list API.

source: <aGDAZ6a0-PyXXGmK@ArchLinux>

* ts/merge-orig-head-doc-fix (2025-07-05) 1 commit (merged to 'next' on 2025-07-07 at 08f4a573e5)
+ docs: correct ORIG_HEAD example in "git merge" documentation

Doc fix.

source: <[email protected]>

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

* ps/sane-ctype-workaround (2025-07-09) 1 commit
- sane-ctype: fix compiler error on Amazon Linux 2

Our <sane-ctype.h> header file relied on that the system-supplied <ctype.h> header is not later included, which would override our macro definitions, but "amazon linux" broke this assumption. Fix this by preemptively including <ctype.h> near the beginning of <sane-ctype.h> ourselves.

Will merge to 'next'.
source: <fabacc9bc7ef7d462d1c7198d5edc18c76b82270.1752139420.git.ps@pks.im>

* rh/doc-glob-pathspec-fix (2025-07-07) 1 commit
(merged to 'next' on 2025-07-14 at 1561f0726d)
+ doc: correct doc for glob pathspec

Docfix.

Will merge to 'master'.
source: <[email protected]>

* cb/meson-avoid-broken-macos-pcre2 (2025-07-13) 1 commit
- meson: disable PCRE2 dependency by default in macOS

Build fix for macOS.

Will merge to 'next'.
source: <[email protected]>

* jb/gpg-program-variable-is-a-pathname (2025-07-11) 1 commit
- gpg-interface: expand gpg.program as a path

The gpg.program configuration variable, which names a pathname to the (custom) GPG compatible program, can now be spelled with ~tilde expansion.

Will merge to 'next'.
source: <[email protected]>

* pw/adopt-c99-bool-officially (2025-07-14) 3 commits
- strbuf: convert predicates to return bool
- git-compat-util: convert string predicates to return bool
- CodingGuildlines: allow the use of bool

Declare weather-balloon we raised for "bool" type 18 months ago a success and officially allow using the type in our codebase.

Comments?
source: <[email protected]>

* pw/compound-literal-test-balloon (2025-07-14) 1 commit
- strbuf: add compound literal test balloon

Gauge if the world is ready for compound literal that can make the resulting code clearer in some places.

Comments?
source: <7ac55a5096c261b706f47ca239c381f71db2b67a.1752499653.git.phillip.wood@dunelm.org.uk>

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

* ps/doc-pack-refs-auto-with-files-backend-fix (2025-07-08) 1 commit (merged to 'next' on 2025-07-09 at 200b4b24a8)
+ docs/git-pack-refs: document heuristic used for packing loose refs

Doc update.

Will merge to 'master'.
source: <20250708-b4-pks-pack-refs-document-files-heuristic-v1-1-e28d65a94573@pks.im>

* ps/refs-files-remove-empty-parent (2025-07-08) 1 commit (merged to 'next' on 2025-07-09 at f726af7117)
+ refs/files: remove empty parent dirs when ref creation fails

When a ref creation at refs/heads/foo/bar fails, the files backend now removes refs/heads/foo/ if the directory is otherwise not used.

Will merge to 'master'.
source: <20250708-b4-pks-reffiles-prune-empty-dirs-on-abort-v1-1-3bae02e4f034@pks.im>

* ps/t1006-tap-fix (2025-07-08) 1 commit
(merged to 'next' on 2025-07-09 at bbed1acc2a)
+ t1006: fix broken TAP format

Test fix.

Will merge to 'master'.
source: <[email protected]>

* pw/3.0-commentchar-auto-deprecation (2025-07-08) 2 commits
- commit: print advice when core.commentString=auto
- breaking-changes: deprecate support for core.commentString=auto

Proposes to deprecate "core.commentChar=auto" that attempts to dynamically pick a suitable comment character, as it is too much trouble to support for little benefit.

Expecting a reroll.
cf. <[email protected]>
source: <[email protected]>

* ps/object-store-midx (2025-07-09) 9 commits
- midx: remove now-unused linked list of multi-pack indices
- packfile: stop using linked MIDX list in get_all_packs()
- packfile: stop using linked MIDX list in find_pack_entry()
- packfile: refactor get_multi_pack_index() to work on sources
- midx: track whether we have loaded the MIDX
- midx: stop using linked list when closing MIDX
- packfile: refactor prepare_packed_git_one() to work on sources
- midx: start tracking per object database source
- Merge branch 'ps/object-store' into ps/object-store-midx (this branch uses ps/object-store.)

Redefine where the multi-pack-index sits in the object subsystem, which recently was restructured to allow multiple backends that support a single object source that belongs to one repository. A midx does span mulitple "object sources".

Expecting responses.
source: <[email protected]>

* ps/object-file-wo-the-repository (2025-07-09) 20 commits
- object-file: drop USE_THE_REPOSITORY_VARIABLE
- environment: move object creation mode into repo settings
- environment: move compression level into repo settings
- object-file: get rid of the_repository in index-related functions
- object-file: get rid of the_repository in force_object_loose()
- object-file: get rid of the_repository in read_loose_object()
- object-file: get rid of the_repository in loose object iterators
- object-file: remove declaration for for_each_file_in_obj_subdir()
- object-file: inline for_each_loose_file_in_objdir_buf()
- object-file: get rid of the_repository when writing objects
- odb: introduce odb_write_object()
- loose: write loose objects map via their source
- object-file: get rid of the_repository in finalize_object_file()
- object-file: get rid of the_repository in loose_object_info()
- object-file: get rid of the_repository when freshening objects
- object-file: inline check_and_freshen() functions
- object-file: get rid of the_repository in has_loose_object()
- object-file: stop using the_hash_algo
- object-file: fix -Wsign-compare warnings
- Merge branch 'ps/object-store' into ps/object-file-wo-the-repository (this branch uses ps/object-store.)

Reduce implicit assumption and dependence on the_repository in the object-file subsystem.

Needs a bit of redoing around the configuration reading.
cf. <[email protected]>
source: <20250709-pks-object-file-wo-the-repository-v1-0-62627b55707f@pks.im>

* jk/remote-avoid-overlapping-names (2025-07-08) 1 commit (merged to 'next' on 2025-07-11 at 097c87760a)
+ remote: detect collisions in remote names

"git remote" now detects remote names that overlap with each other (e.g., remote nickname "outer" and "outer/inner" are used at the same time), as it will lead to overlapping remote-tracking branches.

Will merge to 'master'.
source: <[email protected]>

* ps/meson-cleanups (2025-07-08) 7 commits
(merged to 'next' on 2025-07-14 at 5fb402f51a)
+ ci: use Meson's new --slice option
+ meson: update subproject wrappers
+ meson: fix lookup of shell on MINGW64
+ meson: clean up unnecessary variables
+ meson: improve summary of auto-detected features
+ meson: stop printing 'https' option twice in our summaries
+ meson: stop discovering native version of Python

Meson-based build update.

Will merge to 'master'.
cf. <[email protected]>
source: <[email protected]>

* ua/t1517-short-help-tests (2025-07-06) 7 commits
- t/t1517: move verify-tag -h test to t1517
- t/t1517: move verify-commit -h test to t1517
- t/t1517: move send-pack -h test to t1517
- t/t1517: move pack-refs -h test to t1517
- t/t1517: move ls-files -h test to t1517
- t/t1517: move for-each-ref -h test to t1517
- t/t1517: move checkout-index -h test to t1517

Test shuffling.

Expecting a reroll.
cf. <CAPSxiM_ZZrbFpgvxqYgZ8oeTbRs+HW=rM+9Dud0G_Qr7eq3=FA@mail.gmail.com>
source: <[email protected]>

* ag/doc-send-email (2025-06-30) 5 commits
(merged to 'next' on 2025-07-09 at cf940e82a1)
+ docs: mention possible options for Proton Mail users
+ docs: add a paragraph explaining the sendmailCmd option of sendemail
+ docs: add an OAuth2.0 credential helper for AOL accounts
+ docs: add outlookidfix config option to sendemail documentation
+ docs: link OpenSSL's verify(1) manual page to know about -CAfile and -CApath options

Documentation updates for "git send-email".

Will merge to 'master'.
source: <[email protected]>

* rs/parse-options-precision (2025-07-09) 7 commits (merged to 'next' on 2025-07-09 at aefffa21b7)
+ parse-options: add precision handling for OPTION_COUNTUP
+ parse-options: add precision handling for OPTION_BITOP
+ parse-options: add precision handling for OPTION_NEGBIT
+ parse-options: add precision handling for OPTION_BIT
+ parse-options: add precision handling for OPTION_SET_INT
+ parse-options: add precision handling for PARSE_OPT_CMDMODE
+ parse-options: require PARSE_OPT_NOARG for OPTION_BITOP

Define .precision to more canned parse-options type to avoid bugs coming from using a variable with a wrong type to capture the parsed values.

Will merge to 'master'.
source: <[email protected]>

* kn/for-each-ref-skip (2025-07-11) 4 commits
- for-each-ref: introduce a '--start-after' option
- refs: selectively set prefix in the seek functions
- ref-cache: remove unused function 'find_ref_entry()'
- refs: expose ref_iterator via 'refs.h'

"git for-each-ref" learns "--skip-until" option to help applications that want to page its output.

Will merge to 'next'.
cf. <CAP8UFD06KKF0A0WjBSw77A7fKp_pGJGVyw-OPd8-X92h=RSF+w@mail.gmail.com>
source: <20250711-306-git-for-each-ref-pagination-v4-0-ed3303ad5b89@gmail.com>

* tc/last-modified (2025-07-09) 3 commits
- last-modified: use Bloom filters when available
- t/perf: add last-modified perf script
- last-modified: new subcommand to show when files were last modified

A new command "git last-modified" is proposed to show the closest ancestor commit that touched each path.

Comments?
source: <[email protected]>

* cb/daemon-reap-children (2025-07-10) 2 commits
- daemon: use sigaction() to install child_handler()
- compat/mingw: allow sigaction(SIGCHLD)

Futz with SIGCHLD handling in "git daemon".

Will merge to 'next'?
source: <[email protected]>

* ac/auto-comment-char-fix (2025-06-30) 1 commit
- commit: avoid scanning trailing comments when 'core.commentChar' is "auto"

"git commit" that concludes a conflicted merge failed to notice and remove existing comment added automatically (like "# Conflicts:") when the core.commentstring is set to 'auto'.

Expecting a reroll.
cf. <[email protected]>
source: <[email protected]>

* ly/changed-paths-traversal (2025-07-12) 5 commits
- bloom: optimize multiple pathspec items in revision
- revision: make helper for pathspec to bloom keyvec
- bloom: replace struct bloom_key * with struct bloom_keyvec
- bloom: rename function operates on bloom_key
- bloom: add test helper to return murmur3 hash

Lift the limitation to use changed-path filter in "git log" so that it can be used for a pathspec with multiple literal paths.

Will merge to 'next'?
source: <[email protected]>

* ph/fetch-prune-optim (2025-07-01) 3 commits (merged to 'next' on 2025-07-09 at f0a1daff6a)
+ clean up interface for refs_warn_dangling_symrefs
+ refs: remove old refs_warn_dangling_symref
+ fetch-prune: optimize dangling-ref reporting

"git fetch --prune" used to be O(n^2) expensive when there are many refs, which has been corrected.

Will merge to 'master'.
cf. <[email protected]>
source: <[email protected]>

* bc/use-sha256-by-default-in-3.0 (2025-07-01) 11 commits (merged to 'next' on 2025-07-11 at 893c183a5f)
+ Enable SHA-256 by default in breaking changes mode
+ help: add a build option for default hash
+ t5300: choose the built-in hash outside of a repo
+ t4042: choose the built-in hash outside of a repo
+ t1007: choose the built-in hash outside of a repo
+ t: default to compile-time default hash if not set
+ setup: use the default algorithm to initialize repo format
+ Use legacy hash for legacy formats
+ builtin: use default hash when outside a repository
+ hash: add a constant for the legacy hash algorithm
+ hash: add a constant for the default hash algorithm

Prepare to flip the default hash function to SHA-256.

Will merge to 'master'.
source: <[email protected]>

* lo/repo-info (2025-06-19) 7 commits
. repo-info: add field layout.shallow
. repo-info: add field layout.bare
. repo-info: add the field references.format
. repo-info: add the --allow-empty flag
. repo-info: add plaintext as an output format
. repo-info: add the --format flag
. repo-info: declare the repo-info command

A new subcommand "git repo-info" gives users a way to grab various repository characteristics.

Expecting a reroll.
cf. <[email protected]>
source: <[email protected]>

* cc/fast-import-export-signature-names (2025-07-09) 1 commit
- fast-(import|export): improve on commit signature output format

Clean up the way how signature on commit objects are exported to and imported from fast-import stream.

Will merge to 'next'?
source: <[email protected]>

* ac/deglobal-sparse-variables (2025-06-30) 3 commits
- environment: remove the global variable 'sparse_expect_files_outside_of_patterns'
- environment: move access to "core.sparsecheckoutcone" into repo_settings
- environment: move access to "core.sparsecheckout" into repo_settings

Two global variables related to sparse checkout have been moved to the repository settings structure.

Needs a bit of redoing around the configuration reading. cf. <[email protected]> cf. <[email protected]>
source: <[email protected]>

* ow/rebase-verify-insn-fmt-before-initializing-state (2025-06-09) 1 commit
- rebase: write script before initializing state

"git rebase -i" with bogus rebase.instructionFormat configuration failed to produce the todo file after recording the state files, leading to confused "git status"; this has been corrected.

Expecting a reroll.
cf. <[email protected]>
source: <[email protected]>

* jc/tag-idempotent-no-op (2025-07-11) 1 commit
- tag: allow idempotent "git tag" without "--force"

"git tag T O" when the tag T is already pointing at the object O is a no-op; we used to but no longer error out such a request and require "--force" and instead turn it into a no-op.

Will discard.
cf. <dt5ruadvr7lmhsbypmb6yili5cookfx5btw4gzfeui7ehxxajv@ziael4udbbcy>
source: <[email protected]>

* ss/compat-bswap-revamp (2025-06-11) 6 commits
- bswap.h: provide a built-in based version of bswap32/64 if possible
- bswap.h: remove optimized x86 version of bswap32/64
- bswap.h: always overwrite ntohl/ntohll macros
- bswap.h: define GIT_LITTLE_ENDIAN on MSVC as little endian
- bswap.h: add support for __BYTE_ORDER__
- Merge branch 'ss/revert-builtin-bswap-stuff' into ss/compat-bswap-revamp

Clean-up compat/bswap.h mess.

Stalled.
cf. <[email protected]>
source: <[email protected]>

* ja/doc-git-log-markup (2025-07-07) 9 commits
- doc: git-log: convert log config to new doc format
- doc: git-log: convert diff options to new doc format
- doc: git-log: convert pretty formats to new doc format
- doc: git-log: convert pretty options to new doc format
- doc: git-log: convert rev list options to new doc format
- doc: git-log: convert line range format to new doc format
- doc: git-log: convert line range options to new doc format
- doc: git-log convert rev-list-description to new doc format
- doc: convert git-log to new documentation format

Doc mark-up updates.

Will merge to 'next'.
source: <[email protected]>

* sk/reftable-clarify-tests (2025-06-05) 10 commits
- t/unit-tests: finalize migration of reftable-related tests
- t/unit-tests: convert reftable stack test to use clar
- t/unit-tests: convert reftable record test to use clar
- t/unit-tests: convert reftable readwrite test to use clar
- t/unit-tests: convert reftable table test to use clar
- t/unit-tests: convert reftable pq test to use clar
- t/unit-tests: convert reftable merged test to use clar
- t/unit-tests: convert reftable block test to use clar
- t/unit-tests: convert reftable basics test to use clar test framework
- t/unit-tests: implement clar specific reftable test helper functions

The reftable unit tests are now ported to the "clar" unit testing framework.

Expecting a reroll.
cf. <[email protected]>
source: <[email protected]>

* ly/load-bitmap-leakfix (2025-06-30) 3 commits (merged to 'next' on 2025-07-08 at 6e6d182a8c)
+ pack-bitmap: add load corrupt bitmap test
+ pack-bitmap: reword comments in test_bitmap_commits()
+ pack-bitmap: fix memory leak if load_bitmap() failed

Leakfix with a new and a bit invasive test.

Will merge to 'master'.
cf. <aG2XZYamUv5FWq/[email protected]>
source: <[email protected]>

* tb/prepare-midx-pack-cleanup (2025-05-28) 5 commits
- midx: return a packed_git pointer from prepare_midx_pack()
- midx-write.c: extract inner loop from fill_packs_from_midx()
- midx-write.c: guard against incremental MIDXs in want_included_pack()
- midx: access pack names through nth_midxed_pack_name()
- Merge branch 'ps/midx-negative-packfile-cache' into tb/prepare-midx-pack-cleanup

Improvement on Multi-pack-index API.

Expecting a reroll.
cf. <[email protected]>
source: <[email protected]>

* kj/renamed-submodule (2025-06-07) 2 commits
- submodule: skip redundant active entries when pattern covers path
- submodule: prevent overwriting .gitmodules entry on path reuse

The case where a new submodule takes a path where used to be a completely different subproject is now dealt a bit better than before.

What's the status of this one?
cf. <[email protected]>
source: <[email protected]>

* lm/add-p-context (2025-06-28) 4 commits
- add-patch: add diff.context command line overrides
- add-patch: respect diff.context configuration
- test: use "test_config"
- test: use "test_grep"

"git add/etc -p" now honors diff.context configuration variable, and learns to honor -U<n> option.

Expecting responses.
cf. <[email protected]>
source: <[email protected]>

* ps/object-store (2025-07-01) 17 commits
(merged to 'next' on 2025-07-07 at e19db55858)
+ odb: rename read_object_with_reference()
+ odb: rename pretend_object_file()
+ odb: rename has_object()
+ odb: rename repo_read_object_file()
+ odb: rename oid_object_info()
+ odb: trivial refactorings to get rid of the_repository
+ odb: get rid of the_repository when handling submodule sources
+ odb: get rid of the_repository when handling the primary source
+ odb: get rid of the_repository in for_each() functions
+ odb: get rid of the_repository when handling alternates
+ odb: get rid of the_repository in odb_mkstemp()
+ odb: get rid of the_repository in assert_oid_type()
+ odb: get rid of the_repository in find_odb()
+ odb: introduce parent pointers
+ object-store: rename files to "odb.{c,h}"
+ object-store: rename object_directory to odb_source
+ object-store: rename raw_object_store to object_database
(this branch is used by ps/object-file-wo-the-repository and ps/object-store-midx.)

Code clean-up around object access API.

Will merge to 'master'.
source: <20250701-pks-object-store-wo-the-repository-v6-0-dbf3894ab4e2@pks.im>

* cc/promisor-remote-capability (2025-06-25) 5 commits
- promisor-remote: use string constants for 'name' and 'url' too
- promisor-remote: allow a client to check fields
- promisor-remote: refactor how we parse advertised fields
- promisor-remote: allow a server to advertise more fields
- promisor-remote: refactor to get rid of 'struct strvec'

The "promisor-remote" capability mechanism has been updated to allow the "partialCloneFilter" settings and the "token" value to be communicated from the server side.

What's the status of this one?
cf. <[email protected]>
source: <[email protected]>

* tb/midx-avoid-cruft-packs (2025-06-23) 9 commits (merged to 'next' on 2025-07-11 at 3fc02a8a1a)
+ repack: exclude cruft pack(s) from the MIDX where possible
+ pack-objects: introduce '--stdin-packs=follow'
+ pack-objects: swap 'show_{object,commit}_pack_hint'
+ pack-objects: fix typo in 'show_object_pack_hint()'
+ pack-objects: perform name-hash traversal for unpacked objects
+ pack-objects: declare 'rev_info' for '--stdin-packs' earlier
+ pack-objects: factor out handling '--stdin-packs'
+ pack-objects: limit scope in 'add_object_entry_from_pack()'
+ pack-objects: use standard option incompatibility functions

"pack-objects" has been taught to avoid pointing into objects in cruft packs from midx.

Will merge to 'master'.
source: <[email protected]>

#1 lore raw
Quoted 6 lines · Junio C Hamano

* kn/for-each-ref-skip (2025-07-11) 4 commits
- for-each-ref: introduce a '--start-after' option
- refs: selectively set prefix in the seek functions
- ref-cache: remove unused function 'find_ref_entry()'
- refs: expose ref_iterator via 'refs.h'

Quoted 7 lines

"git for-each-ref" learns "--skip-until" option to help applications that want to page its output.

Will merge to 'next'.
cf. <CAP8UFD06KKF0A0WjBSw77A7fKp_pGJGVyw-OPd8-X92h=RSF+w@mail.gmail.com>
source: <20250711-306-git-for-each-ref-pagination-v4-0-ed3303ad5b89@gmail.com>

Christian left some comments, so I've pushed a new version here.

[snip]

#2 lore raw
Quoted 11 lines · Karthik Nayak
Quoted 9 lines · Junio C Hamano

* kn/for-each-ref-skip (2025-07-11) 4 commits
- for-each-ref: introduce a '--start-after' option
- refs: selectively set prefix in the seek functions
- ref-cache: remove unused function 'find_ref_entry()'
- refs: expose ref_iterator via 'refs.h'

"git for-each-ref" learns "--skip-until" option to help applications that want to page its output.

Quoted 6 lines
Quoted 4 lines

Will merge to 'next'.
cf. <CAP8UFD06KKF0A0WjBSw77A7fKp_pGJGVyw-OPd8-X92h=RSF+w@mail.gmail.com>
source: <20250711-306-git-for-each-ref-pagination-v4-0-ed3303ad5b89@gmail.com>

Christian left some comments, so I've pushed a new version here.

Thanks, will take a look.

#3 lore raw
In reply to Junio C Hamano
Quoted 10 lines · Junio C Hamano

* bs/config-mak-freebsd (2025-07-02) 2 commits (merged to 'next' on 2025-07-07 at d6761aa225)
+ build: retire NO_UINTMAX_T
+ config.mak.uname: set NO_MEMMEM only for functional version

Drop FreeBSD 4 support and assume we are at least at FreeBSD 6 with memmem() supported.

source: <[email protected]>

Apologies for not mentioning earlier, but the minimum version of FreeBSD supported with memmem() by this patch is 12, not 6.

Quoted 7 lines

* cb/meson-avoid-broken-macos-pcre2 (2025-07-13) 1 commit
- meson: disable PCRE2 dependency by default in macOS

Build fix for macOS.

Will merge to 'next'.
source: <[email protected]>

Better hold, as there is a better option posted with a v4 in [email protected] but more importantly the discussion is still open and might require further changes.

Carlo

#4 lore raw
Quoted 7 lines · Carlo Marcelo Arenas Belón
Quoted 6 lines · Junio C Hamano

* bs/config-mak-freebsd (2025-07-02) 2 commits (merged to 'next' on 2025-07-07 at d6761aa225)
+ build: retire NO_UINTMAX_T
+ config.mak.uname: set NO_MEMMEM only for functional version

Quoted 7 lines
Quoted 4 lines

Drop FreeBSD 4 support and assume we are at least at FreeBSD 6 with memmem() supported.

source: <[email protected]>

Apologies for not mentioning earlier, but the minimum version of FreeBSD supported with memmem() by this patch is 12, not 6.

Thanks, I realized the same and updated the draft release notes with that ;-)

Quoted 11 lines
Quoted 7 lines

* cb/meson-avoid-broken-macos-pcre2 (2025-07-13) 1 commit
- meson: disable PCRE2 dependency by default in macOS

Build fix for macOS.

Will merge to 'next'.
source: <[email protected]>

Better hold, as there is a better option posted with a v4 in [email protected] but more importantly the discussion is still open and might require further changes.

Again, thanks. I saw the exchange and your latest round with Eli's input is what I'll be queuing for today's integration cycle, without merging it down to 'next' just yet.