Commit Graph

82422 Commits (e909085aa877d3a1570a5cd715c624ef9c8024bb)

Author SHA1 Message Date
Junio C Hamano e909085aa8 Merge branch 'td/ci-large-test-resources' into jch
CI resource exhaustion during test runs on GitHub Actions has been
mitigated by switching a comparison of a huge output to use a binary
comparison, and by capping the parallel jobs on Linux to the number
of available CPUs.

* td/ci-large-test-resources:
  ci: align job counts across CI providers
  t4205: compare huge output without diff
2026-09-28 11:04:01 -07:00
Junio C Hamano a46a685532 Merge branch 'rs/dir-skip-nested-repo-fix' into jch
The directory traversal logic has been updated to correctly evaluate
pathspecs for ignored directories containing nested repositories,
and has been fortified to gracefully handle null pathspecs during
checkout operations.

* rs/dir-skip-nested-repo-fix:
  dir: skip excluded directory with nested repo on prefix match
2026-09-28 11:04:00 -07:00
Junio C Hamano 0124d271c6 ### match next 2026-09-28 11:04:00 -07:00
Junio C Hamano d12838abee Merge branch 'je/doc-asciidoc-xrefs' into jch
Various documentation files have been updated to use explicit
'<<TARGET,TARGET>>' AsciiDoc cross-references instead of plain text
references.  This improves rendering on the web and avoids broken
links when manual pages are included into other pages.

* je/doc-asciidoc-xrefs:
  doc: add more AsciiDoc cross-references
2026-09-28 11:04:00 -07:00
Junio C Hamano 9309cafb38 Merge branch 'yn/worktree-repair-completion' into jch
The command-line completion script (in 'contrib/') has been taught
to complete the 'repair' subcommand for 'git worktree'.

* yn/worktree-repair-completion:
  completion: complete 'git worktree repair'
2026-09-28 11:04:00 -07:00
Junio C Hamano ea4ffbd126 Merge branch 'kn/ci-unit-tests-on-windows-fix' into jch
The CI script has been updated to check for one-indexed slice numbers
when deciding to run unit tests on Windows, mirroring the behaviour in
the modern GitHub and GitLab workflows.

* kn/ci-unit-tests-on-windows-fix:
  ci: fix unit tests not running on windows
2026-09-28 11:04:00 -07:00
Junio C Hamano 82ba0821b6 Merge branch 'ps/reflog-expiry-fix' into jch
The default expiry periods for both reachable and unreachable reflog
entries have been corrected from a past regression that swapped
them.

* ps/reflog-expiry-fix:
  reflog: fix default expiry periods
2026-09-28 11:03:59 -07:00
Junio C Hamano af9c8fcb1c Merge branch 'js/ci-debian-12-http2-workaround' into jch
The Debian 12 CI job has been updated to skip a half-auth clone test
that occasionally fails due to a bug in the packaged curl version
handling early HTTP/2 responses.

* js/ci-debian-12-http2-workaround:
  ci: work around Debian 12's HTTP/2 authentication failures
2026-09-28 11:03:59 -07:00
Junio C Hamano 8f6ee63350 Merge branch 'jt/object-file-batch-fsync-fix' into jch
When 'core.fsyncMethod' is set to 'batch', the ODB transaction
failed to properly flush large blob packfiles residing in the
temporary directory before migrating the directory's contents to the
main object store.  The execution sequence has been corrected by
performing the packfile flush before the temporary directory
migration, averting failure.

* jt/object-file-batch-fsync-fix:
  object-file: flush transaction packfile before migrating objects
  object-file: lift ODB reprepare out of packfile flush
2026-09-28 11:03:59 -07:00
Junio C Hamano 88f1c08649 Merge branch 'tb/rerere-lock-grace' into jch
The sequencer machinery (used by 'git rebase', 'git cherry-pick', and
'git revert') has been updated to defer automatic maintenance tasks
until the end of the operation, preventing nested 'git commit', 'git
merge', and 'exec' commands from triggering GC operations that could
contend for locks or delete open packs while the sequence is in
progress.

* tb/rerere-lock-grace:
  sequencer: disable auto maintenance in spawned commands
  rebase, cherry-pick, revert: run auto maintenance when done
  config: add git_config_append_parameter()
2026-09-28 11:03:59 -07:00
Junio C Hamano 37db7450dd Merge branch 'yt/winansi-die-lasterr-fix' into jch
The error reporting machinery in the WinANSI compatibility layer has
been simplified to pass the exact Windows error code and correctly
format arguments for fatal errors.

* yt/winansi-die-lasterr-fix:
  compat/winansi: fix die_lasterr() argument formatting
2026-09-28 11:03:58 -07:00
Junio C Hamano 6af20f2cf0 Merge branch 'jk/pull-null-merge-head' into jch
'git pull' has been taught to fail more gracefully instead of
segfaulting when lookup_commit_reference() fails on unparseable
objects.

* jk/pull-null-merge-head:
  pull: avoid segfault when commit lookup fails
2026-09-28 11:03:58 -07:00
Junio C Hamano a008a52b32 Merge branch 'hd/diff-no-index-reverse-fix' into jch
A bug in git diff --no-index that mishandled reverse (-R) output
when conflicts existed between a file and a directory has been
fixed.

* hd/diff-no-index-reverse-fix:
  diff --no-index: fix -R with file/directory conflicts
2026-09-28 11:03:58 -07:00
Junio C Hamano 707a1b1781 Merge branch 'js/coverity-fixes' into jch
Assorted fixes for code paths that are not careful with boundary and
error conditions.

* js/coverity-fixes:
  test-read-midx: check midx_fill_entry() result
  oss-fuzz: handle reftable iterator initialization failures
  t/unit-tests: check reftable iterator initialization
  rerere: do not record failed conflict resolution data
  midx: validate incremental MIDX pack IDs
  gpg-interface: make signature-prefix matching length-aware
  wrapper: guard writev_in_full() against signed overflow
2026-09-28 11:03:58 -07:00
Junio C Hamano 2d03152bfa Merge branch 'rr/upload-pack-swap-shallow-wanted-ref' into jch
The server-side protocol v2 response order for 'wanted-refs' and
'shallow-info' has been swapped to match the client's expectation,
fixing a fetch failure when the server has 'uploadpack.allowRefInWant'
enabled and the client performs a shallow fetch.

* rr/upload-pack-swap-shallow-wanted-ref:
  upload-pack: swap wanted-ref/shallow-info responses
2026-09-28 11:03:57 -07:00
Junio C Hamano 13a6e2aad8 Merge branch 'of/commit-reach-repo-awareness' into jch
The can_all_from_reach() and can_all_from_reach_with_flag()
functions have been updated to accept a repository context,
preventing bugs where submodule merging incorrectly reads from the
superproject's commit-graph.

* of/commit-reach-repo-awareness:
  commit-reach: parse commits in the given repository
2026-09-28 11:03:57 -07:00
Junio C Hamano 628dcd4a80 Merge branch 'sg/precompile-git-compat-util' into jch
The 'Makefile' has been taught to precompile 'git-compat-util.h' to
speed up overall compilation, while excluding sources that do not
include the compatibility header.

* sg/precompile-git-compat-util:
  Makefile: precompile "git-compat-util.h"
  Makefile: reintroduce REFTABLE_OBJS
  cmake: remove any "$(*_OBJS)" variables when parsing Makefile for sources
  Makefile: remove XDIFF_OBJS initialization
2026-09-28 11:03:57 -07:00
Junio C Hamano 2e6f36989e Merge branch 'dk/use-nsec-runtime' into jch
The build-time knob 'USE_NSEC' for nanosecond stat precision has been
converted to a runtime configuration 'core.useNanosec', allowing
distributions to bundle one binary that adapts to filesystem
capabilities dynamically.

* dk/use-nsec-runtime:
  core: convert build-time USE_NSEC into runtime core.useNanosec
  environment: align repo_config_values_init with struct declaration
  meson: expose knob for xmlto relative links in manuals
2026-09-28 11:03:57 -07:00
Junio C Hamano c74e30f33c Merge branch 'ps/ref-storage-format' into jch
The terminology regarding reference storage formats has been unified
across command-line options, environment variables, configuration
variables, and source code, standardizing on the phrase "ref storage
format" (e.g., `--ref-storage-format`, `'GIT_REF_STORAGE_FORMAT'`).
Additionally, the `--ref-storage-format` option has been updated to
accept payloads in the form `<format>://<payload>`.

* ps/ref-storage-format:
  setup: allow "--ref-storage-format=" to specify a payload
  setup: rename "init.defaultRefFormat" to "init.defaultRefStorageFormat"
  t: rename GIT_TEST_DEFAULT_REF_FORMAT
  setup: rename ref storage format environment variables
  setup: refactor how we configure the ref storage format
  refs: expose function to parse reference URIs
  help: rename "default-ref-format" to "default-ref-storage-format"
  builtin/rev-parse: rename "--show-ref-format" to "--show-ref-storage-format"
  builtin/submodule: rename "--ref-format=" to "--ref-storage-format="
  builtin/refs: rename "--ref-format=" to "--ref-storage-format="
  builtin/clone: rename "--ref-format=" to "--ref-storage-format="
  builtin/init: rename "--ref-format=" to "--ref-storage-format="
  parse-options: allow for hidden aliases
2026-09-28 11:03:56 -07:00
Junio C Hamano e4f312a779 Merge branch 'ak/refs-files-root-ref-lock' into jch
The files backend has been updated to avoid unconditionally locking
the 'packed-refs' file when deleting a root ref (which are never
packed).

* ak/refs-files-root-ref-lock:
  refs/files: avoid packed-refs lock for root ref deletion
2026-09-28 11:03:56 -07:00
Junio C Hamano 67b77b96aa Merge branch 'jc/cocci-free-updates' into jch
Updates to Coccinelle semantic patches to correctly handle the
'FREE_AND_NULL()' macro and avoid generating broken transformations
for negated pointer checks.

* jc/cocci-free-updates:
  cocci: FREE_AND_NULL(E) is safe to call on NULL
  cocci: remove risky "if (!E) free(E)" conversion
2026-09-28 11:03:56 -07:00
Junio C Hamano 01720714a9 Merge branch 'kn/receive-report-hook' into jch
A new hook 'report' is added to 'git receive-pack', which runs after
reference updates and allows the server to filter or modify the
packet-line status report sent back to the client.

* kn/receive-report-hook:
  receive-pack: coccinelle fix
  hook: introduce the receive-report hook
  receive-pack: move message generation to separate function
  receive-pack: drop static variables to track report status version
  doc: add proc-receive hook info in 'git-receive-pack.adoc'
2026-09-28 11:03:55 -07:00
Junio C Hamano 43d40e959b Merge branch 'hn/history-squash' into jch
The experimental 'git history' command has been taught a new 'squash'
subcommand to fold a range of commits into a single commit, with any
descendants replayed on top.

* hn/history-squash:
  history: support editing squashed commit messages
  history: create squashed commits without editing
  history: protect branches when squashing a range
  history: validate squash revision ranges
  history: add skeleton for squash subcommand
  sequencer: share the squash message marker helpers and flags
  history: give commit_tree_ext a message template
  history: extract helper for a commit's parent tree
2026-09-28 11:03:55 -07:00
Junio C Hamano dde1dc5299 Merge branch 'ps/odb-alternates-at-creation' into jch
The setup of alternates has been deferred to object database
creation time during clone, which drops the unused ad-hoc alternate
writing API, simplifying the object database backend interface.

* ps/odb-alternates-at-creation:
  odb/source: remove the ability to write alternates
  builtin/clone: write alternates via `odb_create_on_disk()`
  odb/source: support writing alternates when creating the database
  builtin/clone: move setup of alternates for non-shared local clones
  builtin/clone: move setup of alternates for shared local clones
  builtin/clone: refactor handling of "--reference{,-if-able}"
  builtin/clone: move around `setup_reference()`
  builtin/clone: defer setup of the object database
  setup: split up concerns of `init_db()`
2026-09-28 11:03:55 -07:00
Junio C Hamano a018953688 Git 2.56
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-09-27 21:20:04 -07:00
Junio C Hamano 34f06850c1 l10n-2.56.0-v1
-----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCAA5FiEE37vMEzKDqYvVxs51k24VDd1FMtUFAmq5EJkbFIAAAAAABAAO
 bWFudTIsMi41KzEuMTIsMCwzAAoJEJNuFQ3dRTLVNygQAKBKbnyl5/UZGGhbkWTU
 p86/q4gBVmI+icmE8Zx4RfP3KTjTNP5ajPVgF92MUt1WjK4r6lmNQT9GbQa/BfP0
 L2ZX5z2irN1GwnrUuWTD4/gSlO3vj2B3yFZPjMg4EYK9ba0PwSew5X5lbyYM67O5
 r4roOLO3NkLY/nrLMfxMqrWJGfRt+XP7yqvLwdpc6Nft/SrhM4WerTxXKkW0nqcx
 0EHqgx5a201UX434qGKKCUOpH+oYZoZ6IldstzDsd46GaWEKoIAiUy52A/UWF+wN
 +rWNBB9VDspb4rwVeJlY4mNbHChfkycWFXt+XTjU/+f7zAMCsEHK64AR/yWBjq7/
 6NbHZnOI1jh0sARewzJT7EVEzhk+yC1qTnqllkSp3vijemVJ2KU8VmBJPnk8lIPQ
 rHCbmuAdkBxtDXNogSN9WimTF0V9tXcEf7VG6n2T0xFqM71mvTQmZ+MghD0Vre+L
 MQotkqmpxk+hkTi395M/08tOTR0aNbrMzKFe6hvxd1WL4BM8FUwDQSd2nY20udlY
 nZlIuxrGfgKvdxI+/GtZekzwOiKVk0MfB3MJfrfLtd0MHGo0eGh4PaawH/oR+1ak
 u2abcrut88q29xi8nu0Fq0e8zJojUoZKRO/AWhDXoIVNM2yK7vHNJbfxZGeT6IZ6
 wAsUsuLZBgL9mXvsXDl5F25e
 =rheU
 -----END PGP SIGNATURE-----

Merge tag 'l10n-2.56.0-v1' of https://github.com/git-l10n/git-po

l10n-2.56.0-v1

* tag 'l10n-2.56.0-v1' of https://github.com/git-l10n/git-po:
  l10n: af: fix review comments
  l10n: af: add Afrikaans translation
  l10n: pt_BR: add Brazilian Portuguese translation
  l10n: restore translations after upstream revert
  l10n: uk: add 2.56 translation
  l10n: Update Catalan Translation
  l10n: zh_CN: adopt review suggestions
  l10n: zh_CN: updated translation for 2.56
  l10n: ga.po: update for Git 2.56
  l10n: tr: Update Turkish translations
  l10n: fr: update translation for git 2.56.0
  l10n: sv.po: Update Swedish translation
  l10n: po-id for 2.56
  l10n: AGENTS.md: zsh-safe review result cleanup
  l10n: AGENTS.md: use JSON intermediates in workflow
  l10n: AGENTS.md: count PO entries with git-po-helper stat -c
  l10n: AGENTS.md: require git-po-helper >= 0.9.1
  l10n: AGENTS.md: fix counter fallbacks
2026-09-27 12:33:43 -07:00
Stéfan Driaan Turvey 14a748f852 l10n: af: fix review comments
Signed-off-by: Stéfan Driaan Turvey <stefanturvey1912@gmail.com>
2026-09-27 20:41:50 +08:00
Stéfan Driaan Turvey 0ce24c2cb2 l10n: af: add Afrikaans translation
Add a full Afrikaans translation of Git (6476 messages) and
register the Afrikaans team in po/TEAMS.

Signed-off-by: Stéfan Driaan Turvey <stefanturvey1912@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2026-09-27 20:41:48 +08:00
Daniel Pereira bc312c315c l10n: pt_BR: add Brazilian Portuguese translation
Add the initial Brazilian Portuguese translation of Git and register
the language team in po/TEAMS.

All 6476 messages are translated against the git.pot for v2.56.0-rc1.
The file header carries a glossary documenting the terminology in use:
Git command and concept names (branch, commit, merge, rebase, checkout,
push, fetch, stash, tag, pack, worktree, ...) are kept in English while
the surrounding prose is translated, and literal configuration values
and command-line options are never translated.

Signed-off-by: Daniel Pereira <danielmaraboo@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2026-09-27 20:18:53 +08:00
Jiang Xin 0a961ebf01 l10n: restore translations after upstream revert
Restore translations for the new translatable strings reintroduced by
commit 0f8e75abeb (Revert "Merge branch 'en/no-amend-during-conflicts'",
2026-09-23).

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2026-09-27 17:12:12 +08:00
Arkadii Yakovets a2a8f6ba37 l10n: uk: add 2.56 translation
Co-authored-by: Kate Golovanova <kate@kgthreads.com>
Signed-off-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>
Signed-off-by: Kate Golovanova <kate@kgthreads.com>
2026-09-27 17:09:37 +08:00
Mikel Forcada f7dcca73f3 l10n: Update Catalan Translation
Signed-off-by: Mikel Forcada <mikel.forcada@gmail.com>
2026-09-27 17:09:37 +08:00
lilydjwg baa20f2c7c l10n: zh_CN: adopt review suggestions
Signed-off-by: lilydjwg <lilydjwg@gmail.com>
2026-09-27 17:09:37 +08:00
lilydjwg 2e3e58a51d l10n: zh_CN: updated translation for 2.56
Signed-off-by: lilydjwg <lilydjwg@gmail.com>
2026-09-27 17:09:37 +08:00
Aindriú Mac Giolla Eoin e051aa97dc l10n: ga.po: update for Git 2.56
Signed-off-by: Aindriú Mac Giolla Eoin <aindriu80@gmail.com>
2026-09-27 17:09:37 +08:00
Emir SARI d4586f38f7 l10n: tr: Update Turkish translations
Signed-off-by: Emir SARI <emir_sari@icloud.com>
2026-09-27 17:09:37 +08:00
Jean-Noël Avila 334a9a3867 l10n: fr: update translation for git 2.56.0
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2026-09-27 17:09:37 +08:00
Peter Krefting 4805c1ff99 l10n: sv.po: Update Swedish translation
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Reviewed-by: Tuomas Ahola <taahol@utu.fi>
Reviewed-by: AI, by way of Jiang Xin <worldhello.net@gmail.com>
2026-09-27 17:09:37 +08:00
Bagas Sanjaya 8f3ec9333f l10n: po-id for 2.56
Update following components:

  * bisect.c
  * builtin/add.c
  * builtin/bisect.c
  * builtin/branch.c
  * builtin/cat-file.c
  * builtin/checkout.c
  * builtin/commit.c
  * builtin/diff.c
  * builtin/fast-export.c
  * builtin/fast-import.c
  * builtin/fetch.c
  * builtin/history.c
  * builtin/multi-pack-index.c
  * builtin/mv.c
  * builtin/push.c
  * builtin/refs.c
  * builtin/repack.c
  * builtin/replay.c
  * builtin/repo.c
  * builtin/rev-list.c
  * builtin/worktree.c
  * bundle-uri.c
  * command-list.h
  * diff.c
  * git.c
  * imap-send.c
  * list-objects-filter.c
  * merge-ort.c
  * object-file.c
  * pack-bitmap.c
  * promisor-remote.c
  * remote.c
  * replay.c
  * setup.c
  * sequencer.c
  * transport-helper.c
  * usage.c
  * git-send-email.perl

Translate following new components:

  * commit-reach.c
  * fetch-object-info.c
  * odb.c
  * odb/source-files.c
  * odb/transaction.c
  * odb/transaction.h

Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
2026-09-27 17:09:37 +08:00
Jiang Xin 54c2884e8b l10n: AGENTS.md: zsh-safe review result cleanup
The review_one_batch() function cleans up stale po/review-result*.json
files before starting a new review. On zsh, an unmatched glob causes a
"no matches found" error and aborts the command, because NOMATCH is on
by default.

Fix by enabling null_glob locally when running under zsh. This leaves
bash and other POSIX shells unaffected, since $ZSH_VERSION is unset
there.

Only the cleanup step in review_one_batch() is changed; no other
behavior is affected.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2026-09-27 15:57:52 +08:00
Jiang Xin ab902cf3aa l10n: AGENTS.md: use JSON intermediates in workflow
Make/l10n compiles every po/*.po file. The AGENTS.md workflow keeps its
intermediate files in po/, so any .po file written there can be picked
up by a normal `make` run and cause build failures. Switch the workflow
to use GETTEXT JSON for pending/input/review work files instead of PO,
and rename the remaining PO scratch file to l10n-done.po.tmp so
Make/l10n ignores it.

This only affects the helper scripts documented in po/AGENTS.md.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2026-09-27 15:57:52 +08:00
Jiang Xin 312e271fcb l10n: AGENTS.md: count PO entries with git-po-helper stat -c
grep -c on msgid lines only works for PO text, not GETTEXT JSON. When
workflow intermediates move from PO to JSON, that count breaks. Use
stat -c instead; it also excludes the header, so ENTRY_COUNT - 1 is
unnecessary.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2026-09-27 15:57:52 +08:00
Jiang Xin b2bc011edd l10n: AGENTS.md: require git-po-helper >= 0.9.1
Task 3 claimed a gettext-only fallback, but validation already needs
git-po-helper, and the awk|tac batch path fails on systems without tac.
Require the helper for Tasks 3 and 4, drop the unused msgattrib/PO
paths, and point agents at msg-select (with msgattrib still noted as an
option).

Pin to git-po-helper >= 0.9.1 to rely on new helper features: version
comparison for the minimum version check, and `git-po-helper stat -c`
used by the next commit to count PO entries.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2026-09-27 15:57:51 +08:00
Jiang Xin b758bc5bc4 l10n: AGENTS.md: fix counter fallbacks
Reading a counter with "cmd || echo 0" breaks whenever the command
writes output but still exits non-zero. On zero matches, "grep -c"
prints 0 and exits with status 1, so the command substitution
captured two zeros and the arithmetic that follows failed with a
syntax error instead of evaluating to 0.

Fix by ignoring the exit status with "|| true" and defaulting the
empty value with "${VAR:-0}". Apply this to ENTRY_COUNT in both
l10n_one_batch() and review_one_batch(), and to the BATCH counter
read from po/review-batch.txt, which used the same fragile fallback.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2026-09-27 15:57:51 +08:00
René Scharfe ebc067f3cc dir: skip excluded directory with nested repo on prefix match
95c11ecc73 (Fix error-prone fill_directory() API; make it only return
matches, 2020-04-01) optimized away pathspec matching too eagerly and
cada7308ad (dir: check pathspecs before returning `path_excluded`,
2020-07-20) fixed that for files and symlinks.

A corner case remained unaddressed: Ignored directories that contain a
nested repository.  Make sure to run match_pathspec_with_flags() for it
if necessary.

Add a status test to check whether the pathspec is applied correctly as
well as a checkout test to exercise the changed code without a pathspec.

Reported-by: Sean Whitton <spwhitton@spwhitton.name>
Reported-by: Lester Longley <lester@ieee.org>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-09-26 21:45:11 -07:00
Tamir Duberstein c694fc2ab7 ci: align job counts across CI providers
GitHub Actions sets JOBS to ten regardless of runner size, while
GitLab CI uses the detected CPU count. Use the CPU count for Make and
prove on both providers, selecting JOBS after the operating system
is identified.

Use nproc on Linux and NUMBER_OF_PROCESSORS on Windows. On macOS, use
sysctl to avoid requiring nproc before the dependency installer has run;
GitHub macOS images need not provide GNU coreutils.

Assisted-by: LLM
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-09-25 12:49:35 -07:00
Tamir Duberstein 73072c5dcb t4205: compare huge output without diff
The huge-commit test compares output containing a line larger than 2 GiB.
For two identical files containing 2,147,483,649 "1" bytes followed by
"0\n", GNU diffutils 3.8 on Linux arm64 gives these measurements:

  Command               Mean +/- stddev       Maximum RSS (KiB)
  diff -u expect actual  5.276 +/- 0.572 s              4199924
  cmp expect actual      0.506 +/- 0.099 s                 1264

The test needs only an equality check. Use test_cmp_bin, which runs cmp,
to compare the output byte for byte with less time and memory.

Assisted-by: LLM
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-09-25 12:49:31 -07:00
Yoichi NAKAYAMA f6f2cf39ea completion: complete 'git worktree repair'
The completion scripts do not complete the "repair" subcommand for
git-worktree(1). Add support for it.

Signed-off-by: Yoichi NAKAYAMA <yoichi.nakayama@gmail.com>
Acked-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-09-25 11:35:32 -07:00
Julia Evans 2fc11e3382 doc: add more AsciiDoc cross-references
Instead of saying "see EXAMPLES below", say "see <<EXAMPLES,EXAMPLES>>
below" to make the man pages easier to navigate on the web.

The reason for using the more verbose <<EXAMPLES,EXAMPLES>>
(instead of <<EXAMPLES>>) is that in some cases, <<EXAMPLES>> is
rendered as `the section called "EXAMPLES"` or `[EXAMPLES]`.
<<EXAMPLES,EXAMPLES>> is rendered as `EXAMPLES`, which gives us more
control over the output.

This also changes some of the HTML IDs of the headings from `_examples`
to `EXAMPLES`, which has the potential to break some links.

Signed-off-by: Julia Evans <julia@jvns.ca>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-09-25 09:11:18 -07:00
Johannes Schindelin 64172cf117 ci: work around Debian 12's HTTP/2 authentication failures
Since 00fa850235 (ci: bump debian-11 job to debian-12, 2026-09-05), the
`debian-12` job has intermittently failed t5559's half-auth clone with:

  curl 92 Stream error in the HTTP/2 framing layer

Anonymous discovery succeeds, but the upload-pack POST requires
authentication. Apache can return an early 401 and close the HTTP/2
stream before libcurl finishes sending the request body. Debian 12's
curl 7.88.1 treats that closure as a transport error instead of allowing
an authentication retry. Curl fixed this handling in 331b89a319d0
(http2: polish things around POST), included in 8.3.0:
https://github.com/curl/curl/pull/11756

This did not happen before switching to Debian 12 because Debian 11
ships with libcurl 7.74.0-1.3+deb11u16, which does not have that bug, it
was only introduced in cURL 7.88.0.

Replacing the packaged libcurl with a modern build would defeat this
job's purpose of testing older supported distributions. So let's simply
skip the flaky test cases when a buggy libcurl version is detected.

Assisted-by: GPT-6 Astra, GPT-6 Sol
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-09-24 15:05:37 -07:00