* What's cooking in git.git (Jul 2025, #03; Wed, 9)
@ 2025-07-10 8:03 Junio C Hamano
2025-07-10 19:32 ` [-SPAM-] " Ramsay Jones
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: Junio C Hamano @ 2025-07-10 8:03 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']
* kn/fetch-push-bulk-ref-update (2025-06-20) 6 commits
(merged to 'next' on 2025-07-02 at db06df3871)
+ receive-pack: handle reference deletions separately
+ refs/files: skip updates with errors in batched updates
+ receive-pack: use batched reference updates
+ send-pack: fix memory leak around duplicate refs
+ fetch: use batched reference updates
+ refs: add function to translate errors to strings
"git push" and "git fetch" are taught to update refs in batches to
gain performance.
source: <20250519-501-update-git-fetch-1-to-use-partial-transactions-v3-0-6cdfd4f769b9@gmail.com>
source: <20250620-6769-address-test-failures-in-the-next-branch-caused-by-batched-reference-updates-v5-0-f35ee6b59a82@gmail.com>
--------------------------------------------------
[New Topics]
* 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: <20250708-b4-pks-t1006-fix-tap-format-v1-1-c3f837448364@pks.im>
* 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.
Comments?
source: <cover.1751983009.git.phillip.wood@dunelm.org.uk>
* 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".
Comments?
source: <20250709-b4-pks-midx-via-odb-alternate-v1-0-f31150d21331@pks.im>
* 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.
Comments?
source: <20250709-pks-object-file-wo-the-repository-v1-0-62627b55707f@pks.im>
--------------------------------------------------
[Cooking]
* 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.
Will merge to 'master'.
source: <20250702161951.22908-2-bacs@librecast.net>
* 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.
Will merge to 'master'.
source: <20250707164518.6600-1-carenas@gmail.com>
* 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.
Will merge to 'master'.
source: <20250704-pks-reftable-default-backend-v3-0-a1eb63e8442a@pks.im>
* 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.
Will merge to 'master'.
source: <20250703074502.45593-1-hanyang.tony@bytedance.com>
* 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.
Will merge to 'master'.
source: <20250703224428.GB1909836@coredump.intra.peff.net>
* jk/remote-avoid-overlapping-names (2025-07-08) 1 commit
- 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 'next'.
source: <20250708225946.GC1180568@coredump.intra.peff.net>
* ps/meson-cleanups (2025-07-08) 8 commits
- ci: use Meson's new `--slice` option
- meson: update subproject wrappers
- meson: fix GIT_EXEC_PATH with overridden -Dlibexecdir=
- 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 'next'?
source: <20250708-b4-pks-meson-cleanups-v2-0-94ac53cd4b95@pks.im>
* 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.
Will merge to 'master'.
source: <20250707-b4-pks-t-perlless-fixes-v1-0-92b2de1c3dd0@pks.im>
* 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.
Will merge to 'master'.
source: <20250707184852.16010-1-redoste@redoste.xyz>
* 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.
Will merge to 'master'.
source: <e6a80163-47ef-436b-98a6-2ac39c477080@ramsayjones.plus.com>
* 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.
Will merge to 'master'.
source: <20250707121534.2933349-1-ray@ameretat.dev>
* 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.
Will merge to 'master'.
source: <pull.1940.git.1751737158670.gitgitgadget@gmail.com>
* 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.
Comments?
source: <20250706215039.715732-1-usmanakinyemi202@gmail.com>
* 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.
Will merge to 'master'.
source: <cover.1751630981.git.ayu.chandekar@gmail.com>
* ag/doc-send-email (2025-06-30) 5 commits
- 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 'next'.
source: <20250630180511.499-1-gargaditya08@proton.me>
* rs/parse-options-precision (2025-07-09) 7 commits
- 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 'next'.
source: <802eba72-c100-429a-80b7-7a0e8b6559ed@web.de>
* 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.
Will merge to 'master'.
source: <cover.1751382830.git.code@khaugsbakk.name>
* kn/for-each-ref-skip (2025-07-08) 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'?
source: <20250708-306-git-for-each-ref-pagination-v3-0-8cfba1080be4@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: <20250630-toon-new-blame-tree-v3-0-3516025dc3bc@iotcl.com>
* cb/daemon-reap-children (2025-06-26) 4 commits
- daemon: explicitly allow EINTR during poll()
- daemon: use sigaction() to install child_handler()
- compat/mingw: allow sigaction(SIGCHLD)
- compat/posix.h: track SA_RESTART fallback
Futz with SIGCHLD handling in "git daemon".
Stalled?
cf. <dba9ae0d-1e43-4345-a7ec-b57a07d45a07@gmail.com>
source: <pull.2002.v3.git.git.1750927988.gitgitgadget@gmail.com>
* 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. <f22e864e-669d-457c-838e-961bbc977c4b@gmail.com>
source: <20250630182527.69167-1-ayu.chandekar@gmail.com>
* 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.
Will merge to 'master'.
source: <20250702-525-make-clang-format-more-robust-v3-0-705344f30580@gmail.com>
* ly/changed-paths-traversal (2025-07-04) 4 commits
- bloom: optimize multiple pathspec items in revision traversal
- 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.
Expecting a reroll.
cf. <5DB7714D-4009-47C4-A8F7-1C375C6D29AF@smail.nju.edu.cn>
source: <20250704111437.2660251-1-502024330056@smail.nju.edu.cn>
* 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).
Will merge to 'master'.
source: <20250625142511.28857-1-maxim@guixotic.coop>
* 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. <20250708013612.GB549007@coredump.intra.peff.net>
source: <20250702011214.2835529-2-phil.hord@gmail.com>
* bc/use-sha256-by-default-in-3.0 (2025-07-01) 11 commits
- 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 'next'.
source: <20250701212237.766774-1-sandals@crustytoothpaste.net>
* 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.
Will merge to 'master'.
source: <xmqqbjqe77vw.fsf@gitster.g>
* 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, if only to fix "make check-docs".
source: <20250619225751.99699-1-lucasseikioshiro@gmail.com>
* 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: <20250709141253.623563-1-christian.couder@gmail.com>
* 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.
Expecting a response.
cf. <17b7f51c-0c3d-4d63-a501-47ce829f7345@gmail.com>
cf. <xmqqbjpuqkrj.fsf@gitster.g>
source: <cover.1751309770.git.ayu.chandekar@gmail.com>
* 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. <7e796844-97e2-4b45-a76e-4c1fcb1da3ae@gmail.com>
source: <20250609221055.136074-1-oystwa@gmail.com>
* 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.
Will merge to 'master'.
source: <20250702093736.36074-1-carenas@gmail.com>
* jc/tag-idempotent-no-op (2025-06-10) 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. <xmqqfrf73ahu.fsf@gitster.g>
source: <xmqqzfefodje.fsf@gitster.g>
* 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. <xmqqo6tv1v1z.fsf@gitster.g>
source: <20250611221444.1567638-1-sebastian@breakpoint.cc>
* 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: <pull.1933.v3.git.1751914412.gitgitgadget@gmail.com>
* 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. <xmqqikla86id.fsf@gitster.g>
source: <20250605140644.239199-1-kuforiji98@gmail.com>
* 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/W@nand.local>
source: <pull.1962.v6.git.git.1751347929.gitgitgadget@gmail.com>
* 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. <20250530065034.GC1321283@coredump.intra.peff.net>
source: <cover.1748473122.git.me@ttaylorr.com>
* 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. <xmqq4ivn3a1w.fsf@gitster.g>
source: <20250608032705.11990-1-jayatheerthkulkarni2005@gmail.com>
* 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 a response.
cf. <xmqqms9eql73.fsf@gitster.g>
source: <pull.1915.v3.git.1751128486.gitgitgadget@gmail.com>
* 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. <xmqqzfdf1ve9.fsf@gitster.g>
source: <20250625125055.1375596-1-christian.couder@gmail.com>
* 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.
Will merge to 'master'.
source: <aGDAZ6a0-PyXXGmK@ArchLinux>
* tb/midx-avoid-cruft-packs (2025-06-23) 9 commits
- 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 'next'.
source: <cover.1750717921.git.me@ttaylorr.com>
--------------------------------------------------
[Discarded]
* kn/fetch-push-bulk-ref-update-fixup (2025-06-20) 7 commits
. receive-pack: handle reference deletions separately
. refs/files: skip updates with errors in batched updates
. Merge branch 'kn/fetch-push-bulk-ref-update' into kn/fetch-push-bulk-ref-update-fixup
Follow-up fixes to the base topic.
Superseded--folded into the base topic.
source: <20250620-6769-address-test-failures-in-the-next-branch-caused-by-batched-reference-updates-v5-0-f35ee6b59a82@gmail.com>
* jc/cocci-dtype (2025-06-18) 1 commit
. cocci: do not directly access the .d_type member in struct dirent
Catch direct access to .d_type member of struct dirent, as some
non-POSIX compliant systems we support lack it, and rewrite to use
DTYPE() macro, which is not quite the right thing to do.
Would silently convert a broken code with code with another breakage.
source: <xmqq4iwcgbzb.fsf@gitster.g>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [-SPAM-] What's cooking in git.git (Jul 2025, #03; Wed, 9)
2025-07-10 8:03 What's cooking in git.git (Jul 2025, #03; Wed, 9) Junio C Hamano
@ 2025-07-10 19:32 ` Ramsay Jones
2025-07-10 21:12 ` Junio C Hamano
2025-07-15 23:32 ` [PATCH 0/2] meson regression fix Ramsay Jones
2025-07-11 0:07 ` "What's cooking" incremental update report Junio C Hamano
2025-07-11 2:05 ` What's cooking in git.git (Jul 2025, #03; Wed, 9) Ayush Chandekar
2 siblings, 2 replies; 15+ messages in thread
From: Ramsay Jones @ 2025-07-10 19:32 UTC (permalink / raw)
To: Junio C Hamano, git
On 10/07/2025 09:03, Junio C Hamano wrote:
[snip]
> * ps/meson-cleanups (2025-07-08) 8 commits
> - ci: use Meson's new `--slice` option
> - meson: update subproject wrappers
> - meson: fix GIT_EXEC_PATH with overridden -Dlibexecdir=
> - 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 'next'?
> source: <20250708-b4-pks-meson-cleanups-v2-0-94ac53cd4b95@pks.im>
The patch 'meson: fix GIT_EXEC_PATH with overridden -Dlibexecdir=' (6/8)
which is part of this series, is essentially a revert of commit 837f637cf51
(meson.build: correct setting of GIT_EXEC_PATH, 2025-05-19). That commit
did introduce a regression, but I have a patch (see below) which I think
would be an improvement.
I had intended to test this patch some more before submitting it, and I
think there are some additional problems, but it may be ready soon so that
it could replace the patch in this series. (It seems silly to have to revert
the revert before the next release ;) ).
The 'additional problems' exist no matter which patch is applied, so it
can be addressed by a later patch on top. (I *think* there are additional
problems - I have yet to properly investigate; look at the setting for
GITEXECDIR_REL).
As a quick demonstration, no 'libexecdir' setting:
$ meson setup -Dprefix=/tmp/git build
...
User defined options
prefix : /tmp/git
Found ninja-1.11.1 at /usr/bin/ninja
$ cd build
$ meson compile
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja
[662/662] Copying file contrib/completion/git
$ meson install
ninja: Entering directory `/home/ramsay/git/build'
[1/28] Generating GIT-VERSION-FILE wit... command (wrapped by meson to set env)
Installing git to /tmp/git/libexec/git-core
...
$ ls /tmp/git
bin/ libexec/ share/
$ ls -l /tmp/git/bin/git
lrwxrwxrwx 1 ramsay ramsay 23 Jul 10 18:44 /tmp/git/bin/git -> ../libexec/git-core/git*
$ /tmp/git/bin/git --exec-path
/tmp/git/libexec/git-core
$ /tmp/git/bin/git daemon -h
usage: git daemon [--verbose] [--syslog] [--export-all]
...
$
Now with a relative path for 'libexecdir':
$ cd ..
$ rm -rf build
$ meson setup -Dprefix=/tmp/git1 -Dlibexecdir=libexec-different build
...
User defined options
libexecdir : libexec-different
prefix : /tmp/git1
Found ninja-1.11.1 at /usr/bin/ninja
$ cd build
$ meson compile
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja
[662/662] Copying file contrib/completion/git
$ meson install
ninja: Entering directory `/home/ramsay/git/build'
[1/28] Generating GIT-VERSION-FILE wit... command (wrapped by meson to set env)
Installing git to /tmp/git1/libexec-different
...
$ ls /tmp/git1
bin/ libexec-different/ share/
$ ls -l /tmp/git1/bin/git
lrwxrwxrwx 1 ramsay ramsay 24 Jul 10 18:54 /tmp/git1/bin/git -> ../libexec-different/git*
$ /tmp/git1/bin/git --exec-path
/tmp/git1/libexec-different
$ /tmp/git1/bin/git daemon -h
usage: git daemon [--verbose] [--syslog] [--export-all]
...
$
And finally, with an absolute path for 'libexecdir':
$ cd ..
$ rm -rf build
$ meson setup -Dprefix=/tmp/git2 -Dlibexecdir=/tmp/somewhere/else build
...
User defined options
libexecdir : /tmp/somewhere/else
prefix : /tmp/git2
Found ninja-1.11.1 at /usr/bin/ninja
$ cd build
$ meson compile
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja
[662/662] Copying file contrib/completion/git
$ meson install
ninja: Entering directory `/home/ramsay/git/build'
[1/28] Generating GIT-VERSION-FILE wit... command (wrapped by meson to set env)
Installing git to /tmp/somewhere/else
...
$ ls /tmp/git2
bin/ share/
$ ls /tmp/somewhere
else/
$ ls /tmp/somewhere/else
git* git-merge-octopus* git-send-email*
git-archimport* git-merge-one-file* git-shell*
git-cvsexportcommit* git-merge-resolve* git-sh-i18n
git-cvsimport* git-mergetool* git-sh-i18n--envsubst*
git-cvsserver* git-mergetool--lib git-sh-setup
git-daemon* git-p4* git-submodule*
git-difftool--helper* git-quiltimport* git-svn*
git-filter-branch* git-receive-pack@ git-upload-archive@
git-http-backend* git-remote-ftp@ git-upload-pack@
git-http-fetch* git-remote-ftps@ git-web--browse*
git-http-push* git-remote-http* mergetools/
git-imap-send* git-remote-https@ scalar*
git-instaweb* git-request-pull*
$ ls -l /tmp/git2/bin/git
lrwxrwxrwx 1 ramsay ramsay 34 Jul 10 19:01 /tmp/git2/bin/git -> ../../../../tmp/somewhere/else/git*
$ /tmp/git2/bin/git --exec-path
/tmp/somewhere/else
$ /tmp/git2/bin/git daemon -h
usage: git daemon [--verbose] [--syslog] [--export-all]
...
$
I had intended to do the equivalent 'make' invocations and check with 'tree'
(by diffing the output) or similar, that the installations are the same, but
they seem to be correct (just eyeballing them).
How would you like to proceed? (yes, I haven't written the commit message
yet).
ATB,
Ramsay Jones
---- >8 ----
From: Ramsay Jones <ramsay@ramsayjones.plus.com>
Subject: [PATCH] meson: fix installation when -Dlibexexdir is set
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
---
meson.build | 42 +++++++++++++++++++++---------------------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/meson.build b/meson.build
index 7fea4a34d6..26b12c4592 100644
--- a/meson.build
+++ b/meson.build
@@ -1744,7 +1744,7 @@ git_builtin = executable('git',
sources: builtin_sources + 'git.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
bin_wrappers += git_builtin
@@ -1752,35 +1752,35 @@ test_dependencies += executable('git-daemon',
sources: 'daemon.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
test_dependencies += executable('git-sh-i18n--envsubst',
sources: 'sh-i18n--envsubst.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
bin_wrappers += executable('git-shell',
sources: 'shell.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
test_dependencies += executable('git-http-backend',
sources: 'http-backend.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
bin_wrappers += executable('scalar',
sources: 'scalar.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
if curl.found()
@@ -1796,14 +1796,14 @@ if curl.found()
sources: 'remote-curl.c',
dependencies: [libgit_curl],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
test_dependencies += executable('git-http-fetch',
sources: 'http-fetch.c',
dependencies: [libgit_curl],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
if expat.found()
@@ -1811,7 +1811,7 @@ if curl.found()
sources: 'http-push.c',
dependencies: [libgit_curl],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
endif
@@ -1822,7 +1822,7 @@ if curl.found()
)
install_symlink(alias + executable_suffix,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
pointing_to: 'git-remote-http',
)
endforeach
@@ -1832,7 +1832,7 @@ test_dependencies += executable('git-imap-send',
sources: 'imap-send.c',
dependencies: [ use_curl_for_imap_send ? libgit_curl : libgit_commonmain ],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
foreach alias : [ 'git-receive-pack', 'git-upload-archive', 'git-upload-pack' ]
@@ -1842,7 +1842,7 @@ foreach alias : [ 'git-receive-pack', 'git-upload-archive', 'git-upload-pack' ]
)
install_symlink(alias + executable_suffix,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
pointing_to: 'git',
)
endforeach
@@ -1856,9 +1856,9 @@ foreach symlink : [
'scalar',
]
if meson.version().version_compare('>=1.3.0')
- pointing_to = fs.relative_to(get_option('libexecdir') / 'git-core' / symlink, get_option('bindir'))
+ pointing_to = fs.relative_to(git_exec_path / symlink, get_option('bindir'))
else
- pointing_to = '../libexec/git-core' / symlink
+ pointing_to = '..' / git_exec_path / symlink
endif
install_symlink(symlink,
@@ -1898,7 +1898,7 @@ foreach script : scripts_sh
meson.project_build_root() / 'GIT-BUILD-OPTIONS',
],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
endforeach
@@ -1931,7 +1931,7 @@ if perl_features_enabled
input: perl_header_template,
output: 'GIT-PERL-HEADER',
configuration: {
- 'GITEXECDIR_REL': get_option('libexecdir') / 'git-core',
+ 'GITEXECDIR_REL': git_exec_path,
'PERLLIBDIR_REL': perllibdir,
'LOCALEDIR_REL': get_option('datadir') / 'locale',
'INSTLIBDIR': perllibdir,
@@ -1955,7 +1955,7 @@ if perl_features_enabled
output: fs.stem(script),
command: generate_perl_command,
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
depends: [git_version_file],
)
test_dependencies += generated_script
@@ -1964,9 +1964,9 @@ if perl_features_enabled
bin_wrappers += generated_script
if meson.version().version_compare('>=1.3.0')
- pointing_to = fs.relative_to(get_option('libexecdir') / 'git-core' / fs.stem(script), get_option('bindir'))
+ pointing_to = fs.relative_to(git_exec_path / fs.stem(script), get_option('bindir'))
else
- pointing_to = '../libexec/git-core' / fs.stem(script)
+ pointing_to = '..' / git_exec_path / fs.stem(script)
endif
install_symlink(fs.stem(script),
@@ -1996,7 +1996,7 @@ if python.found()
'@OUTPUT@',
],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
test_dependencies += generated_python
endforeach
@@ -2030,7 +2030,7 @@ mergetools = [
]
foreach mergetool : mergetools
- install_data(mergetool, install_dir: get_option('libexecdir') / 'git-core' / 'mergetools')
+ install_data(mergetool, install_dir: git_exec_path / 'mergetools')
endforeach
if intl.found()
--
2.50.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [-SPAM-] What's cooking in git.git (Jul 2025, #03; Wed, 9)
2025-07-10 19:32 ` [-SPAM-] " Ramsay Jones
@ 2025-07-10 21:12 ` Junio C Hamano
2025-07-10 21:44 ` Ramsay Jones
2025-07-15 23:32 ` [PATCH 0/2] meson regression fix Ramsay Jones
1 sibling, 1 reply; 15+ messages in thread
From: Junio C Hamano @ 2025-07-10 21:12 UTC (permalink / raw)
To: Ramsay Jones, Patrick Steinhardt; +Cc: git
Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
>
> How would you like to proceed? (yes, I haven't written the commit message
> yet).
... appears near the end of the message, and the way _I_ would like
to proceed is to make sure two parties involved in overlapping
solutions to the same problem talk to each other and come up with a
solution together. The first step to get you going would be to CC
the other parties involved.
If the controversial step in Patrick's 8-patch series is relatively
independent from others (which was the impression I got from "more
or less random cleanups and improvements"), one approach with less
friction is to simply omit it and make it 7-patch series. While you
and Patric work out what the best approach to solve the libexecdir
problem, the rest of the series can proceed without waiting,
hopefully?
The rest is quoted from your message (without anything commented on
by me) for Patrick's reference.
Thanks.
>> * ps/meson-cleanups (2025-07-08) 8 commits
>> - ci: use Meson's new `--slice` option
>> - meson: update subproject wrappers
>> - meson: fix GIT_EXEC_PATH with overridden -Dlibexecdir=
>> - 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
> ...
> The patch 'meson: fix GIT_EXEC_PATH with overridden -Dlibexecdir=' (6/8)
> which is part of this series, is essentially a revert of commit 837f637cf51
> (meson.build: correct setting of GIT_EXEC_PATH, 2025-05-19). That commit
> did introduce a regression, but I have a patch (see below) which I think
> would be an improvement.
>
> I had intended to test this patch some more before submitting it, and I
> think there are some additional problems, but it may be ready soon so that
> it could replace the patch in this series. (It seems silly to have to revert
> the revert before the next release ;) ).
>
> The 'additional problems' exist no matter which patch is applied, so it
> can be addressed by a later patch on top. (I *think* there are additional
> problems - I have yet to properly investigate; look at the setting for
> GITEXECDIR_REL).
>
> As a quick demonstration, no 'libexecdir' setting:
>
> $ meson setup -Dprefix=/tmp/git build
> ...
> User defined options
> prefix : /tmp/git
>
> Found ninja-1.11.1 at /usr/bin/ninja
> $ cd build
> $ meson compile
> INFO: autodetecting backend as ninja
> INFO: calculating backend command to run: /usr/bin/ninja
> [662/662] Copying file contrib/completion/git
> $ meson install
> ninja: Entering directory `/home/ramsay/git/build'
> [1/28] Generating GIT-VERSION-FILE wit... command (wrapped by meson to set env)
> Installing git to /tmp/git/libexec/git-core
> ...
> $ ls /tmp/git
> bin/ libexec/ share/
> $ ls -l /tmp/git/bin/git
> lrwxrwxrwx 1 ramsay ramsay 23 Jul 10 18:44 /tmp/git/bin/git -> ../libexec/git-core/git*
> $ /tmp/git/bin/git --exec-path
> /tmp/git/libexec/git-core
> $ /tmp/git/bin/git daemon -h
> usage: git daemon [--verbose] [--syslog] [--export-all]
> ...
> $
>
> Now with a relative path for 'libexecdir':
>
> $ cd ..
> $ rm -rf build
>
> $ meson setup -Dprefix=/tmp/git1 -Dlibexecdir=libexec-different build
> ...
> User defined options
> libexecdir : libexec-different
> prefix : /tmp/git1
>
> Found ninja-1.11.1 at /usr/bin/ninja
> $ cd build
> $ meson compile
> INFO: autodetecting backend as ninja
> INFO: calculating backend command to run: /usr/bin/ninja
> [662/662] Copying file contrib/completion/git
> $ meson install
> ninja: Entering directory `/home/ramsay/git/build'
> [1/28] Generating GIT-VERSION-FILE wit... command (wrapped by meson to set env)
> Installing git to /tmp/git1/libexec-different
> ...
> $ ls /tmp/git1
> bin/ libexec-different/ share/
> $ ls -l /tmp/git1/bin/git
> lrwxrwxrwx 1 ramsay ramsay 24 Jul 10 18:54 /tmp/git1/bin/git -> ../libexec-different/git*
> $ /tmp/git1/bin/git --exec-path
> /tmp/git1/libexec-different
> $ /tmp/git1/bin/git daemon -h
> usage: git daemon [--verbose] [--syslog] [--export-all]
> ...
> $
>
> And finally, with an absolute path for 'libexecdir':
>
> $ cd ..
> $ rm -rf build
>
> $ meson setup -Dprefix=/tmp/git2 -Dlibexecdir=/tmp/somewhere/else build
> ...
> User defined options
> libexecdir : /tmp/somewhere/else
> prefix : /tmp/git2
>
> Found ninja-1.11.1 at /usr/bin/ninja
> $ cd build
> $ meson compile
> INFO: autodetecting backend as ninja
> INFO: calculating backend command to run: /usr/bin/ninja
> [662/662] Copying file contrib/completion/git
> $ meson install
> ninja: Entering directory `/home/ramsay/git/build'
> [1/28] Generating GIT-VERSION-FILE wit... command (wrapped by meson to set env)
> Installing git to /tmp/somewhere/else
> ...
> $ ls /tmp/git2
> bin/ share/
> $ ls /tmp/somewhere
> else/
> $ ls /tmp/somewhere/else
> git* git-merge-octopus* git-send-email*
> git-archimport* git-merge-one-file* git-shell*
> git-cvsexportcommit* git-merge-resolve* git-sh-i18n
> git-cvsimport* git-mergetool* git-sh-i18n--envsubst*
> git-cvsserver* git-mergetool--lib git-sh-setup
> git-daemon* git-p4* git-submodule*
> git-difftool--helper* git-quiltimport* git-svn*
> git-filter-branch* git-receive-pack@ git-upload-archive@
> git-http-backend* git-remote-ftp@ git-upload-pack@
> git-http-fetch* git-remote-ftps@ git-web--browse*
> git-http-push* git-remote-http* mergetools/
> git-imap-send* git-remote-https@ scalar*
> git-instaweb* git-request-pull*
> $ ls -l /tmp/git2/bin/git
> lrwxrwxrwx 1 ramsay ramsay 34 Jul 10 19:01 /tmp/git2/bin/git -> ../../../../tmp/somewhere/else/git*
> $ /tmp/git2/bin/git --exec-path
> /tmp/somewhere/else
> $ /tmp/git2/bin/git daemon -h
> usage: git daemon [--verbose] [--syslog] [--export-all]
> ...
> $
>
> I had intended to do the equivalent 'make' invocations and check with 'tree'
> (by diffing the output) or similar, that the installations are the same, but
> they seem to be correct (just eyeballing them).
>
> How would you like to proceed? (yes, I haven't written the commit message
> yet).
>
> ATB,
> Ramsay Jones
>
> ---- >8 ----
> From: Ramsay Jones <ramsay@ramsayjones.plus.com>
> Subject: [PATCH] meson: fix installation when -Dlibexexdir is set
>
> Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
> ---
> meson.build | 42 +++++++++++++++++++++---------------------
> 1 file changed, 21 insertions(+), 21 deletions(-)
>
> diff --git a/meson.build b/meson.build
> index 7fea4a34d6..26b12c4592 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1744,7 +1744,7 @@ git_builtin = executable('git',
> sources: builtin_sources + 'git.c',
> dependencies: [libgit_commonmain],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
> bin_wrappers += git_builtin
>
> @@ -1752,35 +1752,35 @@ test_dependencies += executable('git-daemon',
> sources: 'daemon.c',
> dependencies: [libgit_commonmain],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
>
> test_dependencies += executable('git-sh-i18n--envsubst',
> sources: 'sh-i18n--envsubst.c',
> dependencies: [libgit_commonmain],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
>
> bin_wrappers += executable('git-shell',
> sources: 'shell.c',
> dependencies: [libgit_commonmain],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
>
> test_dependencies += executable('git-http-backend',
> sources: 'http-backend.c',
> dependencies: [libgit_commonmain],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
>
> bin_wrappers += executable('scalar',
> sources: 'scalar.c',
> dependencies: [libgit_commonmain],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
>
> if curl.found()
> @@ -1796,14 +1796,14 @@ if curl.found()
> sources: 'remote-curl.c',
> dependencies: [libgit_curl],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
>
> test_dependencies += executable('git-http-fetch',
> sources: 'http-fetch.c',
> dependencies: [libgit_curl],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
>
> if expat.found()
> @@ -1811,7 +1811,7 @@ if curl.found()
> sources: 'http-push.c',
> dependencies: [libgit_curl],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
> endif
>
> @@ -1822,7 +1822,7 @@ if curl.found()
> )
>
> install_symlink(alias + executable_suffix,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> pointing_to: 'git-remote-http',
> )
> endforeach
> @@ -1832,7 +1832,7 @@ test_dependencies += executable('git-imap-send',
> sources: 'imap-send.c',
> dependencies: [ use_curl_for_imap_send ? libgit_curl : libgit_commonmain ],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
>
> foreach alias : [ 'git-receive-pack', 'git-upload-archive', 'git-upload-pack' ]
> @@ -1842,7 +1842,7 @@ foreach alias : [ 'git-receive-pack', 'git-upload-archive', 'git-upload-pack' ]
> )
>
> install_symlink(alias + executable_suffix,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> pointing_to: 'git',
> )
> endforeach
> @@ -1856,9 +1856,9 @@ foreach symlink : [
> 'scalar',
> ]
> if meson.version().version_compare('>=1.3.0')
> - pointing_to = fs.relative_to(get_option('libexecdir') / 'git-core' / symlink, get_option('bindir'))
> + pointing_to = fs.relative_to(git_exec_path / symlink, get_option('bindir'))
> else
> - pointing_to = '../libexec/git-core' / symlink
> + pointing_to = '..' / git_exec_path / symlink
> endif
>
> install_symlink(symlink,
> @@ -1898,7 +1898,7 @@ foreach script : scripts_sh
> meson.project_build_root() / 'GIT-BUILD-OPTIONS',
> ],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
> endforeach
>
> @@ -1931,7 +1931,7 @@ if perl_features_enabled
> input: perl_header_template,
> output: 'GIT-PERL-HEADER',
> configuration: {
> - 'GITEXECDIR_REL': get_option('libexecdir') / 'git-core',
> + 'GITEXECDIR_REL': git_exec_path,
> 'PERLLIBDIR_REL': perllibdir,
> 'LOCALEDIR_REL': get_option('datadir') / 'locale',
> 'INSTLIBDIR': perllibdir,
> @@ -1955,7 +1955,7 @@ if perl_features_enabled
> output: fs.stem(script),
> command: generate_perl_command,
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> depends: [git_version_file],
> )
> test_dependencies += generated_script
> @@ -1964,9 +1964,9 @@ if perl_features_enabled
> bin_wrappers += generated_script
>
> if meson.version().version_compare('>=1.3.0')
> - pointing_to = fs.relative_to(get_option('libexecdir') / 'git-core' / fs.stem(script), get_option('bindir'))
> + pointing_to = fs.relative_to(git_exec_path / fs.stem(script), get_option('bindir'))
> else
> - pointing_to = '../libexec/git-core' / fs.stem(script)
> + pointing_to = '..' / git_exec_path / fs.stem(script)
> endif
>
> install_symlink(fs.stem(script),
> @@ -1996,7 +1996,7 @@ if python.found()
> '@OUTPUT@',
> ],
> install: true,
> - install_dir: get_option('libexecdir') / 'git-core',
> + install_dir: git_exec_path,
> )
> test_dependencies += generated_python
> endforeach
> @@ -2030,7 +2030,7 @@ mergetools = [
> ]
>
> foreach mergetool : mergetools
> - install_data(mergetool, install_dir: get_option('libexecdir') / 'git-core' / 'mergetools')
> + install_data(mergetool, install_dir: git_exec_path / 'mergetools')
> endforeach
>
> if intl.found()
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [-SPAM-] What's cooking in git.git (Jul 2025, #03; Wed, 9)
2025-07-10 21:12 ` Junio C Hamano
@ 2025-07-10 21:44 ` Ramsay Jones
2025-07-11 8:49 ` Patrick Steinhardt
0 siblings, 1 reply; 15+ messages in thread
From: Ramsay Jones @ 2025-07-10 21:44 UTC (permalink / raw)
To: Junio C Hamano, Patrick Steinhardt; +Cc: git
On 10/07/2025 22:12, Junio C Hamano wrote:
> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
>
>>
>> How would you like to proceed? (yes, I haven't written the commit message
>> yet).
>
> ... appears near the end of the message, and the way _I_ would like
> to proceed is to make sure two parties involved in overlapping
> solutions to the same problem talk to each other and come up with a
> solution together. The first step to get you going would be to CC
> the other parties involved.
Oops, I had intended to cc Patrick! :(
> If the controversial step in Patrick's 8-patch series is relatively
> independent from others (which was the impression I got from "more
> or less random cleanups and improvements"), one approach with less
> friction is to simply omit it and make it 7-patch series. While you
> and Patric work out what the best approach to solve the libexecdir
> problem, the rest of the series can proceed without waiting,
> hopefully?
Yep, that would be my preferred route.
Having said that, Patrick's patch does remove the regression, so we
could keep them separate if that is preferred. I don't mind either
way. :)
Thanks!
ATB,
Ramsay Jones
^ permalink raw reply [flat|nested] 15+ messages in thread
* "What's cooking" incremental update report
2025-07-10 8:03 What's cooking in git.git (Jul 2025, #03; Wed, 9) Junio C Hamano
2025-07-10 19:32 ` [-SPAM-] " Ramsay Jones
@ 2025-07-11 0:07 ` Junio C Hamano
2025-07-11 2:05 ` What's cooking in git.git (Jul 2025, #03; Wed, 9) Ayush Chandekar
2 siblings, 0 replies; 15+ messages in thread
From: Junio C Hamano @ 2025-07-11 0:07 UTC (permalink / raw)
To: git
Since the latest issue of "What's cooking" (2025/07 #03),
here are the changes. Two topics are now in 'next', a few topics
have been updated with their new iteration.
--------------------------------------------------
[New]
* 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.
Comments?
source: <fabacc9bc7ef7d462d1c7198d5edc18c76b82270.1752139420.git.ps@pks.im>
--------------------------------------------------
[Merged to 'next']
* 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".
* 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.
--------------------------------------------------
[Updated]
-* cb/daemon-reap-children (2025-06-26) 4 commits
+* cb/daemon-reap-children (2025-07-10) 2 commits
- - daemon: explicitly allow EINTR during poll()
- daemon: use sigaction() to install child_handler()
- compat/mingw: allow sigaction(SIGCHLD)
- - compat/posix.h: track SA_RESTART fallback
Futz with SIGCHLD handling in "git daemon".
- Stalled?
- cf. <dba9ae0d-1e43-4345-a7ec-b57a07d45a07@gmail.com>
- source: <pull.2002.v3.git.git.1750927988.gitgitgadget@gmail.com>
+ Will merge to 'next'?
+ source: <pull.2002.v4.git.git.1752176743.gitgitgadget@gmail.com>
-* ly/changed-paths-traversal (2025-07-04) 4 commits
+* ly/changed-paths-traversal (2025-07-10) 4 commits
- bloom: optimize multiple pathspec items in revision traversal
- 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.
Expecting a reroll.
- cf. <5DB7714D-4009-47C4-A8F7-1C375C6D29AF@smail.nju.edu.cn>
- source: <20250704111437.2660251-1-502024330056@smail.nju.edu.cn>
+ cf. <7885EBB2-0D99-4456-A704-86362219AC17@smail.nju.edu.cn>
+ source: <20250710084829.2171855-1-502024330056@smail.nju.edu.cn>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: What's cooking in git.git (Jul 2025, #03; Wed, 9)
2025-07-10 8:03 What's cooking in git.git (Jul 2025, #03; Wed, 9) Junio C Hamano
2025-07-10 19:32 ` [-SPAM-] " Ramsay Jones
2025-07-11 0:07 ` "What's cooking" incremental update report Junio C Hamano
@ 2025-07-11 2:05 ` Ayush Chandekar
2025-07-11 16:01 ` Junio C Hamano
2 siblings, 1 reply; 15+ messages in thread
From: Ayush Chandekar @ 2025-07-11 2:05 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
Hi Junio,
On Thu, Jul 10, 2025 at 1:36 PM Junio C Hamano <gitster@pobox.com> wrote:
[snip]
>
> * 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.
>
> Expecting a response.
> cf. <17b7f51c-0c3d-4d63-a501-47ce829f7345@gmail.com>
> cf. <xmqqbjpuqkrj.fsf@gitster.g>
> source: <cover.1751309770.git.ayu.chandekar@gmail.com>
>
>
I have responded to your message about keeping the topic in 'seen' or not: [1]
Thanks,
Ayush
[1]: https://lore.kernel.org/git/CAE7as+aTBTx8rZ467uv9QV5Wiqnyed5ndY-+smJ1ayYVx6qmRw@mail.gmail.com/
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [-SPAM-] What's cooking in git.git (Jul 2025, #03; Wed, 9)
2025-07-10 21:44 ` Ramsay Jones
@ 2025-07-11 8:49 ` Patrick Steinhardt
2025-07-11 15:00 ` Junio C Hamano
0 siblings, 1 reply; 15+ messages in thread
From: Patrick Steinhardt @ 2025-07-11 8:49 UTC (permalink / raw)
To: Ramsay Jones; +Cc: Junio C Hamano, git
On Thu, Jul 10, 2025 at 10:44:07PM +0100, Ramsay Jones wrote:
> On 10/07/2025 22:12, Junio C Hamano wrote:
> > Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
> >
> >>
> >> How would you like to proceed? (yes, I haven't written the commit message
> >> yet).
> >
> > ... appears near the end of the message, and the way _I_ would like
> > to proceed is to make sure two parties involved in overlapping
> > solutions to the same problem talk to each other and come up with a
> > solution together. The first step to get you going would be to CC
> > the other parties involved.
>
> Oops, I had intended to cc Patrick! :(
>
> > If the controversial step in Patrick's 8-patch series is relatively
> > independent from others (which was the impression I got from "more
> > or less random cleanups and improvements"), one approach with less
> > friction is to simply omit it and make it 7-patch series. While you
> > and Patric work out what the best approach to solve the libexecdir
> > problem, the rest of the series can proceed without waiting,
> > hopefully?
>
> Yep, that would be my preferred route.
>
> Having said that, Patrick's patch does remove the regression, so we
> could keep them separate if that is preferred. I don't mind either
> way. :)
I'm happy to just drop the patch and let you handle the regression.
There aren't any dependencies between the patches in this series, so
it's as easy as removing the patch. Junio, do you want me to resend the
series with the patch dropped or will you drop the patch on your side?
Thanks!
Patrick
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [-SPAM-] What's cooking in git.git (Jul 2025, #03; Wed, 9)
2025-07-11 8:49 ` Patrick Steinhardt
@ 2025-07-11 15:00 ` Junio C Hamano
2025-07-11 15:39 ` Ramsay Jones
0 siblings, 1 reply; 15+ messages in thread
From: Junio C Hamano @ 2025-07-11 15:00 UTC (permalink / raw)
To: Patrick Steinhardt; +Cc: Ramsay Jones, git
Patrick Steinhardt <ps@pks.im> writes:
> I'm happy to just drop the patch and let you handle the regression.
>
> There aren't any dependencies between the patches in this series, so
> it's as easy as removing the patch. Junio, do you want me to resend the
> series with the patch dropped or will you drop the patch on your side?
Will do. As always, thanks for working well together.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [-SPAM-] What's cooking in git.git (Jul 2025, #03; Wed, 9)
2025-07-11 15:00 ` Junio C Hamano
@ 2025-07-11 15:39 ` Ramsay Jones
0 siblings, 0 replies; 15+ messages in thread
From: Ramsay Jones @ 2025-07-11 15:39 UTC (permalink / raw)
To: Junio C Hamano, Patrick Steinhardt; +Cc: git
On 11/07/2025 16:00, Junio C Hamano wrote:
> Patrick Steinhardt <ps@pks.im> writes:
>
>> I'm happy to just drop the patch and let you handle the regression.
>>
>> There aren't any dependencies between the patches in this series, so
>> it's as easy as removing the patch. Junio, do you want me to resend the
>> series with the patch dropped or will you drop the patch on your side?
>
> Will do. As always, thanks for working well together.
Thanks, will do. I need to do some more testing ... but I will send
a patch soon.
ATB,
Ramsay Jones
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: What's cooking in git.git (Jul 2025, #03; Wed, 9)
2025-07-11 2:05 ` What's cooking in git.git (Jul 2025, #03; Wed, 9) Ayush Chandekar
@ 2025-07-11 16:01 ` Junio C Hamano
2025-07-11 18:15 ` Ayush Chandekar
0 siblings, 1 reply; 15+ messages in thread
From: Junio C Hamano @ 2025-07-11 16:01 UTC (permalink / raw)
To: Ayush Chandekar; +Cc: git
Ayush Chandekar <ayu.chandekar@gmail.com> writes:
> Hi Junio,
>
> On Thu, Jul 10, 2025 at 1:36 PM Junio C Hamano <gitster@pobox.com> wrote:
> [snip]
>
>>
>> * 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.
>>
>> Expecting a response.
>> cf. <17b7f51c-0c3d-4d63-a501-47ce829f7345@gmail.com>
>> cf. <xmqqbjpuqkrj.fsf@gitster.g>
>> source: <cover.1751309770.git.ayu.chandekar@gmail.com>
>>
>>
>
> I have responded to your message about keeping the topic in 'seen' or not: [1]
It is not an issue for which a response is being expected, though.
Has the issue Phillip pointed out been resolved in the discussion?
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: What's cooking in git.git (Jul 2025, #03; Wed, 9)
2025-07-11 16:01 ` Junio C Hamano
@ 2025-07-11 18:15 ` Ayush Chandekar
2025-07-11 18:34 ` Junio C Hamano
0 siblings, 1 reply; 15+ messages in thread
From: Ayush Chandekar @ 2025-07-11 18:15 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On Fri, Jul 11, 2025 at 9:31 PM Junio C Hamano <gitster@pobox.com> wrote:
>
> Ayush Chandekar <ayu.chandekar@gmail.com> writes:
>
> > Hi Junio,
> >
> > On Thu, Jul 10, 2025 at 1:36 PM Junio C Hamano <gitster@pobox.com> wrote:
> > [snip]
> >
> >>
> >> * 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.
> >>
> >> Expecting a response.
> >> cf. <17b7f51c-0c3d-4d63-a501-47ce829f7345@gmail.com>
> >> cf. <xmqqbjpuqkrj.fsf@gitster.g>
> >> source: <cover.1751309770.git.ayu.chandekar@gmail.com>
> >>
> >>
> >
> > I have responded to your message about keeping the topic in 'seen' or not: [1]
>
> It is not an issue for which a response is being expected, though.
> Has the issue Phillip pointed out been resolved in the discussion?
Really sorry about that, I will address to his issue.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: What's cooking in git.git (Jul 2025, #03; Wed, 9)
2025-07-11 18:15 ` Ayush Chandekar
@ 2025-07-11 18:34 ` Junio C Hamano
0 siblings, 0 replies; 15+ messages in thread
From: Junio C Hamano @ 2025-07-11 18:34 UTC (permalink / raw)
To: Ayush Chandekar; +Cc: git
Ayush Chandekar <ayu.chandekar@gmail.com> writes:
>> >> Expecting a response.
>> >> cf. <17b7f51c-0c3d-4d63-a501-47ce829f7345@gmail.com>
>> >> cf. <xmqqbjpuqkrj.fsf@gitster.g>
>> >> source: <cover.1751309770.git.ayu.chandekar@gmail.com>
>> >>
>> >>
>> >
>> > I have responded to your message about keeping the topic in 'seen' or not: [1]
>>
>> It is not an issue for which a response is being expected, though.
>> Has the issue Phillip pointed out been resolved in the discussion?
>
> Really sorry about that, I will address to his issue.
Heh, don't be sorry. Miscommunication happens.
And thanks for working on this topic.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 0/2] meson regression fix
2025-07-10 19:32 ` [-SPAM-] " Ramsay Jones
2025-07-10 21:12 ` Junio C Hamano
@ 2025-07-15 23:32 ` Ramsay Jones
2025-07-15 23:32 ` [PATCH 1/2] meson: fix installation when -Dlibexexdir is set Ramsay Jones
2025-07-15 23:32 ` [PATCH 2/2] po/meson.build: add missing 'ga' language code Ramsay Jones
1 sibling, 2 replies; 15+ messages in thread
From: Ramsay Jones @ 2025-07-15 23:32 UTC (permalink / raw)
To: git; +Cc: Patrick Steinhardt, irecca.kun, Junio C Hamano, Ramsay Jones
As promised, here is the patch to fix the regression caused by
commit 837f637cf5 ("meson.build: correct setting of GIT_EXEC_PATH",
2025-05-19).
I compared the meson and corresponding make installations, which
shows (in addition to fixing the regression):
- the make install includes 'gitk' and 'git-gui' which is
missing from the meson install.
- the make install includes all of the 'builtin' commands
in the 'library executables' (e.g. git-add), which the
meson install omits. (I thought we had stopped 'installing'
the builtins).
- the make install uses hard links whereas meson uses symbolic
links.
- meson omits the Irish translation (see patch #2).
I noticed some other problems, which I was chasing to see if I could
fix them here, but it was taking me down an unexpectedly deep rabit
hole, so ...
ATB,
Ramsay Jones
Ramsay Jones (2):
meson: fix installation when -Dlibexexdir is set
po/meson.build: add missing 'ga' language code
meson.build | 42 +++++++++++++++++++++---------------------
po/meson.build | 1 +
2 files changed, 22 insertions(+), 21 deletions(-)
--
2.50.0
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/2] meson: fix installation when -Dlibexexdir is set
2025-07-15 23:32 ` [PATCH 0/2] meson regression fix Ramsay Jones
@ 2025-07-15 23:32 ` Ramsay Jones
2025-07-15 23:32 ` [PATCH 2/2] po/meson.build: add missing 'ga' language code Ramsay Jones
1 sibling, 0 replies; 15+ messages in thread
From: Ramsay Jones @ 2025-07-15 23:32 UTC (permalink / raw)
To: git; +Cc: Patrick Steinhardt, irecca.kun, Junio C Hamano, Ramsay Jones
commit 837f637cf5 ("meson.build: correct setting of GIT_EXEC_PATH",
2025-05-19) corrected the GIT_EXEC_PATH build setting, but then forgot
to update the installation path for the library executables. This causes
a regression when attempting to execute commands, after installing to a
non-standard location (reported here[1]):
$ meson -Dprefix=/tmp/git -Dlibexecdir=libexec-different build
$ meson install
$ /tmp/git/bin/git --exec-path
/tmp/git/libexec-different
$ /tmp/git/bin/git daemon
git: 'daemon' is not a git command. See 'git --help'
In order to fix the issue, use the 'git_exec_path' variable (calculated
while processing -Dlibexecdir) as the 'install_dir' field during the
installation of the library executables.
[1]: <66fd343a-1351-4350-83eb-c797e47b7693@gmail.com>
Reported-by: irecca.kun@gmail.com
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
---
meson.build | 42 +++++++++++++++++++++---------------------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/meson.build b/meson.build
index 7fea4a34d6..26b12c4592 100644
--- a/meson.build
+++ b/meson.build
@@ -1744,7 +1744,7 @@ git_builtin = executable('git',
sources: builtin_sources + 'git.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
bin_wrappers += git_builtin
@@ -1752,35 +1752,35 @@ test_dependencies += executable('git-daemon',
sources: 'daemon.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
test_dependencies += executable('git-sh-i18n--envsubst',
sources: 'sh-i18n--envsubst.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
bin_wrappers += executable('git-shell',
sources: 'shell.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
test_dependencies += executable('git-http-backend',
sources: 'http-backend.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
bin_wrappers += executable('scalar',
sources: 'scalar.c',
dependencies: [libgit_commonmain],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
if curl.found()
@@ -1796,14 +1796,14 @@ if curl.found()
sources: 'remote-curl.c',
dependencies: [libgit_curl],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
test_dependencies += executable('git-http-fetch',
sources: 'http-fetch.c',
dependencies: [libgit_curl],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
if expat.found()
@@ -1811,7 +1811,7 @@ if curl.found()
sources: 'http-push.c',
dependencies: [libgit_curl],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
endif
@@ -1822,7 +1822,7 @@ if curl.found()
)
install_symlink(alias + executable_suffix,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
pointing_to: 'git-remote-http',
)
endforeach
@@ -1832,7 +1832,7 @@ test_dependencies += executable('git-imap-send',
sources: 'imap-send.c',
dependencies: [ use_curl_for_imap_send ? libgit_curl : libgit_commonmain ],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
foreach alias : [ 'git-receive-pack', 'git-upload-archive', 'git-upload-pack' ]
@@ -1842,7 +1842,7 @@ foreach alias : [ 'git-receive-pack', 'git-upload-archive', 'git-upload-pack' ]
)
install_symlink(alias + executable_suffix,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
pointing_to: 'git',
)
endforeach
@@ -1856,9 +1856,9 @@ foreach symlink : [
'scalar',
]
if meson.version().version_compare('>=1.3.0')
- pointing_to = fs.relative_to(get_option('libexecdir') / 'git-core' / symlink, get_option('bindir'))
+ pointing_to = fs.relative_to(git_exec_path / symlink, get_option('bindir'))
else
- pointing_to = '../libexec/git-core' / symlink
+ pointing_to = '..' / git_exec_path / symlink
endif
install_symlink(symlink,
@@ -1898,7 +1898,7 @@ foreach script : scripts_sh
meson.project_build_root() / 'GIT-BUILD-OPTIONS',
],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
endforeach
@@ -1931,7 +1931,7 @@ if perl_features_enabled
input: perl_header_template,
output: 'GIT-PERL-HEADER',
configuration: {
- 'GITEXECDIR_REL': get_option('libexecdir') / 'git-core',
+ 'GITEXECDIR_REL': git_exec_path,
'PERLLIBDIR_REL': perllibdir,
'LOCALEDIR_REL': get_option('datadir') / 'locale',
'INSTLIBDIR': perllibdir,
@@ -1955,7 +1955,7 @@ if perl_features_enabled
output: fs.stem(script),
command: generate_perl_command,
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
depends: [git_version_file],
)
test_dependencies += generated_script
@@ -1964,9 +1964,9 @@ if perl_features_enabled
bin_wrappers += generated_script
if meson.version().version_compare('>=1.3.0')
- pointing_to = fs.relative_to(get_option('libexecdir') / 'git-core' / fs.stem(script), get_option('bindir'))
+ pointing_to = fs.relative_to(git_exec_path / fs.stem(script), get_option('bindir'))
else
- pointing_to = '../libexec/git-core' / fs.stem(script)
+ pointing_to = '..' / git_exec_path / fs.stem(script)
endif
install_symlink(fs.stem(script),
@@ -1996,7 +1996,7 @@ if python.found()
'@OUTPUT@',
],
install: true,
- install_dir: get_option('libexecdir') / 'git-core',
+ install_dir: git_exec_path,
)
test_dependencies += generated_python
endforeach
@@ -2030,7 +2030,7 @@ mergetools = [
]
foreach mergetool : mergetools
- install_data(mergetool, install_dir: get_option('libexecdir') / 'git-core' / 'mergetools')
+ install_data(mergetool, install_dir: git_exec_path / 'mergetools')
endforeach
if intl.found()
--
2.50.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/2] po/meson.build: add missing 'ga' language code
2025-07-15 23:32 ` [PATCH 0/2] meson regression fix Ramsay Jones
2025-07-15 23:32 ` [PATCH 1/2] meson: fix installation when -Dlibexexdir is set Ramsay Jones
@ 2025-07-15 23:32 ` Ramsay Jones
1 sibling, 0 replies; 15+ messages in thread
From: Ramsay Jones @ 2025-07-15 23:32 UTC (permalink / raw)
To: git; +Cc: Patrick Steinhardt, irecca.kun, Junio C Hamano, Ramsay Jones
Commit bf5ce434db ("l10n: Add full Irish translation (ga.po)", 2025-05-16)
added a new translation to git. In a make build, new 'po' files (ga.po
in this case) are added to the build automatically using a wildcard
pattern. In a meson build you have to add the language code ('ga') to a
list explicitly to have it included in the build. In order to include the
new translation in the meson build, add the 'ga' language code to the
list of translations in the 'po/meson.build' file.
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
---
po/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/po/meson.build b/po/meson.build
index d7154b6395..de3b4e2c38 100644
--- a/po/meson.build
+++ b/po/meson.build
@@ -8,6 +8,7 @@ translations = i18n.gettext('git',
'el',
'es',
'fr',
+ 'ga',
'id',
'is',
'it',
--
2.50.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-07-15 23:33 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-10 8:03 What's cooking in git.git (Jul 2025, #03; Wed, 9) Junio C Hamano
2025-07-10 19:32 ` [-SPAM-] " Ramsay Jones
2025-07-10 21:12 ` Junio C Hamano
2025-07-10 21:44 ` Ramsay Jones
2025-07-11 8:49 ` Patrick Steinhardt
2025-07-11 15:00 ` Junio C Hamano
2025-07-11 15:39 ` Ramsay Jones
2025-07-15 23:32 ` [PATCH 0/2] meson regression fix Ramsay Jones
2025-07-15 23:32 ` [PATCH 1/2] meson: fix installation when -Dlibexexdir is set Ramsay Jones
2025-07-15 23:32 ` [PATCH 2/2] po/meson.build: add missing 'ga' language code Ramsay Jones
2025-07-11 0:07 ` "What's cooking" incremental update report Junio C Hamano
2025-07-11 2:05 ` What's cooking in git.git (Jul 2025, #03; Wed, 9) Ayush Chandekar
2025-07-11 16:01 ` Junio C Hamano
2025-07-11 18:15 ` Ayush Chandekar
2025-07-11 18:34 ` 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).