]> git.ipfire.org Git - thirdparty/git.git/log
thirdparty/git.git
23 months agot7300: assert exact states of repo
Patrick Steinhardt [Thu, 2 Nov 2023 08:47:06 +0000 (09:47 +0100)] 
t7300: assert exact states of repo

Some of the tests in t7300 verify that git-clean(1) doesn't touch
repositories that are embedded into the main repository. This is done by
asserting a small set of substructures that are assumed to always exist,
like the "refs/", "objects/" or "HEAD". This has the downside that we
need to assume a specific repository structure that may be subject to
change when new backends for the refdb land. At the same time, we don't
thoroughly assert that git-clean(1) really didn't end up cleaning any
files in the repository either.

Convert the tests to instead assert that all files continue to exist
after git-clean(1) by comparing a file listing via find(1) before and
after executing clean. This makes our actual assertions stricter while
having to care less about the repository's actual on-disk format.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agot4207: delete replace references via git-update-ref(1)
Patrick Steinhardt [Thu, 2 Nov 2023 08:47:01 +0000 (09:47 +0100)] 
t4207: delete replace references via git-update-ref(1)

In t4207 we set up a set of replace objects via git-replace(1). Because
these references should not be impacting subsequent tests we also set up
some cleanup logic that deletes the replacement references via a call to
`rm -rf`. This reaches into the internal implementation details of the
reference backend and will thus break when we grow an alternative refdb
implementation.

Refactor the tests to delete the replacement refs via Git commands so
that we become independent of the actual refdb that's in use. As we
don't have a nice way to delete all replacements or all references in a
certain namespace, we opt for a combination of git-for-each-ref(1) and
git-update-ref(1)'s `--stdin` mode.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agot1450: convert tests to remove worktrees via git-worktree(1)
Patrick Steinhardt [Thu, 2 Nov 2023 08:46:57 +0000 (09:46 +0100)] 
t1450: convert tests to remove worktrees via git-worktree(1)

Some of our tests in t1450 create worktrees and then corrupt them.
As it is impossible to delete such worktrees via a normal call to `git
worktree remove`, we instead opt to remove them manually by calling
rm(1) instead.

This is ultimately unnecessary though as we can use the `-f` switch to
remove the worktree. Let's convert the tests to do so such that we don't
have to reach into internal implementation details of worktrees.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agot: convert tests to not access reflog via the filesystem
Patrick Steinhardt [Thu, 2 Nov 2023 08:46:53 +0000 (09:46 +0100)] 
t: convert tests to not access reflog via the filesystem

Some of our tests reach directly into the filesystem in order to both
read or modify the reflog, which will break once we have a second
reference backend in our codebase that stores reflogs differently.

Refactor these tests to either use git-reflog(1) or the ref-store test
helper. Note that the refactoring to use git-reflog(1) also requires us
to adapt our expectations in some cases where we previously verified the
exact on-disk log entries. This seems like an acceptable tradeoff though
to ensure that different backends have the same user-visible behaviour
as any user would typically use git-reflog(1) anyway to access the logs.
Any backend-specific verification of the written on-disk format should
be implemented in a separate, backend-specific test.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agot: convert tests to not access symrefs via the filesystem
Patrick Steinhardt [Thu, 2 Nov 2023 08:46:49 +0000 (09:46 +0100)] 
t: convert tests to not access symrefs via the filesystem

Some of our tests access symbolic references via the filesystem
directly. While this works with the current files reference backend, it
this will break once we have a second reference backend in our codebase.

Refactor these tests to instead use git-symbolic-ref(1) or our
`ref-store` test tool. The latter is required in some cases where safety
checks of git-symbolic-ref(1) would otherwise reject writing a symbolic
reference.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agot: convert tests to not write references via the filesystem
Patrick Steinhardt [Thu, 2 Nov 2023 08:46:45 +0000 (09:46 +0100)] 
t: convert tests to not write references via the filesystem

Some of our tests manually create, update or delete references by
writing the respective new values into the filesystem directly. While
this works with the current files reference backend, this will break
once we have a second reference backend implementation in our codebase.

Refactor these tests to instead use git-update-ref(1) or our `ref-store`
test tool. The latter is required in some cases where safety checks of
git-update-ref(1) would otherwise reject a reference update.

While at it, refactor some of the tests to schedule the cleanup command
via `test_when_finished` before modifying the repository.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agot: allow skipping expected object ID in `ref-store update-ref`
Patrick Steinhardt [Thu, 2 Nov 2023 08:46:41 +0000 (09:46 +0100)] 
t: allow skipping expected object ID in `ref-store update-ref`

We require the caller to pass both the old and new expected object ID to
our `test-tool ref-store update-ref` helper. When trying to update a
symbolic reference though it's impossible to specify the expected object
ID, which means that the test would instead have to force-update the
reference. This is currently impossible though.

Update the helper to optionally skip verification of the old object ID
in case the test passes in an empty old object ID as input.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agoMerge branch 'ps/show-ref' into ps/ref-tests-update
Junio C Hamano [Thu, 2 Nov 2023 23:36:54 +0000 (08:36 +0900)] 
Merge branch 'ps/show-ref' into ps/ref-tests-update

* ps/show-ref:
  t: use git-show-ref(1) to check for ref existence
  builtin/show-ref: add new mode to check for reference existence
  builtin/show-ref: explicitly spell out different modes in synopsis
  builtin/show-ref: ensure mutual exclusiveness of subcommands
  builtin/show-ref: refactor options for patterns subcommand
  builtin/show-ref: stop using global vars for `show_one()`
  builtin/show-ref: stop using global variable to count matches
  builtin/show-ref: refactor `--exclude-existing` options
  builtin/show-ref: fix dead code when passing patterns
  builtin/show-ref: fix leaking string buffer
  builtin/show-ref: split up different subcommands
  builtin/show-ref: convert pattern to a local variable

23 months agoGit 2.43-rc0 v2.43.0-rc0
Junio C Hamano [Thu, 2 Nov 2023 08:09:48 +0000 (17:09 +0900)] 
Git 2.43-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agoGit 2.42.1 v2.42.1
Junio C Hamano [Thu, 2 Nov 2023 07:38:18 +0000 (16:38 +0900)] 
Git 2.42.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agoMerge branch 'ms/doc-push-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:28 +0000 (16:53 +0900)] 
Merge branch 'ms/doc-push-fix' into maint-2.42

Docfix.

* ms/doc-push-fix:
  git-push doc: more visibility for -q option

23 months agoMerge branch 'jc/commit-new-underscore-index-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:28 +0000 (16:53 +0900)] 
Merge branch 'jc/commit-new-underscore-index-fix' into maint-2.42

Message fix.

* jc/commit-new-underscore-index-fix:
  commit: do not use cryptic "new_index" in end-user facing messages

23 months agoMerge branch 'wx/merge-ort-comment-typofix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:27 +0000 (16:53 +0900)] 
Merge branch 'wx/merge-ort-comment-typofix' into maint-2.42

Typofix.

* wx/merge-ort-comment-typofix:
  merge-ort.c: fix typo 'neeed' to 'needed'

23 months agoMerge branch 'ps/git-repack-doc-fixes' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:27 +0000 (16:53 +0900)] 
Merge branch 'ps/git-repack-doc-fixes' into maint-2.42

Doc updates.

* ps/git-repack-doc-fixes:
  doc/git-repack: don't mention nonexistent "--unpacked" option
  doc/git-repack: fix syntax for `-g` shorthand option

23 months agoMerge branch 'ni/die-message-fix-for-git-add' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:27 +0000 (16:53 +0900)] 
Merge branch 'ni/die-message-fix-for-git-add' into maint-2.42

Message updates.

* ni/die-message-fix-for-git-add:
  builtin/add.c: clean up die() messages

23 months agoMerge branch 'jc/am-doc-whitespace-action-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:27 +0000 (16:53 +0900)] 
Merge branch 'jc/am-doc-whitespace-action-fix' into maint-2.42

Docfix.

* jc/am-doc-whitespace-action-fix:
  am: align placeholder for --whitespace option with apply

23 months agoMerge branch 'jc/update-list-references-to-lore' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:26 +0000 (16:53 +0900)] 
Merge branch 'jc/update-list-references-to-lore' into maint-2.42

Doc update.

* jc/update-list-references-to-lore:
  doc: update list archive reference to use lore.kernel.org

23 months agoMerge branch 'ps/rewritten-is-per-worktree-doc' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:26 +0000 (16:53 +0900)] 
Merge branch 'ps/rewritten-is-per-worktree-doc' into maint-2.42

Doc update.

* ps/rewritten-is-per-worktree-doc:
  doc/git-worktree: mention "refs/rewritten" as per-worktree refs

23 months agoMerge branch 'sn/cat-file-doc-update' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:26 +0000 (16:53 +0900)] 
Merge branch 'sn/cat-file-doc-update' into maint-2.42

"git cat-file" documentation updates.

* sn/cat-file-doc-update:
  doc/cat-file: make synopsis and description less confusing

23 months agoMerge branch 'jk/decoration-and-other-leak-fixes' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:26 +0000 (16:53 +0900)] 
Merge branch 'jk/decoration-and-other-leak-fixes' into maint-2.42

Leakfix.

* jk/decoration-and-other-leak-fixes:
  daemon: free listen_addr before returning
  revision: clear decoration structs during release_revisions()
  decorate: add clear_decoration() function

23 months agoMerge branch 'rs/parse-opt-ctx-cleanup' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:26 +0000 (16:53 +0900)] 
Merge branch 'rs/parse-opt-ctx-cleanup' into maint-2.42

Code clean-up.

* rs/parse-opt-ctx-cleanup:
  parse-options: drop unused parse_opt_ctx_t member

23 months agoMerge branch 'ob/am-msgfix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:25 +0000 (16:53 +0900)] 
Merge branch 'ob/am-msgfix' into maint-2.42

The parameters to generate an error message have been corrected.

* ob/am-msgfix:
  am: fix error message in parse_opt_show_current_patch()

23 months agoMerge branch 'hy/doc-show-is-like-log-not-diff-tree' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:25 +0000 (16:53 +0900)] 
Merge branch 'hy/doc-show-is-like-log-not-diff-tree' into maint-2.42

Doc update.

* hy/doc-show-is-like-log-not-diff-tree:
  show doc: redirect user to git log manual instead of git diff-tree

23 months agoMerge branch 'ch/clean-docfix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:25 +0000 (16:53 +0900)] 
Merge branch 'ch/clean-docfix' into maint-2.42

Typofix.

* ch/clean-docfix:
  git-clean doc: fix "without do cleaning" typo

23 months agoMerge branch 'eg/config-type-path-docfix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:24 +0000 (16:53 +0900)] 
Merge branch 'eg/config-type-path-docfix' into maint-2.42

Typofix.

* eg/config-type-path-docfix:
  git-config: fix misworded --type=path explanation

23 months agoMerge branch 'ob/t3404-typofix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:24 +0000 (16:53 +0900)] 
Merge branch 'ob/t3404-typofix' into maint-2.42

Code clean-up.

* ob/t3404-typofix:
  t3404-rebase-interactive.sh: fix typos in title of a rewording test

23 months agoMerge branch 'ob/sequencer-remove-dead-code' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:24 +0000 (16:53 +0900)] 
Merge branch 'ob/sequencer-remove-dead-code' into maint-2.42

Code clean-up.

* ob/sequencer-remove-dead-code:
  sequencer: remove unreachable exit condition in pick_commits()

23 months agoMerge branch 'rs/name-rev-use-opt-hidden-bool' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:24 +0000 (16:53 +0900)] 
Merge branch 'rs/name-rev-use-opt-hidden-bool' into maint-2.42

Simplify use of parse-options API a bit.

* rs/name-rev-use-opt-hidden-bool:
  name-rev: use OPT_HIDDEN_BOOL for --peel-tag

23 months agoMerge branch 'rs/grep-parseopt-simplify' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:23 +0000 (16:53 +0900)] 
Merge branch 'rs/grep-parseopt-simplify' into maint-2.42

Simplify use of parse-options API a bit.

* rs/grep-parseopt-simplify:
  grep: use OPT_INTEGER_F for --max-depth

23 months agoMerge branch 'ob/sequencer-reword-error-message' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:23 +0000 (16:53 +0900)] 
Merge branch 'ob/sequencer-reword-error-message' into maint-2.42

Update an error message (which would probably never been seen).

* ob/sequencer-reword-error-message:
  sequencer: fix error message on failure to copy SQUASH_MSG

23 months agoMerge branch 'bc/more-git-var' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:23 +0000 (16:53 +0900)] 
Merge branch 'bc/more-git-var' into maint-2.42

Fix-up for a topic that already has graduated.

* bc/more-git-var:
  var: avoid a segmentation fault when `HOME` is unset

23 months agoMerge branch 'jk/ci-retire-allow-ref' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:22 +0000 (16:53 +0900)] 
Merge branch 'jk/ci-retire-allow-ref' into maint-2.42

CI update.

* jk/ci-retire-allow-ref:
  ci: deprecate ci/config/allow-ref script
  ci: allow branch selection through "vars"

23 months agoMerge branch 'ws/git-svn-retire-faketerm' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:22 +0000 (16:53 +0900)] 
Merge branch 'ws/git-svn-retire-faketerm' into maint-2.42

Code clean-up.

* ws/git-svn-retire-faketerm:
  git-svn: drop FakeTerm hack

23 months agoMerge branch 'ch/t6300-verify-commit-test-cleanup' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:22 +0000 (16:53 +0900)] 
Merge branch 'ch/t6300-verify-commit-test-cleanup' into maint-2.42

Test clean-up.

* ch/t6300-verify-commit-test-cleanup:
  t/t6300: drop magic filtering
  t/lib-gpg: forcibly run a trustdb update

23 months agoMerge branch 'jc/mv-d-to-d-error-message-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:22 +0000 (16:53 +0900)] 
Merge branch 'jc/mv-d-to-d-error-message-fix' into maint-2.42

Typofix in an error message.

* jc/mv-d-to-d-error-message-fix:
  mv: fix error for moving directory to another

23 months agoMerge branch 'ja/worktree-orphan' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:21 +0000 (16:53 +0900)] 
Merge branch 'ja/worktree-orphan' into maint-2.42

Typofix in an error message.

* ja/worktree-orphan:
  builtin/worktree.c: fix typo in "forgot fetch" msg

23 months agoMerge branch 'ob/t9001-indent-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:21 +0000 (16:53 +0900)] 
Merge branch 'ob/t9001-indent-fix' into maint-2.42

Test style fix.

* ob/t9001-indent-fix:
  t9001: fix indentation in test_no_confirm()

23 months agoMerge branch 'jk/function-pointer-mismatches-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:20 +0000 (16:53 +0900)] 
Merge branch 'jk/function-pointer-mismatches-fix' into maint-2.42

Code clean-up to please clang-18.

* jk/function-pointer-mismatches-fix:
  hashmap: use expected signatures for comparison functions

23 months agoMerge branch 'ds/upload-pack-error-sequence-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:20 +0000 (16:53 +0900)] 
Merge branch 'ds/upload-pack-error-sequence-fix' into maint-2.42

Error message generation fix.

* ds/upload-pack-error-sequence-fix:
  upload-pack: fix exit code when denying fetch of unreachable object ID
  upload-pack: fix race condition in error messages

23 months agoMerge branch 'ws/git-push-doc-grammofix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:20 +0000 (16:53 +0900)] 
Merge branch 'ws/git-push-doc-grammofix' into maint-2.42

Doc update.

* ws/git-push-doc-grammofix:
  git-push.txt: fix grammar

23 months agoMerge branch 'jk/test-pass-ubsan-options-to-http-test' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:20 +0000 (16:53 +0900)] 
Merge branch 'jk/test-pass-ubsan-options-to-http-test' into maint-2.42

UBSAN options were not propagated through the test framework to git
run via the httpd, unlike ASAN options, which has been corrected.

* jk/test-pass-ubsan-options-to-http-test:
  test-lib: set UBSAN_OPTIONS to match ASan

23 months agoMerge branch 'tb/send-email-extract-valid-address-error-message-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:19 +0000 (16:53 +0900)] 
Merge branch 'tb/send-email-extract-valid-address-error-message-fix' into maint-2.42

An error message given by "git send-email" when given a malformed
address did not give correct information, which has been corrected.

* tb/send-email-extract-valid-address-error-message-fix:
  git-send-email.perl: avoid printing undef when validating addresses

23 months agoMerge branch 'jk/redact-h2h3-headers-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:19 +0000 (16:53 +0900)] 
Merge branch 'jk/redact-h2h3-headers-fix' into maint-2.42

HTTP Header redaction code has been adjusted for a newer version of
cURL library that shows its traces differently from earlier
versions.

* jk/redact-h2h3-headers-fix:
  http: update curl http/2 info matching for curl 8.3.0
  http: factor out matching of curl http/2 trace lines

23 months agoMerge branch 'pb/completion-aliases-doc' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:19 +0000 (16:53 +0900)] 
Merge branch 'pb/completion-aliases-doc' into maint-2.42

Clarify how "alias.foo = : git cmd ; aliased-command-string" should
be spelled with necessary whitespaces around punctuation marks to
work.

* pb/completion-aliases-doc:
  completion: improve doc for complex aliases

23 months agoMerge branch 'js/diff-cached-fsmonitor-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:19 +0000 (16:53 +0900)] 
Merge branch 'js/diff-cached-fsmonitor-fix' into maint-2.42

"git diff --cached" codepath did not fill the necessary stat
information for a file when fsmonitor knows it is clean and ended
up behaving as if it is not clean, which has been corrected.

* js/diff-cached-fsmonitor-fix:
  diff-lib: fix check_removed when fsmonitor is on

23 months agoMerge branch 'js/systemd-timers-wsl-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:18 +0000 (16:53 +0900)] 
Merge branch 'js/systemd-timers-wsl-fix' into maint-2.42

Update "git maintainance" timers' implementation based on systemd
timers to work with WSL.

* js/systemd-timers-wsl-fix:
  maintenance(systemd): support the Windows Subsystem for Linux

23 months agoMerge branch 'pw/diff-no-index-from-named-pipes' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:18 +0000 (16:53 +0900)] 
Merge branch 'pw/diff-no-index-from-named-pipes' into maint-2.42

"git diff --no-index -R <(one) <(two)" did not work correctly,
which has been corrected.

* pw/diff-no-index-from-named-pipes:
  diff --no-index: fix -R with stdin

23 months agoMerge branch 'js/complete-checkout-t' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:18 +0000 (16:53 +0900)] 
Merge branch 'js/complete-checkout-t' into maint-2.42

The completion script (in contrib/) has been taught to treat the
"-t" option to "git checkout" and "git switch" just like the
"--track" option, to complete remote-tracking branches.

* js/complete-checkout-t:
  completion(switch/checkout): treat --track and -t the same

23 months agoMerge branch 'rs/grep-no-no-or' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:17 +0000 (16:53 +0900)] 
Merge branch 'rs/grep-no-no-or' into maint-2.42

"git grep -e A --no-or -e B" is accepted, even though the negation
of "or" did not mean anything, which has been tightened.

* rs/grep-no-no-or:
  grep: reject --no-or

23 months agoMerge branch 'so/diff-doc-for-patch-update' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:17 +0000 (16:53 +0900)] 
Merge branch 'so/diff-doc-for-patch-update' into maint-2.42

References from description of the `--patch` option in various
manual pages have been simplified and improved.

* so/diff-doc-for-patch-update:
  doc/diff-options: fix link to generating patch section

23 months agoMerge branch 'pw/rebase-i-after-failure' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:17 +0000 (16:53 +0900)] 
Merge branch 'pw/rebase-i-after-failure' into maint-2.42

Various fixes to the behaviour of "rebase -i" when the command got
interrupted by conflicting changes.
cf. <6b927687-cf6e-d73e-78fb-bd4f46736928@gmx.de>

* pw/rebase-i-after-failure:
  rebase -i: fix adding failed command to the todo list
  rebase --continue: refuse to commit after failed command
  rebase: fix rewritten list for failed pick
  sequencer: factor out part of pick_commits()
  sequencer: use rebase_path_message()
  rebase -i: remove patch file after conflict resolution
  rebase -i: move unlink() calls

23 months agoMerge branch 'ks/ref-filter-sort-numerically' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:16 +0000 (16:53 +0900)] 
Merge branch 'ks/ref-filter-sort-numerically' into maint-2.42

"git for-each-ref --sort='contents:size'" sorts the refs according
to size numerically, giving a ref that points at a blob twelve-byte
(12) long before showing a blob hundred-byte (100) long.

* ks/ref-filter-sort-numerically:
  ref-filter: sort numerically when ":size" is used

23 months agoMerge branch 'jk/diff-result-code-cleanup' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:16 +0000 (16:53 +0900)] 
Merge branch 'jk/diff-result-code-cleanup' into maint-2.42

"git diff --no-such-option" and other corner cases around the exit
status of the "diff" command has been corrected.

* jk/diff-result-code-cleanup:
  diff: drop useless "status" parameter from diff_result_code()
  diff: drop useless return values in git-diff helpers
  diff: drop useless return from run_diff_{files,index} functions
  diff: die when failing to read index in git-diff builtin
  diff: show usage for unknown builtin_diff_files() options
  diff-files: avoid negative exit value
  diff: spell DIFF_INDEX_CACHED out when calling run_diff_index()

23 months agoMerge branch 'ob/sequencer-empty-hint-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:16 +0000 (16:53 +0900)] 
Merge branch 'ob/sequencer-empty-hint-fix' into maint-2.42

The use of API between two calls to require_clean_work_tree() from
the sequencer code has been cleaned up for consistency.

* ob/sequencer-empty-hint-fix:
  sequencer: rectify empty hint in call of require_clean_work_tree()

23 months agoMerge branch 'ts/unpacklimit-config-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:16 +0000 (16:53 +0900)] 
Merge branch 'ts/unpacklimit-config-fix' into maint-2.42

transfer.unpackLimit ought to be used as a fallback, but overrode
fetch.unpackLimit and receive.unpackLimit instead.

* ts/unpacklimit-config-fix:
  transfer.unpackLimit: fetch/receive.unpackLimit takes precedence

23 months agoMerge branch 'jc/diff-exit-code-with-w-fixes' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:15 +0000 (16:53 +0900)] 
Merge branch 'jc/diff-exit-code-with-w-fixes' into maint-2.42

"git diff -w --exit-code" with various options did not work
correctly, which is being addressed.

* jc/diff-exit-code-with-w-fixes:
  diff: the -w option breaks --exit-code for --raw and other output modes
  t4040: remove test that succeeded for a wrong reason
  diff: teach "--stat -w --exit-code" to notice differences
  diff: mode-only change should be noticed by "--patch -w --exit-code"
  diff: move the fallback "--exit-code" code down

23 months agoMerge branch 'tb/commit-graph-verify-fix' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:15 +0000 (16:53 +0900)] 
Merge branch 'tb/commit-graph-verify-fix' into maint-2.42

The commit-graph verification code that detects mixture of zero and
non-zero generation numbers has been updated.

* tb/commit-graph-verify-fix:
  commit-graph: avoid repeated mixed generation number warnings
  t/t5318-commit-graph.sh: test generation zero transitions during fsck
  commit-graph: verify swapped zero/non-zero generation cases
  commit-graph: introduce `commit_graph_generation_from_graph()`

23 months agoMerge branch 'jc/ci-skip-same-commit' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:15 +0000 (16:53 +0900)] 
Merge branch 'jc/ci-skip-same-commit' into maint-2.42

Tweak GitHub Actions CI so that pushing the same commit to multiple
branch tips at the same time will not waste building and testing
the same thing twice.

* jc/ci-skip-same-commit:
  ci: avoid building from the same commit in parallel

23 months agoMerge branch 'ds/scalar-updates' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:14 +0000 (16:53 +0900)] 
Merge branch 'ds/scalar-updates' into maint-2.42

Scalar updates.

* ds/scalar-updates:
  scalar reconfigure: help users remove buggy repos
  setup: add discover_git_directory_reason()
  scalar: add --[no-]src option

23 months agoMerge branch 'mp/rebase-label-length-limit' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:14 +0000 (16:53 +0900)] 
Merge branch 'mp/rebase-label-length-limit' into maint-2.42

Overly long label names used in the sequencer machinery are now
chopped to fit under filesystem limitation.

* mp/rebase-label-length-limit:
  rebase: allow overriding the maximal length of the generated labels
  sequencer: truncate labels to accommodate loose refs

23 months agoMerge branch 'js/ci-coverity' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:14 +0000 (16:53 +0900)] 
Merge branch 'js/ci-coverity' into maint-2.42

GitHub CI workflow has learned to trigger Coverity check.

* js/ci-coverity:
  coverity: detect and report when the token or project is incorrect
  coverity: allow running on macOS
  coverity: support building on Windows
  coverity: allow overriding the Coverity project
  coverity: cache the Coverity Build Tool
  ci: add a GitHub workflow to submit Coverity scans

23 months agoMerge branch 'jk/test-lsan-denoise-output' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:14 +0000 (16:53 +0900)] 
Merge branch 'jk/test-lsan-denoise-output' into maint-2.42

Tests with LSan from time to time seem to emit harmless message
that makes our tests unnecessarily flakey; we work it around by
filtering the uninteresting output.

* jk/test-lsan-denoise-output:
  test-lib: ignore uninteresting LSan output

23 months agoMerge branch 'js/ci-san-skip-p4-and-svn-tests' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:13 +0000 (16:53 +0900)] 
Merge branch 'js/ci-san-skip-p4-and-svn-tests' into maint-2.42

Flakey "git p4" tests, as well as "git svn" tests, are now skipped
in the (rather expensive) sanitizer CI job.

* js/ci-san-skip-p4-and-svn-tests:
  ci(linux-asan-ubsan): let's save some time

23 months agoMerge branch 'tb/mark-more-tests-as-leak-free' into maint-2.42
Junio C Hamano [Thu, 2 Nov 2023 07:53:13 +0000 (16:53 +0900)] 
Merge branch 'tb/mark-more-tests-as-leak-free' into maint-2.42

Tests that are known to pass with LSan are now marked as such.

* tb/mark-more-tests-as-leak-free:
  leak tests: mark t5583-push-branches.sh as leak-free
  leak tests: mark t3321-notes-stripspace.sh as leak-free
  leak tests: mark a handful of tests as leak-free

23 months agot: use git-show-ref(1) to check for ref existence
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:59 +0000 (09:16 +0100)] 
t: use git-show-ref(1) to check for ref existence

Convert tests that use `test_path_is_file` and `test_path_is_missing` to
instead use a set of helpers `test_ref_exists` and `test_ref_missing`.
These helpers are implemented via the newly introduced `git show-ref
--exists` command. Thus, we can avoid intimate knowledge of how the ref
backend stores references on disk.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agobuiltin/show-ref: add new mode to check for reference existence
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:54 +0000 (09:16 +0100)] 
builtin/show-ref: add new mode to check for reference existence

While we have multiple ways to show the value of a given reference, we
do not have any way to check whether a reference exists at all. While
commands like git-rev-parse(1) or git-show-ref(1) can be used to check
for reference existence in case the reference resolves to something
sane, neither of them can be used to check for existence in some other
scenarios where the reference does not resolve cleanly:

    - References which have an invalid name cannot be resolved.

    - References to nonexistent objects cannot be resolved.

    - Dangling symrefs can be resolved via git-symbolic-ref(1), but this
      requires the caller to special case existence checks depending on
      whether or not a reference is symbolic or direct.

Furthermore, git-rev-list(1) and other commands do not let the caller
distinguish easily between an actually missing reference and a generic
error.

Taken together, this seems like sufficient motivation to introduce a
separate plumbing command to explicitly check for the existence of a
reference without trying to resolve its contents.

This new command comes in the form of `git show-ref --exists`. This
new mode will exit successfully when the reference exists, with a
specific exit code of 2 when it does not exist, or with 1 when there
has been a generic error.

Note that the only way to properly implement this command is by using
the internal `refs_read_raw_ref()` function. While the public function
`refs_resolve_ref_unsafe()` can be made to behave in the same way by
passing various flags, it does not provide any way to obtain the errno
with which the reference backend failed when reading the reference. As
such, it becomes impossible for us to distinguish generic errors from
the explicit case where the reference wasn't found.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agobuiltin/show-ref: explicitly spell out different modes in synopsis
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:50 +0000 (09:16 +0100)] 
builtin/show-ref: explicitly spell out different modes in synopsis

The synopsis treats the `--verify` and the implicit mode the same. They
are slightly different though:

    - They accept different sets of flags.

    - The implicit mode accepts patterns while the `--verify` mode
      accepts references.

Split up the synopsis for these two modes such that we can disambiguate
those differences.

While at it, drop "--quiet" from the pattern mode's synopsis. It does
not make a lot of sense to list patterns, but squelch the listing output
itself. The description for "--quiet" is adapted accordingly.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agobuiltin/show-ref: ensure mutual exclusiveness of subcommands
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:46 +0000 (09:16 +0100)] 
builtin/show-ref: ensure mutual exclusiveness of subcommands

The git-show-ref(1) command has three different modes, of which one is
implicit and the other two can be chosen explicitly by passing a flag.
But while these modes are standalone and cause us to execute completely
separate code paths, we gladly accept the case where a user asks for
both `--exclude-existing` and `--verify` at the same time even though it
is not obvious what will happen. Spoiler: we ignore `--verify` and
execute the `--exclude-existing` mode.

Let's explicitly detect this invalid usage and die in case both modes
were requested.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agobuiltin/show-ref: refactor options for patterns subcommand
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:42 +0000 (09:16 +0100)] 
builtin/show-ref: refactor options for patterns subcommand

The patterns subcommand is the last command that still uses global
variables to track its options. Convert it to use a structure instead
with the same motivation as preceding commits.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agobuiltin/show-ref: stop using global vars for `show_one()`
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:38 +0000 (09:16 +0100)] 
builtin/show-ref: stop using global vars for `show_one()`

The `show_one()` function implicitly receives a bunch of options which
are tracked via global variables. This makes it hard to see which
subcommands of git-show-ref(1) actually make use of these options.

Introduce a `show_one_options` structure that gets passed down to this
function. This allows us to get rid of more global state and makes it
more explicit which subcommands use those options.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agobuiltin/show-ref: stop using global variable to count matches
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:33 +0000 (09:16 +0100)] 
builtin/show-ref: stop using global variable to count matches

When passing patterns to git-show-ref(1) we're checking whether any
reference matches -- if none do, we indicate this condition via an
unsuccessful exit code.

We're using a global variable to count these matches, which is required
because the counter is getting incremented in a callback function. But
now that we have the `struct show_ref_data` in place, we can get rid of
the global variable and put the counter in there instead.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agobuiltin/show-ref: refactor `--exclude-existing` options
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:29 +0000 (09:16 +0100)] 
builtin/show-ref: refactor `--exclude-existing` options

It's not immediately obvious options which options are applicable to
what subcommand in git-show-ref(1) because all options exist as global
state. This can easily cause confusion for the reader.

Refactor options for the `--exclude-existing` subcommand to be contained
in a separate structure. This structure is stored on the stack and
passed down as required. Consequently, it clearly delimits the scope of
those options and requires the reader to worry less about global state.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agobuiltin/show-ref: fix dead code when passing patterns
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:25 +0000 (09:16 +0100)] 
builtin/show-ref: fix dead code when passing patterns

When passing patterns to `git show-ref` we have some code that will
cause us to die if `verify && !quiet` is true. But because `verify`
indicates a different subcommand of git-show-ref(1) that causes us to
execute `cmd_show_ref__verify()` and not `cmd_show_ref__patterns()`, the
condition cannot ever be true.

Let's remove this dead code.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agobuiltin/show-ref: fix leaking string buffer
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:21 +0000 (09:16 +0100)] 
builtin/show-ref: fix leaking string buffer

Fix a leaking string buffer in `git show-ref --exclude-existing`. While
the buffer is technically not leaking because its variable is declared
as static, there is no inherent reason why it should be.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agobuiltin/show-ref: split up different subcommands
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:17 +0000 (09:16 +0100)] 
builtin/show-ref: split up different subcommands

While not immediately obvious, git-show-ref(1) actually implements three
different subcommands:

    - `git show-ref <patterns>` can be used to list references that
      match a specific pattern.

    - `git show-ref --verify <refs>` can be used to list references.
      These are _not_ patterns.

    - `git show-ref --exclude-existing` can be used as a filter that
      reads references from standard input, performing some conversions
      on each of them.

Let's make this more explicit in the code by splitting up the three
subcommands into separate functions. This also allows us to address the
confusingly named `patterns` variable, which may hold either patterns or
reference names.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agobuiltin/show-ref: convert pattern to a local variable
Patrick Steinhardt [Tue, 31 Oct 2023 08:16:12 +0000 (09:16 +0100)] 
builtin/show-ref: convert pattern to a local variable

The `pattern` variable is a global variable that tracks either the
reference names (not patterns!) for the `--verify` mode or the patterns
for the non-verify mode. This is a bit confusing due to the slightly
different meanings.

Convert the variable to be local. While this does not yet fix the double
meaning of the variable, this change allows us to address it in a
subsequent patch more easily by explicitly splitting up the different
subcommands of git-show-ref(1).

Note that we introduce a `struct show_ref_data` to pass the patterns to
`show_ref()`. While this is overengineered now, we will extend this
structure in a subsequent patch.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agoMerge branch 'jm/bisect-run-synopsis-fix'
Junio C Hamano [Tue, 31 Oct 2023 03:57:44 +0000 (12:57 +0900)] 
Merge branch 'jm/bisect-run-synopsis-fix'

Doc and usage message update.

* jm/bisect-run-synopsis-fix:
  doc/git-bisect: clarify `git bisect run` syntax

23 months agoMerge branch 'ii/branch-error-messages-update'
Junio C Hamano [Tue, 31 Oct 2023 03:57:44 +0000 (12:57 +0900)] 
Merge branch 'ii/branch-error-messages-update'

Error message update.

* ii/branch-error-messages-update:
  builtin/branch.c: adjust error messages to coding guidelines

23 months agoThe twenty-second batch
Junio C Hamano [Sun, 29 Oct 2023 04:45:50 +0000 (13:45 +0900)] 
The twenty-second batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agoMerge branch 'ms/doc-push-fix'
Junio C Hamano [Sun, 29 Oct 2023 22:09:59 +0000 (07:09 +0900)] 
Merge branch 'ms/doc-push-fix'

Docfix.

* ms/doc-push-fix:
  git-push doc: more visibility for -q option

23 months agoMerge branch 'jk/send-email-fix-addresses-from-composed-messages'
Junio C Hamano [Sun, 29 Oct 2023 22:09:58 +0000 (07:09 +0900)] 
Merge branch 'jk/send-email-fix-addresses-from-composed-messages'

The codepath to handle recipient addresses `git send-email
--compose` learns from the user was completely broken, which has
been corrected.

* jk/send-email-fix-addresses-from-composed-messages:
  send-email: handle to/cc/bcc from --compose message
  Revert "send-email: extract email-parsing code into a subroutine"
  doc/send-email: mention handling of "reply-to" with --compose

23 months agoMerge branch 'ob/rebase-cleanup'
Junio C Hamano [Sun, 29 Oct 2023 22:09:58 +0000 (07:09 +0900)] 
Merge branch 'ob/rebase-cleanup'

Code clean-up.

* ob/rebase-cleanup:
  rebase: move parse_opt_keep_empty() down
  rebase: handle --strategy via imply_merge() as well
  rebase: simplify code related to imply_merge()

23 months agoMerge branch 'jc/commit-new-underscore-index-fix'
Junio C Hamano [Sun, 29 Oct 2023 22:09:58 +0000 (07:09 +0900)] 
Merge branch 'jc/commit-new-underscore-index-fix'

Message fix.

* jc/commit-new-underscore-index-fix:
  commit: do not use cryptic "new_index" in end-user facing messages

23 months agoMerge branch 'wx/merge-ort-comment-typofix'
Junio C Hamano [Sun, 29 Oct 2023 22:09:58 +0000 (07:09 +0900)] 
Merge branch 'wx/merge-ort-comment-typofix'

Typofix.

* wx/merge-ort-comment-typofix:
  merge-ort.c: fix typo 'neeed' to 'needed'

23 months agoMerge branch 'ps/git-repack-doc-fixes'
Junio C Hamano [Sun, 29 Oct 2023 22:09:57 +0000 (07:09 +0900)] 
Merge branch 'ps/git-repack-doc-fixes'

Doc updates.

* ps/git-repack-doc-fixes:
  doc/git-repack: don't mention nonexistent "--unpacked" option
  doc/git-repack: fix syntax for `-g` shorthand option

23 months agoMerge branch 'kh/pathspec-error-wo-repository-fix'
Junio C Hamano [Sun, 29 Oct 2023 22:09:57 +0000 (07:09 +0900)] 
Merge branch 'kh/pathspec-error-wo-repository-fix'

The pathspec code carelessly dereferenced NULL while emitting an
error message, which has been corrected.

* kh/pathspec-error-wo-repository-fix:
  grep: die gracefully when outside repository

23 months agoMerge branch 'ni/die-message-fix-for-git-add'
Junio C Hamano [Sun, 29 Oct 2023 22:09:57 +0000 (07:09 +0900)] 
Merge branch 'ni/die-message-fix-for-git-add'

Message updates.

* ni/die-message-fix-for-git-add:
  builtin/add.c: clean up die() messages

23 months agoMerge branch 'jc/am-doc-whitespace-action-fix'
Junio C Hamano [Sun, 29 Oct 2023 22:09:56 +0000 (07:09 +0900)] 
Merge branch 'jc/am-doc-whitespace-action-fix'

Docfix.

* jc/am-doc-whitespace-action-fix:
  am: align placeholder for --whitespace option with apply

23 months agoMerge branch 'mm/p4-symlink-with-lfs'
Junio C Hamano [Sun, 29 Oct 2023 22:09:56 +0000 (07:09 +0900)] 
Merge branch 'mm/p4-symlink-with-lfs'

"git p4" tried to store symlinks to LFS when told, but has been
fixed not to do so, because it does not make sense.

* mm/p4-symlink-with-lfs:
  git-p4 shouldn't attempt to store symlinks in LFS

23 months agoMerge branch 'da/t7601-style-fix'
Junio C Hamano [Sun, 29 Oct 2023 22:09:56 +0000 (07:09 +0900)] 
Merge branch 'da/t7601-style-fix'

Coding style update.

* da/t7601-style-fix:
  t7601: use "test_path_is_file" etc. instead of "test -f"

23 months agoMerge branch 'jc/update-list-references-to-lore'
Junio C Hamano [Sun, 29 Oct 2023 22:09:56 +0000 (07:09 +0900)] 
Merge branch 'jc/update-list-references-to-lore'

Doc update.

* jc/update-list-references-to-lore:
  doc: update list archive reference to use lore.kernel.org

23 months agoMerge branch 'jc/attr-tree-config'
Junio C Hamano [Sun, 29 Oct 2023 22:09:55 +0000 (07:09 +0900)] 
Merge branch 'jc/attr-tree-config'

The attribute subsystem learned to honor `attr.tree` configuration
that specifies which tree to read the .gitattributes files from.

* jc/attr-tree-config:
  attr: add attr.tree for setting the treeish to read attributes from
  attr: read attributes from HEAD when bare repo

23 months agoMerge branch 'sn/typo-grammo-phraso-fixes'
Junio C Hamano [Sun, 29 Oct 2023 22:09:55 +0000 (07:09 +0900)] 
Merge branch 'sn/typo-grammo-phraso-fixes'

Many typos, ungrammatical sentences and wrong phrasing have been
fixed.

* sn/typo-grammo-phraso-fixes:
  t/README: fix multi-prerequisite example
  doc/gitk: s/sticked/stuck/
  git-jump: admit to passing merge mode args to ls-files
  doc/diff-options: improve wording of the log.diffMerges mention
  doc: fix some typos, grammar and wording issues

23 months agoThe twenty-first batch
Junio C Hamano [Mon, 23 Oct 2023 20:50:42 +0000 (13:50 -0700)] 
The twenty-first batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 months agoMerge branch 'en/docfixes'
Junio C Hamano [Mon, 23 Oct 2023 20:56:37 +0000 (13:56 -0700)] 
Merge branch 'en/docfixes'

Documentation typo and grammo fixes.

* en/docfixes: (25 commits)
  documentation: add missing parenthesis
  documentation: add missing quotes
  documentation: add missing fullstops
  documentation: add some commas where they are helpful
  documentation: fix whitespace issues
  documentation: fix capitalization
  documentation: fix punctuation
  documentation: use clearer prepositions
  documentation: add missing hyphens
  documentation: remove unnecessary hyphens
  documentation: add missing article
  documentation: fix choice of article
  documentation: whitespace is already generally plural
  documentation: fix singular vs. plural
  documentation: fix verb vs. noun
  documentation: fix adjective vs. noun
  documentation: fix verb tense
  documentation: employ consistent verb tense for a list
  documentation: fix subject/verb agreement
  documentation: remove extraneous words
  ...

23 months agoMerge branch 'bc/racy-4gb-files'
Junio C Hamano [Mon, 23 Oct 2023 20:56:37 +0000 (13:56 -0700)] 
Merge branch 'bc/racy-4gb-files'

The index file has room only for lower 32-bit of the file size in
the cached stat information, which means cached stat information
will have 0 in its sd_size member for a file whose size is multiple
of 4GiB.  This is mistaken for a racily clean path.  Avoid it by
storing a bogus sd_size value instead for such files.

* bc/racy-4gb-files:
  Prevent git from rehashing 4GiB files
  t: add a test helper to truncate files

23 months agoMerge branch 'jc/fail-stash-to-store-non-stash'
Junio C Hamano [Mon, 23 Oct 2023 20:56:37 +0000 (13:56 -0700)] 
Merge branch 'jc/fail-stash-to-store-non-stash'

Feeding "git stash store" with a random commit that was not created
by "git stash create" now errors out.

* jc/fail-stash-to-store-non-stash:
  stash: be careful what we store

23 months agoMerge branch 'so/diff-merges-dd'
Junio C Hamano [Mon, 23 Oct 2023 20:56:37 +0000 (13:56 -0700)] 
Merge branch 'so/diff-merges-dd'

"git log" and friends learned "--dd" that is a short-hand for
"--diff-merges=first-parent -p".

* so/diff-merges-dd:
  completion: complete '--dd'
  diff-merges: introduce '--dd' option
  diff-merges: improve --diff-merges documentation

23 months agoMerge branch 'jk/chunk-bounds'
Junio C Hamano [Mon, 23 Oct 2023 20:56:36 +0000 (13:56 -0700)] 
Merge branch 'jk/chunk-bounds'

The codepaths that read "chunk" formatted files have been corrected
to pay attention to the chunk size and notice broken files.

* jk/chunk-bounds: (21 commits)
  t5319: make corrupted large-offset test more robust
  chunk-format: drop pair_chunk_unsafe()
  commit-graph: detect out-of-order BIDX offsets
  commit-graph: check bounds when accessing BIDX chunk
  commit-graph: check bounds when accessing BDAT chunk
  commit-graph: bounds-check generation overflow chunk
  commit-graph: check size of generations chunk
  commit-graph: bounds-check base graphs chunk
  commit-graph: detect out-of-bounds extra-edges pointers
  commit-graph: check size of commit data chunk
  midx: check size of revindex chunk
  midx: bounds-check large offset chunk
  midx: check size of object offset chunk
  midx: enforce chunk alignment on reading
  midx: check size of pack names chunk
  commit-graph: check consistency of fanout table
  midx: check size of oid lookup chunk
  commit-graph: check size of oid fanout chunk
  midx: stop ignoring malformed oid fanout chunk
  t: add library for munging chunk-format files
  ...

23 months agodoc/git-bisect: clarify `git bisect run` syntax
Javier Mora [Mon, 23 Oct 2023 19:23:10 +0000 (19:23 +0000)] 
doc/git-bisect: clarify `git bisect run` syntax

The description of the `git bisect run` command syntax at the beginning
of the manpage is `git bisect run <cmd>...`, which isn't quite clear
about what `<cmd>` is or what the `...` mean; one could think that it is
the whole (quoted) command line with all arguments in a single string,
or that it supports multiple commands, or that it doesn't accept
commands with arguments at all.

Change to `git bisect run <cmd> [<arg>...]` to clarify the syntax,
in both the manpage and the `git bisect -h` command output.

Additionally, change `--term-{new,bad}` et al to `--term-(new|bad)`
for consistency with the synopsis syntax conventions.

Signed-off-by: Javier Mora <cousteaulecommandant@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>