What's cooking (2025/02 #03)

todo
Junio C Hamano 2025-02-10 11:54:03 -08:00
parent 93bfad180c
commit 15c6383f80
1 changed files with 128 additions and 154 deletions

View File

@ -1,10 +1,10 @@
To: git@vger.kernel.org To: git@vger.kernel.org
Subject: What's cooking in git.git (Feb 2025, #02; Fri, 7) Subject: What's cooking in git.git (Feb 2025, #03; Mon, 10)
X-master-at: 9520f7d9985d8879bddd157309928fc0679c8e92 X-master-at: 388218fac77d0405a5083cd4b4ee20f6694609c3
X-next-at: 30ceb7b040fb0d98a6c17a39c106f6eb9a112b24 X-next-at: 782243c5383dd40d26d75dc97d7fc39900fb60a7
Bcc: lwn@lwn.net, gitster@pobox.com Bcc: lwn@lwn.net, gitster@pobox.com


What's cooking in git.git (Feb 2025, #02; Fri, 7) What's cooking in git.git (Feb 2025, #03; Mon, 10)
-------------------------------------------------- --------------------------------------------------


Here are the topics that have been cooking in my tree. Commits Here are the topics that have been cooking in my tree. Commits
@ -48,74 +48,125 @@ Release tarballs are available at:
-------------------------------------------------- --------------------------------------------------
[Graduated to 'master'] [Graduated to 'master']


* js/bundle-unbundle-fd-reuse-fix (2025-01-25) 1 commit * jk/ci-coverity-update (2025-02-03) 2 commits
(merged to 'next' on 2025-01-29 at e490587933) (merged to 'next' on 2025-02-03 at 9597182d1d)
+ bundle: avoid closing file descriptor twice + ci: set CI_JOB_IMAGE for coverity job
+ Merge branch 'ps/ci-misc-updates' into jk/ci-coverity-update


The code path used when "git fetch" fetches from a bundle file CI update to make Coverity job work again.
closed the same file descriptor twice, which sometimes broke things
unexpectedly when the file descriptor was reused, which has been source: <20250131233015.GA3544301@coredump.intra.peff.net>
corrected.
source: <pull.1857.git.1737849456338.gitgitgadget@gmail.com>




* ps/ci-misc-updates (2025-01-10) 10 commits * jt/gitlab-ci-base-fix (2025-01-31) 1 commit
(merged to 'next' on 2025-01-29 at 4d2f9d7f18) (merged to 'next' on 2025-02-03 at bf225248c9)
+ ci: remove stale code for Azure Pipelines + ci: fix base commit fallback for check-whitespace and check-style
+ ci: use latest Ubuntu release
+ ci: stop special-casing for Ubuntu 16.04
+ gitlab-ci: add linux32 job testing against i386
+ gitlab-ci: remove the "linux-old" job
+ github: simplify computation of the job's distro
+ github: convert all Linux jobs to be containerized
+ github: adapt containerized jobs to be rootless
+ t7422: fix flaky test caused by buffered stdout
+ t0060: fix EBUSY in MinGW when setting up runtime prefix
(this branch is used by jk/ci-coverity-update.)


CI updates (containerization, dropping stale ones, etc.). Two CI tasks, whitespace check and style check, work on the
source: <20250110-b4-pks-ci-fixes-v4-0-6e4613446080@pks.im> difference from the base version and the version being checked, but
the base was computed incorrectly in GitLab CI in some cases, which
has been corrected.
source: <20250131173938.3592899-1-jltobler@gmail.com>




* ps/leakfixes-0129 (2025-01-30) 2 commits * ps/hash-cleanup (2025-01-31) 5 commits
(merged to 'next' on 2025-01-30 at 6dc24dfdaf) (merged to 'next' on 2025-02-03 at 98bdef7666)
+ scalar: free result of `remote_default_branch()` + global: adapt callers to use generic hash context helpers
+ unix-socket: fix memory leak when chdir(3p) fails + hash: provide generic wrappers to update hash contexts
+ hash: stop typedeffing the hash context
+ hash: convert hashing context to a structure
+ Merge branch 'tb/unsafe-hash-cleanup' into ps/hash-cleanup


A few more leakfixes. Further code clean-up on the use of hash functions. Now the
source: <20250130-b4-pks-memory-leaks-v2-0-fc29dc7d4b19@pks.im> context object knows what hash function it is working with.
source: <20250131-b4-pks-hash-context-direct-v1-0-67a6d3f49d6e@pks.im>




* ps/zlib-ng (2025-01-28) 12 commits * ps/setup-reinit-fixes (2025-01-30) 3 commits
(merged to 'next' on 2025-01-30 at ecf8e8bbef) (merged to 'next' on 2025-02-03 at b4eb8f2fc8)
+ ci: make "linux-musl" job use zlib-ng + setup: fix reinit of repos with incompatible GIT_DEFAULT_HASH
+ ci: switch linux-musl to use Meson + setup: fix reinit of repos with incompatible GIT_DEFAULT_REF_FORMAT
+ compat/zlib: allow use of zlib-ng as backend + t0001: remove duplicate test
+ git-zlib: cast away potential constness of `next_in` pointer
+ compat/zlib: provide stubs for `deflateSetHeader()`
+ compat/zlib: provide `deflateBound()` shim centrally
+ git-compat-util: move include of "compat/zlib.h" into "git-zlib.h"
+ compat: introduce new "zlib.h" header
+ git-compat-util: drop `z_const` define
+ compat: drop `uncompress2()` compatibility shim
+ Merge branch 'ps/build-meson-fixes' into ps/zlib-ng
+ Merge branch 'ps/meson-weak-sha1-build' into ps/zlib-ng


The code paths to interact with zlib has been cleaned up in "git init" to reinitialize a repository that already exists cannot
preparation for building with zlib-ng. change the hash function and ref backends; such a request is
source: <20250128-b4-pks-compat-drop-uncompress2-v4-0-129bc36ae8f5@pks.im> silently ignored now.
source: <20250130-b4-pks-reinit-default-ref-format-v1-0-d2769ca01207@pks.im>


* pw/apply-ulong-overflow-check (2025-01-30) 1 commit
(merged to 'next' on 2025-02-03 at e2b37c2c77)
+ apply: detect overflow when parsing hunk header

"git apply" internally uses unsigned long for line numbers and uses
strtoul() to parse numbers on the hunk headers. It however forgot
to check parse errors.
source: <pull.1858.git.1738235310815.gitgitgadget@gmail.com>


* sk/unit-tests-0130 (2025-01-31) 4 commits
(merged to 'next' on 2025-02-03 at 163109072c)
+ t/unit-tests: convert strcmp-offset test to use clar test framework
+ t/unit-tests: convert strbuf test to use clar test framework
+ t/unit-tests: adapt example decorate test to use clar test framework
+ t/unit-tests: convert hashmap test to use clar test framework

Convert a handful of unit tests to work with the clar framework.
source: <20250131221420.38161-1-kuforiji98@gmail.com>


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


* lo/t7603-path-is-file-update (2025-02-10) 1 commit
- t7603: replace test -f by test_path_is_file

Test clean-up.

Will merge to 'next'.
source: <20250208165731.78804-1-lucasseikioshiro@gmail.com>


* ps/path-sans-the-repository (2025-02-07) 16 commits
- path: adjust last remaining users of `the_repository`
- environment: move access to "core.sharedRepository" into repo settings
- environment: move access to "core.hooksPath" into repo settings
- repo-settings: introduce function to clear struct
- path: drop `git_path()` in favor of `repo_git_path()`
- rerere: let `rerere_path()` write paths into a caller-provided buffer
- path: drop `git_common_path()` in favor of `repo_common_path()`
- worktree: return allocated string from `get_worktree_git_dir()`
- path: drop `git_path_buf()` in favor of `repo_git_path_replace()`
- path: drop `git_pathdup()` in favor of `repo_git_path()`
- path: drop unused `strbuf_git_path()` function
- path: refactor `repo_submodule_path()` family of functions
- submodule: refactor `submodule_to_gitdir()` to accept a repo
- path: refactor `repo_worktree_path()` family of functions
- path: refactor `repo_git_path()` family of functions
- path: refactor `repo_common_path()` family of functions

The path.[ch] API takes an explicit repository parameter passed
throughout the callchain, instead of relying on the_repository
singleton instance.

source: <20250207-b4-pks-path-drop-the-repository-v2-0-13cad3c11b8a@pks.im>

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

* jt/rev-list-missing-print-info (2025-02-05) 2 commits * jt/rev-list-missing-print-info (2025-02-05) 2 commits
- rev-list: extend print-info to print missing object type (merged to 'next' on 2025-02-10 at 88955fe5b4)
- rev-list: add print-info action to print missing object path + rev-list: extend print-info to print missing object type
+ rev-list: add print-info action to print missing object path


"git rev-list --missing=" learned to accept "print-info" that gives "git rev-list --missing=" learned to accept "print-info" that gives
known details expected of the missing objects, like path and type. known details expected of the missing objects, like path and type.


Will merge to 'next'. Will merge to 'master'.
cf. <CAP8UFD31kbtqXQDp9LyA+x+h+m592=HQHHbskSfar3S2GOfWVg@mail.gmail.com> cf. <CAP8UFD31kbtqXQDp9LyA+x+h+m592=HQHHbskSfar3S2GOfWVg@mail.gmail.com>
source: <20250205004147.887106-1-jltobler@gmail.com> source: <20250205004147.887106-1-jltobler@gmail.com>


@ -162,19 +213,6 @@ Release tarballs are available at:
Waiting for the base topic. Waiting for the base topic.
source: <20250206-b4-pks-reftable-win32-in-use-errors-v2-1-56985a4f6186@pks.im> source: <20250206-b4-pks-reftable-win32-in-use-errors-v2-1-56985a4f6186@pks.im>


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

* jk/ci-coverity-update (2025-02-03) 2 commits
(merged to 'next' on 2025-02-03 at 9597182d1d)
+ ci: set CI_JOB_IMAGE for coverity job
+ Merge branch 'ps/ci-misc-updates' into jk/ci-coverity-update

CI update to make Coverity job work again.

Will merge to 'master'.
source: <20250131233015.GA3544301@coredump.intra.peff.net>



* ps/repack-keep-unreachable-in-unpacked-repo (2025-02-04) 1 commit * ps/repack-keep-unreachable-in-unpacked-repo (2025-02-04) 1 commit
(merged to 'next' on 2025-02-04 at 96a862b6f8) (merged to 'next' on 2025-02-04 at 96a862b6f8)
@ -243,13 +281,14 @@ Release tarballs are available at:




* da/difftool-sans-the-repository (2025-02-06) 3 commits * da/difftool-sans-the-repository (2025-02-06) 3 commits
- difftool: eliminate use of USE_THE_REPOSITORY_VARIABLE (merged to 'next' on 2025-02-10 at e22cc108b6)
- difftool: eliminate use of the_repository + difftool: eliminate use of USE_THE_REPOSITORY_VARIABLE
- difftool: eliminate use of global variables + difftool: eliminate use of the_repository
+ difftool: eliminate use of global variables


"git difftool" code clean-up. "git difftool" code clean-up.


Will merge to 'next'. Will merge to 'master'.
cf. <xmqq4j15hch1.fsf@gitster.g> cf. <xmqq4j15hch1.fsf@gitster.g>
source: <20250206042010.865947-3-davvid@gmail.com> source: <20250206042010.865947-3-davvid@gmail.com>


@ -277,58 +316,6 @@ Release tarballs are available at:
source: <20250130-b4-pks-meson-improvements-v2-0-2f05581ffb44@pks.im> source: <20250130-b4-pks-meson-improvements-v2-0-2f05581ffb44@pks.im>




* ps/setup-reinit-fixes (2025-01-30) 3 commits
(merged to 'next' on 2025-02-03 at b4eb8f2fc8)
+ setup: fix reinit of repos with incompatible GIT_DEFAULT_HASH
+ setup: fix reinit of repos with incompatible GIT_DEFAULT_REF_FORMAT
+ t0001: remove duplicate test

"git init" to reinitialize a repository that already exists cannot
change the hash function and ref backends; such a request is
silently ignored now.

Will merge to 'master'.
source: <20250130-b4-pks-reinit-default-ref-format-v1-0-d2769ca01207@pks.im>


* pw/apply-ulong-overflow-check (2025-01-30) 1 commit
(merged to 'next' on 2025-02-03 at e2b37c2c77)
+ apply: detect overflow when parsing hunk header

"git apply" internally uses unsigned long for line numbers and uses
strtoul() to parse numbers on the hunk headers. It however forgot
to check parse errors.

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


* sk/unit-tests-0130 (2025-01-31) 4 commits
(merged to 'next' on 2025-02-03 at 163109072c)
+ t/unit-tests: convert strcmp-offset test to use clar test framework
+ t/unit-tests: convert strbuf test to use clar test framework
+ t/unit-tests: adapt example decorate test to use clar test framework
+ t/unit-tests: convert hashmap test to use clar test framework

Convert a handful of unit tests to work with the clar framework.

Will merge to 'master'.
source: <20250131221420.38161-1-kuforiji98@gmail.com>


* jt/gitlab-ci-base-fix (2025-01-31) 1 commit
(merged to 'next' on 2025-02-03 at bf225248c9)
+ ci: fix base commit fallback for check-whitespace and check-style

Two CI tasks, whitespace check and style check, work on the
difference from the base version and the version being checked, but
the base was computed incorrectly in GitLab CI in some cases, which
has been corrected.

Will merge to 'master'.
source: <20250131173938.3592899-1-jltobler@gmail.com>


* op/worktree-is-main-bare-fix (2025-02-05) 1 commit * op/worktree-is-main-bare-fix (2025-02-05) 1 commit
(merged to 'next' on 2025-02-06 at 25c618bf37) (merged to 'next' on 2025-02-06 at 25c618bf37)
+ worktree: detect from secondary worktree if main worktree is bare + worktree: detect from secondary worktree if main worktree is bare
@ -341,21 +328,6 @@ Release tarballs are available at:
source: <pull.1829.v4.git.1738737014194.gitgitgadget@gmail.com> source: <pull.1829.v4.git.1738737014194.gitgitgadget@gmail.com>




* ps/hash-cleanup (2025-01-31) 5 commits
(merged to 'next' on 2025-02-03 at 98bdef7666)
+ global: adapt callers to use generic hash context helpers
+ hash: provide generic wrappers to update hash contexts
+ hash: stop typedeffing the hash context
+ hash: convert hashing context to a structure
+ Merge branch 'tb/unsafe-hash-cleanup' into ps/hash-cleanup

Further code clean-up on the use of hash functions. Now the
context object knows what hash function it is working with.

Will merge to 'master'.
source: <20250131-b4-pks-hash-context-direct-v1-0-67a6d3f49d6e@pks.im>


* tc/clone-single-revision (2025-02-06) 7 commits * tc/clone-single-revision (2025-02-06) 7 commits
(merged to 'next' on 2025-02-06 at d67b50d35c) (merged to 'next' on 2025-02-06 at d67b50d35c)
+ builtin/clone: teach git-clone(1) the --revision= option + builtin/clone: teach git-clone(1) the --revision= option
@ -577,19 +549,20 @@ Release tarballs are available at:




* ds/backfill (2025-02-03) 7 commits * ds/backfill (2025-02-03) 7 commits
- backfill: assume --sparse when sparse-checkout is enabled (merged to 'next' on 2025-02-10 at d6348c9f60)
- backfill: add --sparse option + backfill: assume --sparse when sparse-checkout is enabled
- backfill: add --min-batch-size=<n> option + backfill: add --sparse option
- backfill: basic functionality and tests + backfill: add --min-batch-size=<n> option
- backfill: add builtin boilerplate + backfill: basic functionality and tests
- Merge branch 'master' into ds/backfill + backfill: add builtin boilerplate
- Merge branch 'ds/path-walk-1' into ds/backfill + Merge branch 'master' into ds/backfill
+ Merge branch 'ds/path-walk-1' into ds/backfill


Lazy-loading missing files in a blobless clone on demand is costly Lazy-loading missing files in a blobless clone on demand is costly
as it tends to be one-blob-at-a-time. "git backfill" is introduced as it tends to be one-blob-at-a-time. "git backfill" is introduced
to help bulk-download necessary files beforehand. to help bulk-download necessary files beforehand.


Will merge to 'next'. Will merge to 'master'.
cf. <Z6MQK6anxpMhlL9i@pks.im> cf. <Z6MQK6anxpMhlL9i@pks.im>
source: <pull.1820.v3.git.1738602667.gitgitgadget@gmail.com> source: <pull.1820.v3.git.1738602667.gitgitgadget@gmail.com>


@ -618,20 +591,21 @@ Release tarballs are available at:




* ps/send-pack-unhide-error-in-atomic-push (2025-02-03) 8 commits * ps/send-pack-unhide-error-in-atomic-push (2025-02-03) 8 commits
- send-pack: gracefully close the connection for atomic push (merged to 'next' on 2025-02-10 at 7d93e5ad97)
- t5543: atomic push reports exit code failure + send-pack: gracefully close the connection for atomic push
- send-pack: new return code "ERROR_SEND_PACK_BAD_REF_STATUS" + t5543: atomic push reports exit code failure
- t5548: add porcelain push test cases for dry-run mode + send-pack: new return code "ERROR_SEND_PACK_BAD_REF_STATUS"
- t5548: add new porcelain test cases + t5548: add porcelain push test cases for dry-run mode
- t5548: refactor test cases by resetting upstream + t5548: add new porcelain test cases
- t5548: refactor to reuse setup_upstream() function + t5548: refactor test cases by resetting upstream
- t5504: modernize test by moving heredocs into test bodies + t5548: refactor to reuse setup_upstream() function
+ t5504: modernize test by moving heredocs into test bodies


"git push --atomic --porcelain" used to ignore failures from the "git push --atomic --porcelain" used to ignore failures from the
other side, losing the error status from the child process, which other side, losing the error status from the child process, which
has been corrected. has been corrected.


Will merge to 'next'. Will merge to 'master'.
cf. <xmqqh65azk3a.fsf@gitster.g> cf. <xmqqh65azk3a.fsf@gitster.g>
source: <20250203-pks-push-atomic-respect-exit-code-v5-0-d66481e36622@pks.im> source: <20250203-pks-push-atomic-respect-exit-code-v5-0-d66481e36622@pks.im>