summaryrefslogtreecommitdiffstats
path: root/Documentation
AgeCommit message (Collapse)AuthorLines
12 daysdoc: fix grammar errors in submodule descriptionHEADmastermainElijah Newren-5/+5
6cc6d1b4c699 (Documentation: update add --force option + ignore=all config, 2026-02-06) added text describing both the ignore=none and ignore=all behaviors. The former had minor formatting and grammatical errors, while the latter was a bit garbled. I have tried to tweak the wording on the latter to make it read as I think was intended, and fixed the minor grammatical issues with both as well. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 daysdoc: fix singular/plural mismatch in git-rerereElijah Newren-1/+1
conflict -> conflicts Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 daysdoc: fix plural agreement in pack.preferBitmapTipsElijah Newren-1/+1
hierarchies -> hierarchy Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 daysdoc: fix self-referential config in sendemail.smtpSSLClientKeyElijah Newren-1/+1
a8215a205141 (send-email: add client certificate options, 2026-03-02) added documentation for sendemail.smtpSSLClientKey that says it works "in conjunction with `sendemail.smtpSSLClientKey`" -- referring to itself. It appears that `sendemail.smtpSSLClientCert` was the intended reference; fix it. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 daysCodingGuidelines: fix subject-verb agreementElijah Newren-1/+1
Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 daysRelNotes/2.54.0: fix typos and grammarElijah Newren-10/+10
Fix various issues in the release notes -- missing/wrong articles, typo, indentation, quote consistency, and wording improvement or corrections. Other than the indentation fix for "The way combined list-object filter options...", this patch is much easier to view with --color-words. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 daysMerge branch 'jk/midx-write-v1-by-default'Junio C Hamano-0/+3
As writing version 2 MIDX files by default breaks older versions of Git and its reimplementations, use V2 only when necessary. * jk/midx-write-v1-by-default: MIDX: revert the default version to v1
13 daysMIDX: revert the default version to v1Jeff King-0/+3
We introduced midx version 2 in b2ec8e90c2 (midx: do not require packs to be sorted in lexicographic order, 2026-02-24) and now write it by default. The rationale was that older versions should ignore the v2 midx and fall back to using the packs (just like we do for other midx errors). Unfortunately this is not the case, as we have a hard die() when we see an unknown midx version. As a result, writing a midx with Git 2.54-rc2 puts the repository into a state that is unusable with Git 2.53. And this midx write may happen behind the scenes as part of normal operations, like fetch. Let's switch back to writing v1 by default to avoid regressing the case where multiple versions of Git are used on the same repository. There is one gotcha, though: the v2 format is required for some new features, like midx compaction, and running "git multi-pack-index compact" will complain when asked to write a v1 index. The user must set midx.version to "2" to make the feature work. So instead of always using v1, we'll base the default on whether the requested feature requires v2. That does mean that running midx compaction will create a repository that can't be read by older versions of Git. But we never do that by default; only people experimenting with the new feature will be affected. We have to adjust the test expectation in t5319, since it will now generate v1 files. And our "auto-select v2" is covered by the tests in t5335, which continue to check that compaction works without having to set midx.version manually (and also explicitly check that asking for v1 with compaction reports the problem). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-13Hopefully the final tweak before -rc2Junio C Hamano-0/+6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-13Merge branch 'jk/doc-markup-sub-list-indentation'Junio C Hamano-0/+6
Doc mark-up update for entries in the glossary with bulleted lists. * jk/doc-markup-sub-list-indentation: gitglossary: fix indentation of sub-lists
2026-04-13Merge branch 'kh/doc-am-xref'Junio C Hamano-6/+5
Doc update. * kh/doc-am-xref: doc: am: correct to full --no-message-id doc: am: revert Message-ID trailer claim
2026-04-13gitglossary: fix indentation of sub-listsJeff King-0/+6
The glossary entry is a list of terms and their definitions, so multi-paragraph definitions need "+" continuation lines to indicate that they are part of a single entry. When an entry contains a sub-list (say, a bulleted list), the final "+" may become ambiguous: is it connecting the next paragraph to the final entry of the sub-list, or to the original list of definition paragraphs? Asciidoc generally connects it to the former, even when we mean the latter, and you end up with the next paragraph indented incorrectly, like this: glob ...defines glob... Two consecutive asterisks ("**") in patterns matched against full pathname may have special meaning: - ...some special meaning of **... - ...another special meaning of **... - Other consecutive asterisks are considered invalid. Glob magic is incompatible with literal magic. That final "Glob magic is incompatible" paragraph is in the wrong spot. It should be at the same level as "Two consecutive asterisks", as it is not part of the final "Other consecutive asterisks" bullet point. The same problem appears in several other spots in the glossary. Usually we'd fix this by using "--" markers, which put the sub-list into its own block. But there's a catch: in some of these spots we are already in an open block, and nesting open blocks is a problem. It seems to work for me using Asciidoc 10.2.1, but Asciidoctor 2.0.26 makes a mess of it (our intent to open a new block seems to close the old one). Fortunately there's a work-around: when using a "+" list-continuation, the number of empty lines above the continuation indicates which level of parent list to continue. So by adding an empty line after our unordered list (before the "+"), we should be able to continue the definition list item. But asciidoc being asciidoc, of course that is not the end of the story. That technique works fine for the "glob" and "attr" lists in this patch, but under the "refs" item it works for only 1 of the 2 lists! I can't figure out why, and this may be an asciidoctor bug. But we can work around it by using "--" open-block markers here, since we're not already in an open block. So using the extra blank line for the first two instances, and "--" markers for the second two, this patch produces identical output from "doc-diff HEAD^ HEAD" for both --asciidoctor and --asciidoc modes. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-13doc: am: correct to full --no-message-idKristoffer Haugsbakk-1/+1
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-13doc: am: revert Message-ID trailer claimKristoffer Haugsbakk-5/+4
I claimed in 3c18135b (doc: am: say that --message-id adds a trailer, 2026-02-09) that `git am --message-id` adds a Git trailer. But that isn’t the case; for the case of a commit message with a subject, body, and no trailer block: <subject> <paragrah> It just appends the line right after `paragraph`: <subject> <paragraph> Message-ID: <message-id_trailer.323@msgid.xyz> It does work for two other cases though, namely subject-only and with an existing trailer block. This is at best an inconsistency and arguably a bug, but we’re at the trailing end of the release cycle now. So reverting the doc is safer than making msg-id act as a trailer, for now. Revert this hunk from commit 3c18135b except the only useful change (“Also use inline-verbatim for `Message-ID`”). Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-10Merge branch 'ps/archive-prefix-doc'Junio C Hamano-0/+5
Doc update. * ps/archive-prefix-doc: archive: document --prefix handling of absolute and parent paths
2026-04-10Merge branch 'bc/ref-storage-default-doc-update'Junio C Hamano-3/+8
Doc update. * bc/ref-storage-default-doc-update: docs: correct information about reftable
2026-04-10rust: we are way beyond 2.53Junio C Hamano-1/+1
Earlier we timelined that we'd tune our build procedures to build with Rust by default in Git 2.53, but we are already in prerelease freeze for 2.54 now. Update the BreakingChanges document to delay it until Git 2.55 (slated for the end of June 2026). Noticed-by: brian m. carlson <sandals@crustytoothpaste.net> Helped-by: Derrick Stolee <stolee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-09A bit more for -rc2Junio C Hamano-0/+11
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-09Merge branch 'kh/doc-config-list'Junio C Hamano-7/+6
"git config list" is the official way to spell "git config -l" and "git config --list". Use it to update the documentation. * kh/doc-config-list: doc: gitcvs-migration: rephrase “man page” doc: replace git config --list/-l with `list`
2026-04-08archive: document --prefix handling of absolute and parent pathsPushkar Singh-0/+5
Clarify that --prefix is used as given and is not normalized, and may include leading slashes or parent directory components. Signed-off-by: Pushkar Singh <pushkarkumarsingh1970@gmail.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-08A bit more post -rc1Junio C Hamano-0/+6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-08Merge branch 'tc/replay-ref'Junio C Hamano-12/+33
The experimental `git replay` command learned the `--ref=<ref>` option to allow specifying which ref to update, overriding the default behavior. * tc/replay-ref: replay: allow to specify a ref with option --ref replay: use stuck form in documentation and help message builtin/replay: mark options as not negatable
2026-04-08Merge branch 'ps/odb-cleanup'Junio C Hamano-0/+12
Various code clean-up around odb subsystem. * ps/odb-cleanup: odb: drop unneeded headers and forward decls odb: rename `odb_has_object()` flags odb: use enum for `odb_write_object` flags odb: rename `odb_write_object()` flags treewide: use enum for `odb_for_each_object()` flags CodingGuidelines: document our style for flags
2026-04-08docs: correct information about reftablebrian m. carlson-3/+8
Our description of the reftable format is that it is experimental and subject to change, but that is no longer true. Remove this statement so as not to mislead users. In addition, the documentation says that the files format is the default, but that is not true if breaking changes mode is on. Correct this information with a conditional. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-07A bit more before -rc1Junio C Hamano-0/+31
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-07Merge branch 'jt/fast-import-signed-modes'Junio C Hamano-4/+5
Handling of signed commits and tags in fast-import has been made more configurable. * jt/fast-import-signed-modes: fast-import: add 'abort-if-invalid' mode to '--signed-tags=<mode>' fast-import: add 'sign-if-invalid' mode to '--signed-tags=<mode>' fast-import: add 'strip-if-invalid' mode to '--signed-tags=<mode>' fast-import: add 'abort-if-invalid' mode to '--signed-commits=<mode>' fast-export: check for unsupported signing modes earlier
2026-04-07Merge branch 'mm/line-log-use-standard-diff-output'Junio C Hamano-0/+4
The way the "git log -L<range>:<file>" feature is bolted onto the log/diff machinery is being reworked a bit to make the feature compatible with more diff options, like -S/G. * mm/line-log-use-standard-diff-output: doc: note that -L supports patch formatting and pickaxe options t4211: add tests for -L with standard diff options line-log: route -L output through the standard diff pipeline line-log: fix crash when combined with pickaxe options
2026-04-06A handful before -rc1Junio C Hamano-0/+20
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-06Merge branch 'qb/doc-git-stash-push-optionality'Junio C Hamano-6/+4
Doc update. * qb/doc-git-stash-push-optionality: docs: fix "git stash [push]" documentation
2026-04-06Merge branch 'sp/doc-gitignore-oowt'Junio C Hamano-0/+5
Doc update. * sp/doc-gitignore-oowt: doc: gitignore: clarify pattern base for info/exclude and core.excludesFile
2026-04-06Merge branch 'tb/stdin-packs-excluded-but-open'Junio C Hamano-7/+18
pack-objects's --stdin-packs=follow mode learns to handle excluded-but-open packs. * tb/stdin-packs-excluded-but-open: repack: mark non-MIDX packs above the split as excluded-open pack-objects: support excluded-open packs with --stdin-packs t7704: demonstrate failure with once-cruft objects above the geometric split pack-objects: refactor `read_packs_list_from_stdin()` to use `strmap` pack-objects: plug leak in `read_stdin_packs()`
2026-04-06doc: gitcvs-migration: rephrase “man page”Kristoffer Haugsbakk-2/+1
Let’s change the phrasing around the `linkgit` while we’re visiting this file (see previous commit[1]). We use the section syntax to refer to man pages, so writing “man page” next to it is a bit redundant. We can be more concise and just lean on the preposition “in”. And in order to avoid this double “git”: see `git config list` in git-config(1) ... We can rephrase to the subcommand, which is a typical pattern (config or option followed by “in git-command(1)”). † 1: Which also discusses why we do not change a similar phrasing in gittutorial(7) Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-06doc: replace git config --list/-l with `list`Kristoffer Haugsbakk-6/+6
Replace uses of `git config --list` (short or long) with the subcommand `list` since `--list` is deprecated. We will change the “man page” phrasing in gitcvs-migration(7) in the next commit, since we are already visiting that sentence. But note that we leave the “man page” phrasing in the sentence that we touch in gittutorial(7) since it’s a tutorial and not a manual page. We can be more wordy in a tutorial context. Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-03A couple more on top of -rc0Junio C Hamano-0/+6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-03A bit more on top of 2.54-rc0Junio C Hamano-0/+11
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-03Merge branch 'sa/replay-revert'Junio C Hamano-8/+44
"git replay" (experimental) learns, in addition to "pick" and "replay", a new operating mode "revert". * sa/replay-revert: replay: add --revert mode to reverse commit changes sequencer: extract revert message formatting into shared function
2026-04-03Merge branch 'ar/config-hook-cleanups'Junio C Hamano-22/+35
Code clean-up around the recent "hooks defined in config" topic. * ar/config-hook-cleanups: hook: reject unknown hook names in git-hook(1) hook: show disabled hooks in "git hook list" hook: show config scope in git hook list hook: introduce hook_config_cache_entry for per-hook data t1800: add test to verify hook execution ordering hook: make consistent use of friendly-name in docs hook: replace hook_list_clear() -> string_list_clear_func() hook: detect & emit two more bugs hook: rename cb_data_free/alloc -> hook_data_free/alloc hook: fix minor style issues builtin/receive-pack: properly init receive_hook strbuf hook: move unsorted_string_list_remove() to string-list.[ch]
2026-04-03Merge branch 'ds/backfill-revs'Junio C Hamano-1/+4
`git backfill` learned to accept revision and pathspec arguments. * ds/backfill-revs: t5620: test backfill's unknown argument handling path-walk: support wildcard pathspecs for blob filtering backfill: work with prefix pathspecs backfill: accept revision arguments t5620: prepare branched repo for revision tests revision: include object-name.h
2026-04-03Merge branch 'mf/format-patch-commit-list-format-doc'Junio C Hamano-13/+13
Doc updates. * mf/format-patch-commit-list-format-doc: format-patch: removing unconditional wrapping docs: fix --commit-list-format related entries
2026-04-03Merge branch 'mf/format-patch-commit-list-format'Junio C Hamano-10/+15
Improve the recently introduced `git format-patch --commit-list-format` (formerly `--cover-letter-format`) option, including a new "modern" preset and better CLI ergonomics. * mf/format-patch-commit-list-format: format-patch: --commit-list-format without prefix format-patch: add preset for --commit-list-format format-patch: wrap generate_commit_list_cover() format.commitListFormat: strip meaning from empty docs/pretty-formats: add %(count) and %(total) format-patch: rename --cover-letter-format option format-patch: refactor generate_commit_list_cover pretty.c: better die message %(count) and %(total)
2026-04-03Merge branch 'mf/format-patch-cover-letter-format'Junio C Hamano-0/+18
"git format-patch --cover-letter" learns to use a simpler format instead of the traditional shortlog format to list its commits with a new --cover-letter-format option and format.commitListFormat configuration variable. * mf/format-patch-cover-letter-format: docs: add usage for the cover-letter fmt feature format-patch: add commitListFormat config format-patch: add ability to use alt cover format format-patch: move cover letter summary generation pretty.c: add %(count) and %(total) placeholders
2026-04-01replay: allow to specify a ref with option --refToon Claes-1/+21
When option '--onto' is passed to git-replay(1), the command will update refs from the <revision-range> passed to the command. When using option '--advance' or '--revert', the argument of that option is a ref that will be updated. To enable users to specify which ref to update, add option '--ref'. When using option '--ref', the refs described above are left untouched and instead the argument of this option is updated instead. Because this introduces code paths in replay.c that jump to `out` before init_basic_merge_options() is called on `merge_opt`, zero-initialize the struct. Signed-off-by: Toon Claes <toon@iotcl.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-01replay: use stuck form in documentation and help messageToon Claes-12/+13
gitcli(7) suggests to use stuck form. Change the documentation strings to use this form. While at it, reorder them to match the order in the docs. Signed-off-by: Toon Claes <toon@iotcl.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-01RelNotes: minor typo fixes in 2.54.0 draftTodd Zullinger-2/+2
Signed-off-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-01The 24th batchJunio C Hamano-0/+25
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-04-01Merge branch 'vp/http-rate-limit-retries'Junio C Hamano-0/+26
The HTTP transport learned to react to "429 Too Many Requests". * vp/http-rate-limit-retries: http: add support for HTTP 429 rate limit retries strbuf_attach: fix call sites to pass correct alloc strbuf: pass correct alloc to strbuf_attach() in strbuf_reencode()
2026-03-31CodingGuidelines: document our style for flagsPatrick Steinhardt-0/+12
We have recently iterated a bit on our style for flags. Document this. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-03-30The 23rd batchJunio C Hamano-0/+14
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-03-30docs: fix "git stash [push]" documentationQuentin Bernet-6/+4
Both the synopsis and explanation are incorrect and contradict each other. The synopsis claims "push" can only be omitted when you do not give any options and arguments. The explanation correctly claims that non-option arguments are not allowed, except pathspec elements preceded by double hyphens. But it also adds "-p" to the list of exceptions, even though it is an option argument. Signed-off-by: Quentin Bernet <quentin.bernet@bluewin.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-03-28doc: gitignore: clarify pattern base for info/exclude and core.excludesFileShreyansh Paliwal-0/+5
The pattern format section describes how patterns are interpreted relative to the location of a .gitignore file, but does not mention the behavior for exclude sources outside the working tree. Clarify that patterns from $GIT_DIR/info/exclude and core.excludesFile are treated as if they are specified at the root of the working tree, so a leading '/' anchors matches at the repository root. Reported-by: Dan Drake <dan@dandrake.org> Signed-off-by: Shreyansh Paliwal <shreyanshpaliwalcmsmn@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>