git/Documentation
Michael Montalbo 91c8989d4e diff: consult oid-only hunk providers via diff.<driver>.process
The provider chain so far holds the diff-hunks store in front of the
terminal builtin computation.  Open it to external processes: a pair on
a path whose driver configures diff.<driver>.process is answered by a
long-running process speaking a pkt-line protocol (following the filter
process protocol), registered at the head of the chain and consulted
before the store and before any blob is loaded.

The protocol starts with the smallest request that can carry an answer:
object names alone.  A request is the pathname and the pair's
old-oid/new-oid, with no content.  The process answers with hunk lines,
with a zero-hunk success that asserts the blobs equivalent (trailing
newlines included), or with status=need-content, on which the pair
falls through to the builtin answer.  This serves the two shapes that
need no content pushed to them: a cache keyed on the blob pair, and a
process that fetches the blobs itself (for example over "git cat-file
--batch").  A pair whose side is not a stored blob carries a NULL id;
the provider sends no request and passes it.  Because Git holds no
content for the exchange, the answer is used as sent: hunks are
validated for order, overlap, lockstep alignment, and magnitude, then
replayed without the normalization xdiff applies to diffs it computes
itself.  The magnitude bound is the blobs' sizes, read from the object
database without loading content: a blob of N bytes holds at most N
lines.

Because the process's answer is authoritative, it outranks the store,
and its head-of-chain position says so.  A pair the process answers
never reaches the store and is never recorded, so nothing it produces
enters the store, which holds the builtin answer only.  A request it
does not answer, whether need-content, a missing capability, or a
missing id, passes down the chain to the builtin answer, which is what
the store serves, so the store may serve such a pair and a warming run
may record it.  Entries recorded before a process was configured are
not purged; a pair the process answers ignores them, and "git diff-hunks
clear" discards them.

The provider gates itself per request.  The driver is looked up by the
old-side path, so a renamed file resolves to the same driver, and by
the repository-relative path, so a diff.relative run from a
subdirectory names the pair the same way.  Options the process is never
told about select no process: the whitespace-ignoring options, -I,
--anchored, and an algorithm forced by option or configuration (blame
routes its algorithm through xdl_opts, so --histogram is covered).  The
request gains its last field, the path; the consumers change only by
filling it, and neither names the process.

The provider's state is its repository's pool of running processes,
keyed by the configured command, so drivers sharing a command share a
process, a submodule speaks to its own, and releasing the provider
(from repo_clear()) stops them.  The pool owns a copy of each command
string, so an entry outlives a config re-read.  A command that fails
stays as an entry that is not retried: its request and every later one
pass, so the store may serve the path for the rest of the command.

A protocol error in a response never kills the command.  The response
is read through a packet reader gentle about framing, so an error takes
one path: a single warning, the process stopped and marked failed, and
the builtin diff for the rest of the command.  That covers garbage
bytes, a truncated response, an empty packet, a bare status, and an
unrecognized status.  Semantically invalid coordinates cost only their
pair: the response is drained, the pair is computed, and the process
stays alive.  A path the protocol cannot carry (an embedded newline, or
one too long for a packet) falls back per path rather than costing the
command its process.  The handshake keeps one fatal check: a process
that announces a capability Git did not request aborts the command, as
the long-running filter protocol does.

Consulting is allowed per command, following the allow_textconv
precedent.  "git diff", "git log" and "git show", and "git blame" set
allow_diff_process; the plumbing diff commands and the interactive-patch
machinery never set it, so scripted and staging output stays builtin.
The options adjust the flag:

- --no-ext-diff clears it and --ext-diff sets it;
- --diff-process and --no-diff-process set and clear it alone, leaving
  external diff drivers as they were;
- format-patch clears it unconditionally, so a generated patch applies
  for recipients without the process;
- range-diff passes --no-ext-diff to the "git log" it compares.

git blame and the summary formats consult the process.  For blame, a
pair reported equivalent emits no hunks, so the whole commit passes to
its parent.  In the stat formats such a pair sums to a zero-count entry,
which the "nothing changed" rule omits, as under -w.  The subprocess is
long-running: one startup cost across a traversal, one round-trip per
consulted pair.  Answers travel in struct xdl_hunk, new in
xdiff-interface.h, holding xdiff's 1-based coordinates; nothing feeds
them back to xdiff, since only coordinate consumers consult.

A content-carrying request is the natural extension: it would serve
sides that are not stored blobs and processes that want content pushed
to them, and bring patch output and log -L's range tracking to the same
answer.  As it stands, a process's answers show in blame and the summary
formats while patch output stays builtin.

t4080 exercises the protocol, the per-command gate, and the error paths:

- each adversarial response shape warns and falls back to builtin, the
  request log proving which failures disable the process and which keep
  it alive (a malformed hunk line, coordinates past the blob size, a
  count overflowing strtol(), overlapping or misaligned hunks, an
  unrecognized status, a bare status, an empty packet, a mid-response
  crash, and raw garbage);
- a capability-less process and status=abort degrade without noise, and
  a failed start warns once and returns the path to the store;
- a trailing token on a hunk line is ignored, pinning field
  appendability;
- positive consults for git diff, git show, and diff-tree under
  --ext-diff and --diff-process; textconv output and gitlink sides are
  never identified; a diff.relative run consults by the repo-relative
  path;
- the equivalence answer is pinned from both consumers, and a warming
  run past a deferring process records the pair for a later read.

Helped-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Michael Montalbo <mmontalbo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-08-01 15:09:52 -07:00
..
RelNotes The 7th batch 2026-07-22 10:30:55 -07:00
config diff: consult oid-only hunk providers via diff.<driver>.process 2026-08-01 15:09:52 -07:00
howto meson: make GIT_HTML_PATH configurable 2025-11-06 09:58:56 -08:00
includes doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
mergetools doc: check well-formedness of delimited sections 2025-08-11 14:16:03 -07:00
technical Merge branch 'ak/typofixes' 2026-06-15 07:42:00 -07:00
.gitignore Remove obsolete ".txt" extensions for AsciiDoc files 2025-01-21 12:56:10 -08:00
BreakingChanges.adoc safe.bareRepository: default to "explicit" with WITH_BREAKING_CHANGES 2026-04-27 14:50:54 +09:00
CodingGuidelines Merge branch 'jc/doc-timestamps-in-stat' 2026-05-11 10:05:54 +09:00
DecisionMaking.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
Makefile diff-hunks: add the store format, library, and command 2026-08-01 15:09:51 -07:00
MyFirstContribution.adoc Merge branch 'wy/doc-myfirstcontribution-trim-quotes' 2026-07-19 10:42:18 -07:00
MyFirstObjectWalk.adoc Merge branch 'jc/you-still-use-whatchanged' 2025-06-25 14:07:35 -07:00
ReviewingGuidelines.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
SubmittingPatches Merge branch 'jc/submitting-patches-abandoning' 2026-07-19 10:42:16 -07:00
ToolsForGit.adoc doc: add a blank line around block delimiters 2025-03-10 09:58:06 -07:00
asciidoc.conf.in doc: convert git-bisect to synopsis style 2026-05-25 20:05:44 +09:00
asciidoctor-extensions.rb.in doc: git-log: convert rev list options to new doc format 2025-07-07 13:45:00 -07:00
blame-options.adoc doc: blame-options: convert to new doc format 2026-01-09 06:15:31 -08:00
build-docdep.perl doc: fix build-docdep.perl 2025-03-01 10:26:15 -08:00
cat-texi.perl
cmd-list.sh Documentation: stop depending on Perl to generate command list 2025-04-16 07:30:30 -07:00
config.adoc diff-hunks: add the store format, library, and command 2026-08-01 15:09:51 -07:00
date-formats.adoc doc: document and test `@` prefix for raw timestamps 2026-06-02 18:13:12 +09:00
diff-algorithm-option.adoc diff: consult oid-only hunk providers via diff.<driver>.process 2026-08-01 15:09:52 -07:00
diff-context-options.adoc diff: document -U without <n> as using default context 2026-03-10 06:17:59 -07:00
diff-format.adoc diff-format.adoc: mode and hash are 0* for unmerged paths from index only 2026-05-16 22:21:37 +09:00
diff-generate-patch.adoc Merge branch 'ma/doc-diff-cc-headers' 2025-06-18 13:53:34 -07:00
diff-options.adoc diff: consult oid-only hunk providers via diff.<driver>.process 2026-08-01 15:09:52 -07:00
doc-diff
docbook-xsl.css
docbook.xsl
docinfo-html.in
everyday.adoco doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
fetch-options.adoc Merge branch 'wy/docs-typofixes' 2026-06-16 09:01:03 -07:00
fix-texi.sh Documentation: stop depending on Perl to massage user manual 2025-04-16 07:30:29 -07:00
for-each-ref-options.adoc doc: fix some style issues in git-clone and for-each-ref-options 2026-02-05 21:14:05 -08:00
format-patch-caveats.adoc doc: convert git-am synopsis and options to new style 2026-05-25 20:05:44 +09:00
format-patch-end-of-commit-message.adoc doc: convert git-am synopsis and options to new style 2026-05-25 20:05:44 +09:00
fsck-msgids.adoc builtin/fsck: move generic HEAD check into `refs_fsck()` 2026-01-12 06:55:41 -08:00
generate-mergetool-list.sh
git-add.adoc Documentation: update add --force option + ignore=all config 2026-02-06 09:43:26 -08:00
git-am.adoc doc: convert git-am synopsis and options to new style 2026-05-25 20:05:44 +09:00
git-annotate.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-apply.adoc doc: convert git-apply synopsis and options to new style 2026-05-25 20:05:44 +09:00
git-archimport.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-archive.adoc archive: document --prefix handling of absolute and parent paths 2026-04-08 11:13:52 -07:00
git-backfill.adoc pack-objects: support sparse:oid filter with path-walk 2026-05-24 18:41:06 +09:00
git-bisect-lk2009.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-bisect.adoc doc: git bisect: clarify the usage of the synopsis vs actual command 2026-05-25 20:05:44 +09:00
git-blame.adoc blame: reserve mark column only if necessary 2026-07-06 07:34:48 -07:00
git-branch.adoc doc: branch: fix inline-verbatim 2025-05-05 10:48:07 -07:00
git-bugreport.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-bundle.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-cat-file.adoc cat-file: add mailmap subcommand to --batch-command 2026-04-15 20:42:08 -07:00
git-check-attr.adoc doc: check for absence of multiple terms in each entry of desc list 2025-08-11 14:16:04 -07:00
git-check-ignore.adoc doc: check for absence of multiple terms in each entry of desc list 2025-08-11 14:16:04 -07:00
git-check-mailmap.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-check-ref-format.adoc doc: check for absence of the form --[no-]parameter 2025-08-11 14:16:04 -07:00
git-checkout-index.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-checkout.adoc checkout -m: autostash when switching branches 2026-04-29 21:46:03 +09:00
git-cherry-pick.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-cherry.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-citool.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-clean.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-clone.adoc Merge branch 'cc/lop-filter-auto' 2026-02-25 11:54:17 -08:00
git-column.adoc doc: column: fix blank lines around block delimiters 2025-06-01 17:20:16 -07:00
git-commit-graph.adoc doc: add caveat about turning off commit-graph 2026-05-08 10:22:33 +09:00
git-commit-tree.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-commit.adoc doc: commit: link to git-status(1) on all format options 2025-11-14 08:56:35 -08:00
git-config.adoc doc: git-config: escape erroneous highlight markup 2026-06-11 12:08:17 -07:00
git-count-objects.adoc Merge branch 'ds/doc-count-objects-fix' into maint-2.51 2025-10-14 13:40:54 -07:00
git-credential-cache--daemon.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-credential-cache.adoc Merge branch 'bc/doc-adoc-not-txt' 2025-02-14 17:53:47 -08:00
git-credential-store.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-credential.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-cvsexportcommit.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-cvsimport.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-cvsserver.adoc doc: add a blank line around block delimiters 2025-03-10 09:58:06 -07:00
git-daemon.adoc git-daemon doc: update mark-up of synopsis option descriptions 2025-05-12 09:25:26 -07:00
git-describe.adoc doc: convert git-describe manual page to synopsis style 2026-04-06 09:38:19 -07:00
git-diagnose.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-diff-files.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-diff-hunks.adoc diff-hunks: add the store format, library, and command 2026-08-01 15:09:51 -07:00
git-diff-index.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-diff-pairs.adoc builtin/diff-pairs: allow explicit diff queue flush 2025-03-03 08:17:47 -08:00
git-diff-tree.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-diff.adoc diff --no-index: support limiting by pathspec 2025-05-22 14:20:11 -07:00
git-difftool.adoc doc: convert git-difftool manual page to synopsis style 2026-04-06 09:38:18 -07:00
git-fast-export.adoc fast-export: standardize usage string and SYNOPSIS 2026-07-13 08:54:29 -07:00
git-fast-import.adoc fast-import: add 'strip-if-invalid' mode to '--signed-tags=<mode>' 2026-03-26 12:42:57 -07:00
git-fetch-pack.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-fetch.adoc doc: convert git fetch to synopsis style 2025-11-19 15:00:37 -08:00
git-filter-branch.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-fmt-merge-msg.adoc doc: check for absence of the form --[no-]parameter 2025-08-11 14:16:04 -07:00
git-for-each-ref.adoc Merge branch 'ja/doc-lint-sections-and-synopsis' 2025-08-25 14:22:02 -07:00
git-for-each-repo.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-format-patch.adoc Documentation: remove redundant 'instead' in --subject-prefix 2026-06-05 22:44:36 +09:00
git-format-rev.adoc docs: fix typos 2026-06-05 22:27:24 +09:00
git-fsck-objects.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-fsck.adoc doc: check for absence of the form --[no-]parameter 2025-08-11 14:16:04 -07:00
git-fsmonitor--daemon.adoc fsmonitor: implement filesystem change listener for Linux 2026-04-15 08:44:33 -07:00
git-gc.adoc doc: check for absence of the form --[no-]parameter 2025-08-11 14:16:04 -07:00
git-get-tar-commit-id.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-grep.adoc doc: convert git-grep synopsis and options to new style 2026-05-25 20:05:44 +09:00
git-gui.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-hash-object.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-help.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-history.adoc builtin/history: implement "drop" subcommand 2026-07-03 10:32:47 -07:00
git-hook.adoc doc: hook: don’t self-link via config include 2026-05-22 09:36:20 +09:00
git-http-backend.adoc Merge branch 'ps/doc-http-upload-archive-service' 2025-02-14 17:53:49 -08:00
git-http-fetch.adoc doc: check for absence of multiple terms in each entry of desc list 2025-08-11 14:16:04 -07:00
git-http-push.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-imap-send.adoc doc: convert git-imap-send synopsis and options to new style 2026-05-25 20:05:45 +09:00
git-index-pack.adoc doc: check for absence of the form --[no-]parameter 2025-08-11 14:16:04 -07:00
git-init-db.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-init.adoc breaking-changes: switch default branch to main 2025-09-10 13:34:58 -07:00
git-instaweb.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-interpret-trailers.adoc doc: interpret-trailers: normalize and fill out options 2026-03-16 15:04:37 -07:00
git-last-modified.adoc last-modified: change default max-depth to 0 2026-01-20 14:13:04 -08:00
git-log.adoc doc: log: use the same delimiter in description list 2026-04-28 09:46:26 +09:00
git-ls-files.adoc ignore: note info/exclude lives in GIT_COMMON_DIR, not GIT_DIR 2026-05-13 10:25:52 +09:00
git-ls-remote.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-ls-tree.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-mailinfo.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-mailsplit.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-maintenance.adoc maintenance: add 'is-needed' subcommand 2025-11-10 09:28:48 -08:00
git-merge-base.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-merge-file.adoc merge-file: honor merge.conflictStyle outside of a repository 2026-02-07 17:04:26 -08:00
git-merge-index.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-merge-one-file.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-merge-tree.adoc Merge branch 'en/doc-merge-tree-describe-merge-base' 2025-10-10 12:51:46 -07:00
git-merge.adoc Merge branch 'ts/merge-orig-head-doc-fix' 2025-07-14 11:19:28 -07:00
git-mergetool--lib.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-mergetool.adoc doc: convert git-mergetool manpage to new synopsis style 2025-05-27 07:51:01 -07:00
git-mktag.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-mktree.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-multi-pack-index.adoc midx: support custom `--base` for incremental MIDX writes 2026-05-20 11:31:13 +09:00
git-mv.adoc doc: convert git-mv to new documentation format 2025-04-14 14:43:52 -07:00
git-name-rev.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-notes.adoc doc: notes: use stuck form throughout 2025-05-27 15:31:08 -07:00
git-p4.adoc doc: check well-formedness of delimited sections 2025-08-11 14:16:03 -07:00
git-pack-objects.adoc pack-objects: support `--delta-islands` with `--path-walk` 2026-06-21 16:26:14 -07:00
git-pack-redundant.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-pack-refs.adoc doc: pack-refs: factor out common options 2025-09-19 10:02:56 -07:00
git-patch-id.adoc doc: patch-id: see also git-cherry(1) 2026-02-17 10:49:51 -08:00
git-prune-packed.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-prune.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-pull.adoc Merge branch 'je/doc-pull' 2025-12-14 17:04:37 +09:00
git-push.adoc push: support pushing to a remote group 2026-05-04 10:11:17 +09:00
git-quiltimport.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-range-diff.adoc Merge branch 'sp/doc-range-diff-takes-notes' 2026-05-31 10:00:39 +09:00
git-read-tree.adoc doc: check for absence of the form --[no-]parameter 2025-08-11 14:16:04 -07:00
git-rebase.adoc rebase: support --trailer 2026-03-06 13:02:20 -08:00
git-receive-pack.adoc builtin/receive-pack: add option to skip connectivity check 2025-05-20 11:43:36 -07:00
git-reflog.adoc builtin/reflog: implement subcommand to write new entries 2025-08-06 07:36:30 -07:00
git-refs.adoc builtin/refs: add "rename" subcommand 2026-07-06 07:45:57 -07:00
git-remote-ext.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-remote-fd.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-remote-helpers.adoco doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-remote.adoc doc: convert git-remote to synopsis style 2025-12-21 11:33:10 +09:00
git-repack.adoc repack: allow `--write-midx=incremental` without `--geometric` 2026-05-20 11:31:14 +09:00
git-replace.adoc doc: add caveat about turning off commit-graph 2026-05-08 10:22:33 +09:00
git-replay.adoc replay: allow to specify a ref with option --ref 2026-04-01 21:34:25 -07:00
git-repo.adoc repo: add path.gitdir with absolute and relative suffix formatting 2026-06-23 21:15:52 -07:00
git-request-pull.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-rerere.adoc doc: fix singular/plural mismatch in git-rerere 2026-04-16 21:22:01 -07:00
git-reset.adoc doc: git-reset: clarify `git reset <pathspec>` 2026-01-06 08:10:14 +09:00
git-restore.adoc Merge branch 'kh/doc-restore-double-underscores-fix' 2026-05-19 09:57:45 +09:00
git-rev-list.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-rev-parse.adoc Merge branch 'bc/sha1-256-interop-01' 2025-10-22 11:38:58 -07:00
git-revert.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-rm.adoc doc: convert git-rm to new documentation format 2025-04-14 14:43:52 -07:00
git-send-email.adoc Merge branch 'dt/send-email-client-cert' 2026-03-12 10:56:05 -07:00
git-send-pack.adoc doc: check for absence of the form --[no-]parameter 2025-08-11 14:16:04 -07:00
git-sh-i18n--envsubst.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-sh-i18n.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-sh-setup.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-shell.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-shortlog.adoc doc: convert git-shortlog manual page to synopsis style 2026-04-06 09:38:19 -07:00
git-show-branch.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-show-index.adoc Merge branch 'bc/doc-adoc-not-txt' 2025-02-14 17:53:47 -08:00
git-show-ref.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-show.adoc doc: convert git-show to synopsis style 2026-02-05 21:14:05 -08:00
git-sparse-checkout.adoc doc: fix typos via codespell 2026-06-08 00:21:35 +09:00
git-stage.adoc doc: convert git stage to use synopsis block 2025-12-21 11:33:10 +09:00
git-stash.adoc stash: add --label-ours, --label-theirs, --label-base for apply 2026-04-29 21:46:02 +09:00
git-status.adoc doc: convert git-status tables to AsciiDoc format 2025-12-21 11:33:10 +09:00
git-stripspace.adoc doc: stripspace: mention where the default comes from 2025-05-27 15:31:05 -07:00
git-submodule.adoc doc: convert git-submodule to synopsis style 2026-02-05 21:14:05 -08:00
git-svn.adoc ignore: note info/exclude lives in GIT_COMMON_DIR, not GIT_DIR 2026-05-13 10:25:52 +09:00
git-switch.adoc checkout -m: autostash when switching branches 2026-04-29 21:46:03 +09:00
git-symbolic-ref.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-tag.adoc Merge branch 'cc/fast-import-strip-signed-tags' 2025-10-28 10:29:09 -07:00
git-tools.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-unpack-file.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-unpack-objects.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-update-index.adoc doc: check for absence of the form --[no-]parameter 2025-08-11 14:16:04 -07:00
git-update-ref.adoc Merge branch 'sb/doc-update-ref-markup-fix' 2026-01-23 13:34:35 -08:00
git-update-server-info.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-upload-archive.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-upload-pack.adoc doc: check for absence of the form --[no-]parameter 2025-08-11 14:16:04 -07:00
git-url-parse.adoc doc: describe the url-parse builtin 2026-05-06 09:48:29 +09:00
git-var.adoc doc: replace git config --list/-l with `list` 2026-04-06 09:57:07 -07:00
git-verify-commit.adoc git-verify-* doc: update mark-up of synopsis option descriptions 2025-05-12 09:25:27 -07:00
git-verify-pack.adoc git-verify-* doc: update mark-up of synopsis option descriptions 2025-05-12 09:25:27 -07:00
git-verify-tag.adoc git-verify-* doc: update mark-up of synopsis option descriptions 2025-05-12 09:25:27 -07:00
git-version.adoc help: include unsafe SHA-1 build info in version 2025-04-07 14:39:27 -07:00
git-web--browse.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
git-whatchanged.adoc whatchanged: remove not-even-shorter clause 2025-09-17 13:47:24 -07:00
git-worktree.adoc Merge branch 'sb/doc-worktree-prune-expire-improvement' 2026-02-09 12:09:10 -08:00
git-write-tree.adoc git-{var,write-tree} docs: update mark-up of synopsis option descriptions 2025-05-12 09:25:26 -07:00
git.adoc Merge branch 'os/doc-git-custom-commands' 2026-03-16 10:48:14 -07:00
gitattributes.adoc diff: consult oid-only hunk providers via diff.<driver>.process 2026-08-01 15:09:52 -07:00
gitcli.adoc doc: clarify command equivalence comment 2025-11-04 09:25:51 -08:00
gitcore-tutorial.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
gitcredentials.adoc Merge branch 'mh/doc-credential-url-prefix' into maint-2.51 2025-10-15 10:29:35 -07:00
gitcvs-migration.adoc doc: gitcvs-migration: rephrase “man page” 2026-04-06 09:57:07 -07:00
gitdatamodel.adoc doc: remove stray text in Git data model 2025-12-03 00:17:07 -08:00
gitdiffcore.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
giteveryday.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
gitfaq.adoc Merge branch 'bc/doc-stash-import-export' 2026-01-16 12:40:27 -08:00
gitformat-bundle.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
gitformat-chunk.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
gitformat-commit-graph.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
gitformat-diff-hunks.adoc diff-hunks: add the store format, library, and command 2026-08-01 15:09:51 -07:00
gitformat-index.adoc ignore: note info/exclude lives in GIT_COMMON_DIR, not GIT_DIR 2026-05-13 10:25:52 +09:00
gitformat-loose.adoc rust: add a new binary object map format 2026-02-07 17:41:03 -08:00
gitformat-pack.adoc midx: do not require packs to be sorted in lexicographic order 2026-02-24 11:16:33 -08:00
gitformat-signature.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
gitglossary.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
githooks.adoc refs: add 'preparing' phase to the reference-transaction hook 2026-03-16 21:00:44 -07:00
gitignore.adoc ignore: note info/exclude lives in GIT_COMMON_DIR, not GIT_DIR 2026-05-13 10:25:52 +09:00
gitk.adoc Merge branch 'js/doc-gitk-history' into maint-2.51 2025-10-14 13:40:53 -07:00
gitmailmap.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
gitmodules.adoc doc: fix grammar errors in submodule description 2026-04-16 21:22:01 -07:00
gitnamespaces.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
gitpacking.adoc Documentation: fix broken `sampleRate` in gitpacking(7) 2026-05-12 10:36:18 +09:00
gitprotocol-capabilities.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
gitprotocol-common.adoc doc: add a blank line around block delimiters 2025-03-10 09:58:06 -07:00
gitprotocol-http.adoc doc: clarify server behavior for invalid 'want' lines in HTTP protocol 2025-11-06 09:45:38 -08:00
gitprotocol-pack.adoc doc: gitprotocol-pack: normalize italic formatting 2026-03-02 21:35:05 -08:00
gitprotocol-v2.adoc promisor-remote: trust known remotes matching acceptFromServerUrl 2026-05-28 05:20:15 +09:00
gitremote-helpers.adoc Merge branch 'bs/remote-helpers-doc-markup-fix' 2025-07-14 11:19:22 -07:00
gitrepository-layout.adoc docs: fix repository-layout when building with breaking changes 2025-03-05 07:25:11 -08:00
gitrevisions.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
gitsubmodules.adoc doc: check well-formedness of delimited sections 2025-08-11 14:16:03 -07:00
gittutorial-2.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
gittutorial.adoc doc: replace git config --list/-l with `list` 2026-04-06 09:57:07 -07:00
gitweb.adoc doc: add a blank line around block delimiters 2025-03-10 09:58:06 -07:00
gitweb.conf.adoc doc: test linkgit macros for well-formedness 2025-08-11 14:16:03 -07:00
gitworkflows.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
glossary-content.adoc gitglossary: fix indentation of sub-lists 2026-04-13 11:50:06 -07:00
i18n.adoc Merge branch 'bc/doc-adoc-not-txt' 2025-02-14 17:53:47 -08:00
install-doc-quick.sh
install-webdoc.sh doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
line-range-format.adoc doc: git-log: convert line range format to new doc format 2025-07-07 13:45:00 -07:00
line-range-options.adoc diffcore-pickaxe: scope -G to the -L tracked range 2026-06-27 19:52:28 -07:00
lint-delimited-sections.perl doc: check well-formedness of delimited sections 2025-08-11 14:16:03 -07:00
lint-documentation-style.perl doc lint: check that synopsis manpages have synopsis inlines 2025-08-11 14:16:04 -07:00
lint-fsck-msgids.perl
lint-gitlink.perl lint-gitlink: preemptively ignore all /ifn?def|endif/ macros 2026-01-21 08:26:00 -08:00
lint-man-end-blurb.perl
lint-man-section-order.perl
lint-manpages.sh doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
manpage-bold-literal.xsl
manpage-normal.xsl
manpage.xsl
merge-options.adoc doc: convert git pull to synopsis style 2025-11-19 15:00:42 -08:00
merge-strategies.adoc doc: convert merge strategies to synopsis format 2025-05-27 07:51:00 -07:00
meson.build diff-hunks: add the store format, library, and command 2026-08-01 15:09:51 -07:00
object-format-disclaimer.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
pack-refs-options.adoc doc: pack-refs: factor out common options 2025-09-19 10:02:56 -07:00
pretty-formats.adoc docs/pretty-formats: add %(count) and %(total) 2026-03-23 13:06:58 -07:00
pretty-options.adoc doc: do not break sentences into "lego" pieces 2025-10-05 16:10:53 -07:00
pull-fetch-param.adoc doc: pull-fetch-param typofix 2025-11-24 10:55:48 -08:00
ref-reachability-filters.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
ref-storage-format.adoc docs: correct information about reftable 2026-04-08 07:18:56 -07:00
rerere-options.adoc doc: rerere-options.adoc: link to git-rerere(1) 2026-02-10 12:27:07 -08:00
rev-list-description.adoc doc: git-log convert rev-list-description to new doc format 2025-07-07 13:45:00 -07:00
rev-list-options.adoc Merge branch 'mf/revision-max-count-oldest' 2026-06-16 09:01:02 -07:00
revisions.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
scalar.adoc scalar: document config settings 2025-12-16 09:42:44 +09:00
sequencer.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
signoff-option.adoc signoff-option: linkify the reference to gitfaq 2025-12-19 21:51:01 +09:00
texi.xsl
trace2-target-values.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
transfer-data-leaks.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
urls-remotes.adoc doc: convert git pull to synopsis style 2025-11-19 15:00:42 -08:00
urls.adoc doc: use .adoc extension for AsciiDoc files 2025-01-21 12:56:06 -08:00
user-manual.adoc doc: replace git config --list/-l with `list` 2026-04-06 09:57:07 -07:00