Merge branch 'ja/doc-lint-sections-and-synopsis'

Doc lint updates to encourage the newer and easier-to-use
`synopsis` format, with fixes to a handful of existing uses.

* ja/doc-lint-sections-and-synopsis:
  doc lint: check that synopsis manpages have synopsis inlines
  doc:git-for-each-ref: fix styling and typos
  doc: check for absence of the form --[no-]parameter
  doc: check for absence of multiple terms in each entry of desc list
  doc: check well-formedness of delimited sections
  doc: test linkgit macros for well-formedness
This commit is contained in:
Junio C Hamano
2025-08-25 14:22:01 -07:00
59 changed files with 448 additions and 233 deletions

View File

@@ -497,9 +497,26 @@ $(LINT_DOCS_FSCK_MSGIDS): ../fsck.h fsck-msgids.adoc
$(call mkdir_p_parent_template) $(call mkdir_p_parent_template)
$(QUIET_GEN)$(PERL_PATH) lint-fsck-msgids.perl \ $(QUIET_GEN)$(PERL_PATH) lint-fsck-msgids.perl \
../fsck.h fsck-msgids.adoc $@ ../fsck.h fsck-msgids.adoc $@
lint-docs-fsck-msgids: $(LINT_DOCS_FSCK_MSGIDS) lint-docs-fsck-msgids: $(LINT_DOCS_FSCK_MSGIDS)
## Lint: delimited sections
LINT_DOCS_DELIMITED_SECTIONS = $(patsubst %.adoc,.build/lint-docs/delimited-sections/%.ok,$(MAN_TXT))
$(LINT_DOCS_DELIMITED_SECTIONS): lint-delimited-sections.perl
$(LINT_DOCS_DELIMITED_SECTIONS): .build/lint-docs/delimited-sections/%.ok: %.adoc
$(call mkdir_p_parent_template)
$(QUIET_LINT_DELIMSEC)$(PERL_PATH) lint-delimited-sections.perl $< >$@
.PHONY: lint-docs-delimited-sections
lint-docs-delimited-sections: $(LINT_DOCS_DELIMITED_SECTIONS)
## Lint: Documentation style
LINT_DOCS_DOC_STYLE = $(patsubst %.adoc,.build/lint-docs/doc-style/%.ok,$(DOC_DEP_TXT))
$(LINT_DOCS_DOC_STYLE): lint-documentation-style.perl
$(LINT_DOCS_DOC_STYLE): .build/lint-docs/doc-style/%.ok: %.adoc
$(call mkdir_p_parent_template)
$(QUIET_LINT_DOCSTYLE)$(PERL_PATH) lint-documentation-style.perl $< >$@
.PHONY: lint-docs-doc-style
lint-docs-doc-style: $(LINT_DOCS_DOC_STYLE)
lint-docs-manpages: lint-docs-manpages:
$(QUIET_GEN)./lint-manpages.sh $(QUIET_GEN)./lint-manpages.sh
@@ -528,6 +545,8 @@ lint-docs: lint-docs-fsck-msgids
lint-docs: lint-docs-gitlink lint-docs: lint-docs-gitlink
lint-docs: lint-docs-man-end-blurb lint-docs: lint-docs-man-end-blurb
lint-docs: lint-docs-man-section-order lint-docs: lint-docs-man-section-order
lint-docs: lint-docs-delimited-sections
lint-docs: lint-docs-doc-style
lint-docs: lint-docs-manpages lint-docs: lint-docs-manpages
lint-docs: lint-docs-meson lint-docs: lint-docs-meson

View File

@@ -37,3 +37,4 @@ exec >/var/tmp/1
echo O=$(git describe maint) echo O=$(git describe maint)
O=v1.6.2.3-38-g318b847 O=v1.6.2.3-38-g318b847
git shortlog --no-merges $O..maint git shortlog --no-merges $O..maint
---

View File

@@ -75,7 +75,8 @@ include::line-range-format.adoc[]
iso format is used. For supported values, see the discussion iso format is used. For supported values, see the discussion
of the --date option at linkgit:git-log[1]. of the --date option at linkgit:git-log[1].
--[no-]progress:: --progress::
--no-progress::
Progress status is reported on the standard error stream Progress status is reported on the standard error stream
by default when it is attached to a terminal. This flag by default when it is attached to a terminal. This flag
enables progress reporting even if not attached to a enables progress reporting even if not attached to a

View File

@@ -103,6 +103,7 @@ if the file was renamed on any side of history. With
followed by the name of the path in the merge commit. followed by the name of the path in the merge commit.
Examples for `-c` and `--cc` without `--combined-all-paths`: Examples for `-c` and `--cc` without `--combined-all-paths`:
------------------------------------------------ ------------------------------------------------
::100644 100644 100644 fabadb8 cc95eb0 4866510 MM desc.c ::100644 100644 100644 fabadb8 cc95eb0 4866510 MM desc.c
::100755 100755 100755 52b7a2d 6d1ac04 d2ac7d7 RM bar.sh ::100755 100755 100755 52b7a2d 6d1ac04 d2ac7d7 RM bar.sh

View File

@@ -505,7 +505,8 @@ endif::git-format-patch[]
Turn off rename detection, even when the configuration Turn off rename detection, even when the configuration
file gives the default to do so. file gives the default to do so.
`--[no-]rename-empty`:: `--rename-empty`::
`--no-rename-empty`::
Whether to use empty blobs as rename source. Whether to use empty blobs as rename source.
ifndef::git-format-patch[] ifndef::git-format-patch[]

View File

@@ -1,4 +1,5 @@
--[no-]all:: --all::
--no-all::
Fetch all remotes, except for the ones that has the Fetch all remotes, except for the ones that has the
`remote.<name>.skipFetchAll` configuration variable set. `remote.<name>.skipFetchAll` configuration variable set.
This overrides the configuration variable fetch.all`. This overrides the configuration variable fetch.all`.
@@ -88,7 +89,8 @@ This is incompatible with `--recurse-submodules=[yes|on-demand]` and takes
precedence over the `fetch.output` config option. precedence over the `fetch.output` config option.
ifndef::git-pull[] ifndef::git-pull[]
--[no-]write-fetch-head:: --write-fetch-head::
--no-write-fetch-head::
Write the list of remote refs fetched in the `FETCH_HEAD` Write the list of remote refs fetched in the `FETCH_HEAD`
file directly under `$GIT_DIR`. This is the default. file directly under `$GIT_DIR`. This is the default.
Passing `--no-write-fetch-head` from the command line tells Passing `--no-write-fetch-head` from the command line tells
@@ -118,13 +120,16 @@ ifndef::git-pull[]
Allow several <repository> and <group> arguments to be Allow several <repository> and <group> arguments to be
specified. No <refspec>s may be specified. specified. No <refspec>s may be specified.
--[no-]auto-maintenance:: --auto-maintenance::
--[no-]auto-gc:: --no-auto-maintenance::
--auto-gc::
--no-auto-gc::
Run `git maintenance run --auto` at the end to perform automatic Run `git maintenance run --auto` at the end to perform automatic
repository maintenance if needed. (`--[no-]auto-gc` is a synonym.) repository maintenance if needed. (`--[no-]auto-gc` is a synonym.)
This is enabled by default. This is enabled by default.
--[no-]write-commit-graph:: --write-commit-graph::
--no-write-commit-graph::
Write a commit-graph after fetching. This overrides the config Write a commit-graph after fetching. This overrides the config
setting `fetch.writeCommitGraph`. setting `fetch.writeCommitGraph`.
endif::git-pull[] endif::git-pull[]

View File

@@ -1,84 +1,81 @@
<pattern>...:: `<pattern>...`::
If one or more patterns are given, only refs are shown that If one or more _<pattern>_ parameters are given, only refs are shown that
match against at least one pattern, either using fnmatch(3) or match against at least one pattern, either using `fnmatch`(3) or
literally, in the latter case matching completely or from the literally, in the latter case matching completely or from the
beginning up to a slash. beginning up to a slash.
--stdin:: `--stdin`::
If `--stdin` is supplied, then the list of patterns is read from The list of patterns is read from standard input instead of from
standard input instead of from the argument list. the argument list.
--count=<count>:: `--count=<count>`::
By default the command shows all refs that match Stop after showing _<count>_ refs.
`<pattern>`. This option makes it stop after showing
that many refs.
--sort=<key>:: `--sort=<key>`::
A field name to sort on. Prefix `-` to sort in Sort on the field name _<key>_. Prefix `-` to sort in
descending order of the value. When unspecified, descending order of the value. When unspecified,
`refname` is used. You may use the --sort=<key> option `refname` is used. You may use the `--sort=<key>` option
multiple times, in which case the last key becomes the primary multiple times, in which case the last key becomes the primary
key. key.
--format=<format>:: `--format[=<format>]`::
A string that interpolates `%(fieldname)` from a ref being shown and A string that interpolates `%(fieldname)` from a ref being shown and
the object it points at. In addition, the string literal `%%` the object it points at. In addition, the string literal `%%`
renders as `%` and `%xx` - where `xx` are hex digits - renders as renders as `%` and `%xx` - where `xx` are hex digits - renders as
the character with hex code `xx`. For example, `%00` interpolates to the character with hex code `xx`. For example, `%00` interpolates to
`\0` (NUL), `%09` to `\t` (TAB), and `%0a` to `\n` (LF). `\0` (_NUL_), `%09` to `\t` (_TAB_), and `%0a` to `\n` (_LF_).
+
When unspecified, `<format>` defaults to `%(objectname) SPC %(objecttype) When unspecified, _<format>_ defaults to `%(objectname) SPC %(objecttype)
TAB %(refname)`. TAB %(refname)`.
--color[=<when>]:: `--color[=<when>]`::
Respect any colors specified in the `--format` option. The Respect any colors specified in the `--format` option. The
`<when>` field must be one of `always`, `never`, or `auto` (if _<when__ field must be one of `always`, `never`, or `auto` (if
`<when>` is absent, behave as if `always` was given). `<when>` is absent, behave as if `always` was given).
--shell:: `--shell`::
--perl:: `--perl`::
--python:: `--python`::
--tcl:: `--tcl`::
If given, strings that substitute `%(fieldname)` If given, strings that substitute `%(fieldname)`
placeholders are quoted as string literals suitable for placeholders are quoted as string literals suitable for
the specified host language. This is meant to produce the specified host language. This is meant to produce
a scriptlet that can directly be `eval`ed. a scriptlet that can directly be "eval"ed.
--points-at=<object>:: `--points-at=<object>`::
Only list refs which points at the given object. Only list refs which points at the given object.
--merged[=<object>]:: `--merged[=<object>]`::
Only list refs whose tips are reachable from the Only list refs whose tips are reachable from the
specified commit (HEAD if not specified). specified commit (`HEAD` if not specified).
--no-merged[=<object>]:: `--no-merged[=<object>]`::
Only list refs whose tips are not reachable from the Only list refs whose tips are not reachable from _<object>_(`HEAD` if not
specified commit (HEAD if not specified).
--contains[=<object>]::
Only list refs which contain the specified commit (HEAD if not
specified). specified).
--no-contains[=<object>]:: `--contains[=<object>]`::
Only list refs which don't contain the specified commit (HEAD Only list refs which contain _<object>_(`HEAD` if not specified).
`--no-contains[=<object>]`::
Only list refs which don't contain _<object>_ (`HEAD`
if not specified). if not specified).
--ignore-case:: `--ignore-case`::
Sorting and filtering refs are case insensitive. Sorting and filtering refs are case insensitive.
--omit-empty:: `--omit-empty`::
Do not print a newline after formatted refs where the format expands Do not print a newline after formatted refs where the format expands
to the empty string. to the empty string.
--exclude=<pattern>:: `--exclude=<excluded-pattern>`::
If one or more patterns are given, only refs which do not match If one or more `--exclude` options are given, only refs which do not
any excluded pattern(s) are shown. Matching is done using the match any _<excluded-pattern>_ parameters are shown. Matching is done
same rules as `<pattern>` above. using the same rules as _<pattern>_ above.
--include-root-refs:: `--include-root-refs`::
List root refs (HEAD and pseudorefs) apart from regular refs. List root refs (`HEAD` and pseudorefs) apart from regular refs.
--start-after=<marker>:: `--start-after=<marker>`::
Allows paginating the output by skipping references up to and including the Allows paginating the output by skipping references up to and including the
specified marker. When paging, it should be noted that references may be specified marker. When paging, it should be noted that references may be
deleted, modified or added between invocations. Output will only yield those deleted, modified or added between invocations. Output will only yield those

View File

@@ -48,7 +48,8 @@ OPTIONS
--keep-non-patch:: --keep-non-patch::
Pass `-b` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]). Pass `-b` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
--[no-]keep-cr:: --keep-cr::
--no-keep-cr::
With `--keep-cr`, call 'git mailsplit' (see linkgit:git-mailsplit[1]) With `--keep-cr`, call 'git mailsplit' (see linkgit:git-mailsplit[1])
with the same option, to prevent it from stripping CR at the end of with the same option, to prevent it from stripping CR at the end of
lines. `am.keepcr` configuration variable can be used to specify the lines. `am.keepcr` configuration variable can be used to specify the

View File

@@ -57,7 +57,8 @@ OPTIONS
blobs seen at a given path. The default minimum batch size is blobs seen at a given path. The default minimum batch size is
50,000. 50,000.
`--[no-]sparse`:: `--sparse`::
`--no-sparse`::
Only download objects if they appear at a path that matches the Only download objects if they appear at a path that matches the
current sparse-checkout. If the sparse-checkout feature is enabled, current sparse-checkout. If the sparse-checkout feature is enabled,
then `--sparse` is assumed and can be disabled with `--no-sparse`. then `--sparse` is assumed and can be disabled with `--no-sparse`.

View File

@@ -62,8 +62,10 @@ OPTIONS
or to ask for a "blob" with `<object>` being a tag object that or to ask for a "blob" with `<object>` being a tag object that
points at it. points at it.
--[no-]mailmap:: --mailmap::
--[no-]use-mailmap:: --no-mailmap::
--use-mailmap::
--no-use-mailmap::
Use mailmap file to map author, committer and tagger names Use mailmap file to map author, committer and tagger names
and email addresses to canonical real names and email addresses. and email addresses to canonical real names and email addresses.
See linkgit:git-shortlog[1]. See linkgit:git-shortlog[1].

View File

@@ -19,7 +19,8 @@ For every pathname, this command will list if each attribute is 'unspecified',
OPTIONS OPTIONS
------- -------
-a, --all:: -a::
--all::
List all attributes that are associated with the specified List all attributes that are associated with the specified
paths. If this option is used, then 'unspecified' attributes paths. If this option is used, then 'unspecified' attributes
will not be included in the output. will not be included in the output.

View File

@@ -25,11 +25,13 @@ subject to exclude rules; but see `--no-index'.
OPTIONS OPTIONS
------- -------
-q, --quiet:: -q::
--quiet::
Don't output anything, just set exit status. This is only Don't output anything, just set exit status. This is only
valid with a single pathname. valid with a single pathname.
-v, --verbose:: -v::
--verbose::
Instead of printing the paths that are excluded, for each path Instead of printing the paths that are excluded, for each path
that matches an exclude pattern, print the exclude pattern that matches an exclude pattern, print the exclude pattern
together with the path. (Matching an exclude pattern usually together with the path. (Matching an exclude pattern usually
@@ -49,7 +51,8 @@ linkgit:gitignore[5].
below). If `--stdin` is also given, input paths are separated below). If `--stdin` is also given, input paths are separated
with a NUL character instead of a linefeed character. with a NUL character instead of a linefeed character.
-n, --non-matching:: -n::
--non-matching::
Show given paths which don't match any pattern. This only Show given paths which don't match any pattern. This only
makes sense when `--verbose` is enabled, otherwise it would makes sense when `--verbose` is enabled, otherwise it would
not be possible to distinguish between paths which match a not be possible to distinguish between paths which match a

View File

@@ -98,7 +98,8 @@ a branch.
OPTIONS OPTIONS
------- -------
--[no-]allow-onelevel:: --allow-onelevel::
--no-allow-onelevel::
Controls whether one-level refnames are accepted (i.e., Controls whether one-level refnames are accepted (i.e.,
refnames that do not contain multiple `/`-separated refnames that do not contain multiple `/`-separated
components). The default is `--no-allow-onelevel`. components). The default is `--no-allow-onelevel`.

View File

@@ -334,7 +334,7 @@ include::diff-context-options.adoc[]
separated with _NUL_ character and all other characters are taken separated with _NUL_ character and all other characters are taken
literally (including newlines and quotes). literally (including newlines and quotes).
<branch>:: `<branch>`::
Branch to checkout; if it refers to a branch (i.e., a name that, Branch to checkout; if it refers to a branch (i.e., a name that,
when prepended with "refs/heads/", is a valid ref), then that when prepended with "refs/heads/", is a valid ref), then that
branch is checked out. Otherwise, if it refers to a valid branch is checked out. Otherwise, if it refers to a valid

View File

@@ -272,7 +272,8 @@ corresponding `--mirror` and `--no-tags` options instead.
reachable from a specified remote branch or tag. This option reachable from a specified remote branch or tag. This option
can be specified multiple times. can be specified multiple times.
`--[no-]single-branch`:: `--single-branch`::
`--no-single-branch`::
Clone only the history leading to the tip of a single branch, Clone only the history leading to the tip of a single branch,
either specified by the `--branch` option or the primary either specified by the `--branch` option or the primary
branch remote's `HEAD` points at. branch remote's `HEAD` points at.
@@ -282,7 +283,8 @@ corresponding `--mirror` and `--no-tags` options instead.
branch when `--single-branch` clone was made, no remote-tracking branch when `--single-branch` clone was made, no remote-tracking
branch is created. branch is created.
`--[no-]tags`:: `--tags`::
`--no-tags`::
Control whether or not tags will be cloned. When `--no-tags` is Control whether or not tags will be cloned. When `--no-tags` is
given, the option will be become permanent by setting the given, the option will be become permanent by setting the
`remote.<remote>.tagOpt=--no-tags` configuration. This ensures that `remote.<remote>.tagOpt=--no-tags` configuration. This ensures that
@@ -313,10 +315,12 @@ the clone is finished. This option is ignored if the cloned repository does
not have a worktree/checkout (i.e. if any of `--no-checkout`/`-n`, `--bare`, not have a worktree/checkout (i.e. if any of `--no-checkout`/`-n`, `--bare`,
or `--mirror` is given) or `--mirror` is given)
`--[no-]shallow-submodules`:: `--shallow-submodules`::
`--no-shallow-submodules`::
All submodules which are cloned will be shallow with a depth of 1. All submodules which are cloned will be shallow with a depth of 1.
`--[no-]remote-submodules`:: `--remote-submodules`::
`--no-remote-submodules`::
All submodules which are cloned will use the status of the submodule's All submodules which are cloned will use the status of the submodule's
remote-tracking branch to update the submodule, rather than the remote-tracking branch to update the submodule, rather than the
superproject's recorded SHA-1. Equivalent to passing `--remote` to superproject's recorded SHA-1. Equivalent to passing `--remote` to

View File

@@ -34,7 +34,8 @@ OPTIONS
object directory, `git commit-graph ...` will exit with non-zero object directory, `git commit-graph ...` will exit with non-zero
status. status.
--[no-]progress:: --progress::
--no-progress::
Turn progress on/off explicitly. If neither is specified, progress is Turn progress on/off explicitly. If neither is specified, progress is
shown if standard error is connected to a terminal. shown if standard error is connected to a terminal.

View File

@@ -214,7 +214,8 @@ include::signoff-option.adoc[]
each trailer would appear, and other details. each trailer would appear, and other details.
`-n`:: `-n`::
`--[no-]verify`:: `--verify`::
`--no-verify`::
Bypass the `pre-commit` and `commit-msg` hooks. Bypass the `pre-commit` and `commit-msg` hooks.
See also linkgit:githooks[5]. See also linkgit:githooks[5].
@@ -281,6 +282,7 @@ variable (see linkgit:git-config[1]).
+ +
-- --
It is a rough equivalent for: It is a rough equivalent for:
------ ------
$ git reset --soft HEAD^ $ git reset --soft HEAD^
$ ... do something else to come up with the right tree ... $ ... do something else to come up with the right tree ...

View File

@@ -295,7 +295,8 @@ Valid `<type>`'s include:
When the color setting for `name` is undefined, the command uses When the color setting for `name` is undefined, the command uses
`color.ui` as fallback. `color.ui` as fallback.
--[no-]includes:: --includes::
--no-includes::
Respect `include.*` directives in config files when looking up Respect `include.*` directives in config files when looking up
values. Defaults to `off` when a specific file is given (e.g., values. Defaults to `off` when a specific file is given (e.g.,
using `--file`, `--global`, etc) and `on` when searching all using `--file`, `--global`, etc) and `on` when searching all

View File

@@ -77,7 +77,8 @@ with custom merge tool commands and has the same value as `$MERGED`.
--tool-help:: --tool-help::
Print a list of diff tools that may be used with `--tool`. Print a list of diff tools that may be used with `--tool`.
--[no-]symlinks:: --symlinks::
--no-symlinks::
'git difftool''s default behavior is to create symlinks to the 'git difftool''s default behavior is to create symlinks to the
working tree when run in `--dir-diff` mode and the right-hand working tree when run in `--dir-diff` mode and the right-hand
side of the comparison yields the same content as the file in side of the comparison yields the same content as the file in
@@ -94,7 +95,8 @@ instead. `--no-symlinks` is the default on Windows.
Additionally, `$BASE` is set in the environment. Additionally, `$BASE` is set in the environment.
-g:: -g::
--[no-]gui:: --gui::
--no-gui::
When 'git-difftool' is invoked with the `-g` or `--gui` option When 'git-difftool' is invoked with the `-g` or `--gui` option
the default diff tool will be read from the configured the default diff tool will be read from the configured
`diff.guitool` variable instead of `diff.tool`. This may be `diff.guitool` variable instead of `diff.tool`. This may be
@@ -104,7 +106,8 @@ instead. `--no-symlinks` is the default on Windows.
fallback in the order of `merge.guitool`, `diff.tool`, fallback in the order of `merge.guitool`, `diff.tool`,
`merge.tool` until a tool is found. `merge.tool` until a tool is found.
--[no-]trust-exit-code:: --trust-exit-code::
--no-trust-exit-code::
Errors reported by the diff tool are ignored by default. Errors reported by the diff tool are ignored by default.
Use `--trust-exit-code` to make 'git-difftool' exit when an Use `--trust-exit-code` to make 'git-difftool' exit when an
invoked diff tool returns a non-zero exit code. invoked diff tool returns a non-zero exit code.

View File

@@ -111,7 +111,8 @@ Locations of Marks Files
Like --import-marks but instead of erroring out, silently Like --import-marks but instead of erroring out, silently
skips the file if it does not exist. skips the file if it does not exist.
--[no-]relative-marks:: --relative-marks::
--no-relative-marks::
After specifying --relative-marks the paths specified After specifying --relative-marks the paths specified
with --import-marks= and --export-marks= are relative with --import-marks= and --export-marks= are relative
to an internal directory in the current repository. to an internal directory in the current repository.
@@ -605,9 +606,11 @@ Marks must be declared (via `mark`) before they can be used.
The special case of restarting an incremental import from the The special case of restarting an incremental import from the
current branch value should be written as: current branch value should be written as:
---- ----
from refs/heads/branch^0 from refs/heads/branch^0
---- ----
The `^0` suffix is necessary as fast-import does not permit a branch to The `^0` suffix is necessary as fast-import does not permit a branch to
start from itself, and the branch is created in memory before the start from itself, and the branch is created in memory before the
`from` command is even read from the input. Adding `^0` will force `from` command is even read from the input. Adding `^0` will force

View File

@@ -35,7 +35,8 @@ OPTIONS
Do not list one-line descriptions from the actual commits being Do not list one-line descriptions from the actual commits being
merged. merged.
--[no-]summary:: --summary::
--no-summary::
Synonyms to --log and --no-log; these are deprecated and will be Synonyms to --log and --no-log; these are deprecated and will be
removed in the future. removed in the future.

View File

@@ -14,15 +14,15 @@ git for-each-ref [--count=<count>] [--shell|--perl|--python|--tcl]
[--merged[=<object>]] [--no-merged[=<object>]] [--merged[=<object>]] [--no-merged[=<object>]]
[--contains[=<object>]] [--no-contains[=<object>]] [--contains[=<object>]] [--no-contains[=<object>]]
[(--exclude=<pattern>)...] [--start-after=<marker>] [(--exclude=<pattern>)...] [--start-after=<marker>]
[ --stdin | <pattern>... ] [ --stdin | (<pattern>...)]
DESCRIPTION DESCRIPTION
----------- -----------
Iterate over all refs that match `<pattern>` and show them Iterate over all refs that match _<pattern>_ and show them
according to the given `<format>`, after sorting them according according to the given _<format>_, after sorting them according
to the given set of `<key>`. If `<count>` is given, stop after to the given set of _<key>_. If _<count>_ is given, stop after
showing that many refs. The interpolated values in `<format>` showing that many refs. The interpolated values in _<format>_
can optionally be quoted as string literals in the specified can optionally be quoted as string literals in the specified
host language allowing their direct evaluation in that language. host language allowing their direct evaluation in that language.
@@ -39,44 +39,44 @@ keys.
For all objects, the following names can be used: For all objects, the following names can be used:
refname:: `refname`::
The name of the ref (the part after $GIT_DIR/). The name of the ref (the part after `$GIT_DIR/`).
For a non-ambiguous short name of the ref append `:short`. For a non-ambiguous short name of the ref append `:short`.
The option core.warnAmbiguousRefs is used to select the strict The option `core.warnAmbiguousRefs` is used to select the strict
abbreviation mode. If `lstrip=<N>` (`rstrip=<N>`) is appended, strips `<N>` abbreviation mode. If `lstrip=<n>` (`rstrip=<n>`) is appended, strip _<n>_
slash-separated path components from the front (back) of the refname slash-separated path components from the front (back) of the refname
(e.g. `%(refname:lstrip=2)` turns `refs/tags/foo` into `foo` and (e.g. `%(refname:lstrip=2)` turns `refs/tags/foo` into `foo` and
`%(refname:rstrip=2)` turns `refs/tags/foo` into `refs`). `%(refname:rstrip=2)` turns `refs/tags/foo` into `refs`).
If `<N>` is a negative number, strip as many path components as If _<n>_ is a negative number, strip as many path components as
necessary from the specified end to leave `-<N>` path components necessary from the specified end to leave `-<n>` path components
(e.g. `%(refname:lstrip=-2)` turns (e.g. `%(refname:lstrip=-2)` turns
`refs/tags/foo` into `tags/foo` and `%(refname:rstrip=-1)` `refs/tags/foo` into `tags/foo` and `%(refname:rstrip=-1)`
turns `refs/tags/foo` into `refs`). When the ref does not have turns `refs/tags/foo` into `refs`). When the ref does not have
enough components, the result becomes an empty string if enough components, the result becomes an empty string if
stripping with positive <N>, or it becomes the full refname if stripping with positive _<n>_, or it becomes the full refname if
stripping with negative <N>. Neither is an error. stripping with negative _<N>_. Neither is an error.
+ +
`strip` can be used as a synonym to `lstrip`. `strip` can be used as a synonym to `lstrip`.
objecttype:: `objecttype`::
The type of the object (`blob`, `tree`, `commit`, `tag`). The type of the object (`blob`, `tree`, `commit`, `tag`).
objectsize:: `objectsize`::
The size of the object (the same as 'git cat-file -s' reports). The size of the object (the same as 'git cat-file -s' reports).
Append `:disk` to get the size, in bytes, that the object takes up on Append `:disk` to get the size, in bytes, that the object takes up on
disk. See the note about on-disk sizes in the `CAVEATS` section below. disk. See the note about on-disk sizes in the 'CAVEATS' section below.
objectname:: `objectname`::
The object name (aka SHA-1). The object name (aka SHA-1).
For a non-ambiguous abbreviation of the object name append `:short`. For a non-ambiguous abbreviation of the object name append `:short`.
For an abbreviation of the object name with desired length append For an abbreviation of the object name with desired length append
`:short=<length>`, where the minimum length is MINIMUM_ABBREV. The `:short=<length>`, where the minimum length is `MINIMUM_ABBREV`. The
length may be exceeded to ensure unique object names. length may be exceeded to ensure unique object names.
deltabase:: `deltabase`::
This expands to the object name of the delta base for the This expands to the object name of the delta base for the
given object, if it is stored as a delta. Otherwise it given object, if it is stored as a delta. Otherwise it
expands to the null object name (all zeroes). expands to the null object name (all zeroes).
upstream:: `upstream`::
The name of a local ref which can be considered ``upstream'' The name of a local ref which can be considered ``upstream''
from the displayed ref. Respects `:short`, `:lstrip` and from the displayed ref. Respects `:short`, `:lstrip` and
`:rstrip` in the same way as `refname` above. Additionally `:rstrip` in the same way as `refname` above. Additionally
@@ -98,100 +98,103 @@ Has no effect if the ref does not have tracking information associated
with it. All the options apart from `nobracket` are mutually exclusive, with it. All the options apart from `nobracket` are mutually exclusive,
but if used together the last option is selected. but if used together the last option is selected.
push:: `push`::
The name of a local ref which represents the `@{push}` The name of a local ref which represents the `@{push}`
location for the displayed ref. Respects `:short`, `:lstrip`, location for the displayed ref. Respects `:short`, `:lstrip`,
`:rstrip`, `:track`, `:trackshort`, `:remotename`, and `:remoteref` `:rstrip`, `:track`, `:trackshort`, `:remotename`, and `:remoteref`
options as `upstream` does. Produces an empty string if no `@{push}` options as `upstream` does. Produces an empty string if no `@{push}`
ref is configured. ref is configured.
HEAD:: `HEAD`::
'*' if HEAD matches current ref (the checked out branch), ' ' `*` if `HEAD` matches current ref (the checked out branch), ' '
otherwise. otherwise.
color:: `color`::
Change output color. Followed by `:<colorname>`, where color Change output color. Followed by `:<colorname>`, where color
names are described under Values in the "CONFIGURATION FILE" names are described under Values in the "CONFIGURATION FILE"
section of linkgit:git-config[1]. For example, section of linkgit:git-config[1]. For example,
`%(color:bold red)`. `%(color:bold red)`.
align:: `align`::
Left-, middle-, or right-align the content between Left-, middle-, or right-align the content between
%(align:...) and %(end). The "align:" is followed by `%(align:...)` and `%(end)`. The "`align:`" is followed by
`width=<width>` and `position=<position>` in any order `width=<width>` and `position=<position>` in any order
separated by a comma, where the `<position>` is either left, separated by a comma, where the _<position>_ is either `left`,
right or middle, default being left and `<width>` is the total `right` or `middle`, default being `left` and _<width>_ is the total
length of the content with alignment. For brevity, the length of the content with alignment. For brevity, the
"width=" and/or "position=" prefixes may be omitted, and bare "width=" and/or "position=" prefixes may be omitted, and bare
<width> and <position> used instead. For instance, _<width>_ and _<position>_ used instead. For instance,
`%(align:<width>,<position>)`. If the contents length is more `%(align:<width>,<position>)`. If the contents length is more
than the width then no alignment is performed. If used with than the width then no alignment is performed. If used with
`--quote` everything in between %(align:...) and %(end) is `--quote` everything in between `%(align:...)` and `%(end)` is
quoted, but if nested then only the topmost level performs quoted, but if nested then only the topmost level performs
quoting. quoting.
if:: `if`::
Used as %(if)...%(then)...%(end) or Used as `%(if)...%(then)...%(end)` or
%(if)...%(then)...%(else)...%(end). If there is an atom with `%(if)...%(then)...%(else)...%(end)`. If there is an atom with
value or string literal after the %(if) then everything after value or string literal after the `%(if)` then everything after
the %(then) is printed, else if the %(else) atom is used, then the `%(then)` is printed, else if the `%(else)` atom is used, then
everything after %(else) is printed. We ignore space when everything after %(else) is printed. We ignore space when
evaluating the string before %(then), this is useful when we evaluating the string before `%(then)`, this is useful when we
use the %(HEAD) atom which prints either "*" or " " and we use the `%(HEAD)` atom which prints either "`*`" or " " and we
want to apply the 'if' condition only on the 'HEAD' ref. want to apply the 'if' condition only on the `HEAD` ref.
Append ":equals=<string>" or ":notequals=<string>" to compare Append "`:equals=<string>`" or "`:notequals=<string>`" to compare
the value between the %(if:...) and %(then) atoms with the the value between the `%(if:...)` and `%(then)` atoms with the
given string. given string.
symref:: `symref`::
The ref which the given symbolic ref refers to. If not a The ref which the given symbolic ref refers to. If not a
symbolic ref, nothing is printed. Respects the `:short`, symbolic ref, nothing is printed. Respects the `:short`,
`:lstrip` and `:rstrip` options in the same way as `refname` `:lstrip` and `:rstrip` options in the same way as `refname`
above. above.
signature:: `signature`::
The GPG signature of a commit. The GPG signature of a commit.
signature:grade:: `signature:grade`::
Show "G" for a good (valid) signature, "B" for a bad Show
signature, "U" for a good signature with unknown validity, "X" `G`;; for a good (valid) signature
for a good signature that has expired, "Y" for a good `B`;; for a bad signature
signature made by an expired key, "R" for a good signature `U`;; for a good signature with unknown validity
made by a revoked key, "E" if the signature cannot be `X`;; for a good signature that has expired
checked (e.g. missing key) and "N" for no signature. `Y`;; for a good signature made by an expired key
`R`;; for a good signature made by a revoked key
`E`;; if the signature cannot be checked (e.g. missing key)
`N`;; for no signature.
signature:signer:: `signature:signer`::
The signer of the GPG signature of a commit. The signer of the GPG signature of a commit.
signature:key:: `signature:key`::
The key of the GPG signature of a commit. The key of the GPG signature of a commit.
signature:fingerprint:: `signature:fingerprint`::
The fingerprint of the GPG signature of a commit. The fingerprint of the GPG signature of a commit.
signature:primarykeyfingerprint:: `signature:primarykeyfingerprint`::
The primary key fingerprint of the GPG signature of a commit. The primary key fingerprint of the GPG signature of a commit.
signature:trustlevel:: `signature:trustlevel`::
The trust level of the GPG signature of a commit. Possible The trust level of the GPG signature of a commit. Possible
outputs are `ultimate`, `fully`, `marginal`, `never` and `undefined`. outputs are `ultimate`, `fully`, `marginal`, `never` and `undefined`.
worktreepath:: `worktreepath`::
The absolute path to the worktree in which the ref is checked The absolute path to the worktree in which the ref is checked
out, if it is checked out in any linked worktree. Empty string out, if it is checked out in any linked worktree. Empty string
otherwise. otherwise.
ahead-behind:<committish>:: `ahead-behind:<commit-ish>`::
Two integers, separated by a space, demonstrating the number of Two integers, separated by a space, demonstrating the number of
commits ahead and behind, respectively, when comparing the output commits ahead and behind, respectively, when comparing the output
ref to the `<committish>` specified in the format. ref to the _<committish>_ specified in the format.
is-base:<committish>:: `is-base:<commit-ish>`::
In at most one row, `(<committish>)` will appear to indicate the ref In at most one row, `(<commit-ish>)` will appear to indicate the ref
that is most likely the ref used as a starting point for the branch that is most likely the ref used as a starting point for the branch
that produced `<committish>`. This choice is made using a heuristic: that produced _<commit-ish>_. This choice is made using a heuristic:
choose the ref that minimizes the number of commits in the choose the ref that minimizes the number of commits in the
first-parent history of `<committish>` and not in the first-parent first-parent history of _<commit-ish>_ and not in the first-parent
history of the ref. history of the ref.
+ +
For example, consider the following figure of first-parent histories of For example, consider the following figure of first-parent histories of
@@ -225,29 +228,29 @@ common first-parent ancestor of `B` and `C` and ties are broken by the
earliest ref in the sorted order. earliest ref in the sorted order.
+ +
Note that this token will not appear if the first-parent history of Note that this token will not appear if the first-parent history of
`<committish>` does not intersect the first-parent histories of the _<commit-ish>_ does not intersect the first-parent histories of the
filtered refs. filtered refs.
describe[:options]:: `describe[:<option>,...]`::
A human-readable name, like linkgit:git-describe[1]; A human-readable name, like linkgit:git-describe[1];
empty string for undescribable commits. The `describe` string may empty string for undescribable commits. The `describe` string may
be followed by a colon and one or more comma-separated options. be followed by a colon and one or more comma-separated options.
+ +
-- --
tags=<bool-value>;; `tags=<bool-value>`;;
Instead of only considering annotated tags, consider Instead of only considering annotated tags, consider
lightweight tags as well; see the corresponding option in lightweight tags as well; see the corresponding option in
linkgit:git-describe[1] for details. linkgit:git-describe[1] for details.
abbrev=<number>;; `abbrev=<number>`;;
Use at least <number> hexadecimal digits; see the corresponding Use at least _<number>_ hexadecimal digits; see the corresponding
option in linkgit:git-describe[1] for details. option in linkgit:git-describe[1] for details.
match=<pattern>;; `match=<pattern>`;;
Only consider tags matching the given `glob(7)` pattern, Only consider tags matching the `glob`(7) _<pattern>_,
excluding the "refs/tags/" prefix; see the corresponding option excluding the `refs/tags/` prefix; see the corresponding option
in linkgit:git-describe[1] for details. in linkgit:git-describe[1] for details.
exclude=<pattern>;; `exclude=<pattern>`;;
Do not consider tags matching the given `glob(7)` pattern, Do not consider tags matching the `glob`(7) _<pattern>_,
excluding the "refs/tags/" prefix; see the corresponding option excluding the `refs/tags/` prefix; see the corresponding option
in linkgit:git-describe[1] for details. in linkgit:git-describe[1] for details.
-- --
@@ -279,7 +282,7 @@ variable (see linkgit:gitmailmap[5]).
The raw data in an object is `raw`. The raw data in an object is `raw`.
raw:size:: `raw:size`::
The raw data size of the object. The raw data size of the object.
Note that `--format=%(raw)` can not be used with `--python`, `--shell`, `--tcl`, Note that `--format=%(raw)` can not be used with `--python`, `--shell`, `--tcl`,
@@ -289,10 +292,10 @@ variable type.
The message in a commit or a tag object is `contents`, from which The message in a commit or a tag object is `contents`, from which
`contents:<part>` can be used to extract various parts out of: `contents:<part>` can be used to extract various parts out of:
contents:size:: `contents:size`::
The size in bytes of the commit or tag message. The size in bytes of the commit or tag message.
contents:subject:: `contents:subject`::
The first paragraph of the message, which typically is a The first paragraph of the message, which typically is a
single line, is taken as the "subject" of the commit or the single line, is taken as the "subject" of the commit or the
tag message. tag message.
@@ -300,19 +303,19 @@ contents:subject::
obtain same results. `:sanitize` can be appended to `subject` for obtain same results. `:sanitize` can be appended to `subject` for
subject line suitable for filename. subject line suitable for filename.
contents:body:: `contents:body`::
The remainder of the commit or the tag message that follows The remainder of the commit or the tag message that follows
the "subject". the "subject".
contents:signature:: `contents:signature`::
The optional GPG signature of the tag. The optional GPG signature of the tag.
contents:lines=N:: `contents:lines=<n>`::
The first `N` lines of the message. The first _<n>_ lines of the message.
Additionally, the trailers as interpreted by linkgit:git-interpret-trailers[1] Additionally, the trailers as interpreted by linkgit:git-interpret-trailers[1]
are obtained as `trailers[:options]` (or by using the historical alias are obtained as `trailers[:<option>,...]` (or by using the historical alias
`contents:trailers[:options]`). For valid [:option] values see `trailers` `contents:trailers[:<option>,...]`). For valid _<option>_ values see `trailers`
section of linkgit:git-log[1]. section of linkgit:git-log[1].
For sorting purposes, fields with numeric values sort in numeric order For sorting purposes, fields with numeric values sort in numeric order
@@ -332,8 +335,8 @@ option to linkgit:git-rev-list[1] takes). If this formatting is provided in
a `--sort` key, references will be sorted according to the byte-value of the a `--sort` key, references will be sorted according to the byte-value of the
formatted string rather than the numeric value of the underlying timestamp. formatted string rather than the numeric value of the underlying timestamp.
Some atoms like %(align) and %(if) always require a matching %(end). Some atoms like `%(align)` and `%(if)` always require a matching `%(end)`.
We call them "opening atoms" and sometimes denote them as %($open). We call them "opening atoms" and sometimes denote them as `%($open)`.
When a scripting language specific quoting is in effect, everything When a scripting language specific quoting is in effect, everything
between a top-level opening atom and its matching %(end) is evaluated between a top-level opening atom and its matching %(end) is evaluated
@@ -351,7 +354,7 @@ An example directly producing formatted text. Show the most recent
#!/bin/sh #!/bin/sh
git for-each-ref --count=3 --sort='-*authordate' \ git for-each-ref --count=3 --sort='-*authordate' \
--format='From: %(*authorname) %(*authoremail) `--format='From: %(*authorname) %(*authoremail)
Subject: %(*subject) Subject: %(*subject)
Date: %(*authordate) Date: %(*authordate)
Ref: %(*refname) Ref: %(*refname)
@@ -362,7 +365,7 @@ Ref: %(*refname)
A simple example showing the use of shell eval on the output, A simple example showing the use of shell eval on the output,
demonstrating the use of --shell. List the prefixes of all heads: demonstrating the use of `--shell`. List the prefixes of all heads:
------------ ------------
#!/bin/sh #!/bin/sh
@@ -430,7 +433,7 @@ eval "$eval"
------------ ------------
An example to show the usage of %(if)...%(then)...%(else)...%(end). An example to show the usage of `%(if)...%(then)...%(else)...%(end)`.
This prefixes the current branch with a star. This prefixes the current branch with a star.
------------ ------------
@@ -438,7 +441,7 @@ git for-each-ref --format="%(if)%(HEAD)%(then)* %(else) %(end)%(refname:short)"
------------ ------------
An example to show the usage of %(if)...%(then)...%(end). An example to show the usage of `%(if)...%(then)...%(end)`.
This prints the authorname, if present. This prints the authorname, if present.
------------ ------------

View File

@@ -295,7 +295,8 @@ header). Note also that `git send-email` already handles this
transformation for you, and this option should not be used if you are transformation for you, and this option should not be used if you are
feeding the result to `git send-email`. feeding the result to `git send-email`.
--[no-]force-in-body-from:: --force-in-body-from::
--no-force-in-body-from::
With the e-mail sender specified via the `--from` option, by With the e-mail sender specified via the `--from` option, by
default, an in-body "From:" to identify the real author of default, an in-body "From:" to identify the real author of
the commit is added at the top of the commit log message if the commit is added at the top of the commit log message if
@@ -314,7 +315,8 @@ feeding the result to `git send-email`.
`Cc:`, and custom) headers added so far from config or command `Cc:`, and custom) headers added so far from config or command
line. line.
--[no-]cover-letter:: --cover-letter::
--no-cover-letter::
In addition to the patches, generate a cover letter file In addition to the patches, generate a cover letter file
containing the branch description, shortlog and the overall diffstat. You can containing the branch description, shortlog and the overall diffstat. You can
fill in a description in the file before sending it out. fill in a description in the file before sending it out.
@@ -379,7 +381,8 @@ configuration options in linkgit:git-notes[1] to use this workflow).
The default is `--no-notes`, unless the `format.notes` configuration is The default is `--no-notes`, unless the `format.notes` configuration is
set. set.
--[no-]signature=<signature>:: --signature=<signature>::
--no-signature::
Add a signature to each message produced. Per RFC 3676 the signature Add a signature to each message produced. Per RFC 3676 the signature
is separated from the body by a line with '-- ' on it. If the is separated from the body by a line with '-- ' on it. If the
signature option is omitted the signature defaults to the Git version signature option is omitted the signature defaults to the Git version
@@ -411,7 +414,8 @@ you can use `--suffix=-patch` to get `0001-description-of-my-change-patch`.
Output an all-zero hash in each patch's From header instead Output an all-zero hash in each patch's From header instead
of the hash of the commit. of the hash of the commit.
--[no-]base[=<commit>]:: --no-base::
--base[=<commit>]::
Record the base tree information to identify the state the Record the base tree information to identify the state the
patch series applies to. See the BASE TREE INFORMATION section patch series applies to. See the BASE TREE INFORMATION section
below for details. If <commit> is "auto", a base commit is below for details. If <commit> is "auto", a base commit is

View File

@@ -31,7 +31,8 @@ index file, all SHA-1 references in the `refs` namespace, and all reflogs
Print out objects that exist but that aren't reachable from any Print out objects that exist but that aren't reachable from any
of the reference nodes. of the reference nodes.
--[no-]dangling:: --dangling::
--no-dangling::
Print objects that exist but that are never 'directly' used (default). Print objects that exist but that are never 'directly' used (default).
`--no-dangling` can be used to omit this information from the output. `--no-dangling` can be used to omit this information from the output.
@@ -97,14 +98,16 @@ care about this output and want to speed it up further.
compatible with linkgit:git-rev-parse[1], e.g. compatible with linkgit:git-rev-parse[1], e.g.
`HEAD@{1234567890}~25^2:src/`. `HEAD@{1234567890}~25^2:src/`.
--[no-]progress:: --progress::
--no-progress::
Progress status is reported on the standard error stream by Progress status is reported on the standard error stream by
default when it is attached to a terminal, unless default when it is attached to a terminal, unless
--no-progress or --verbose is specified. --progress forces --no-progress or --verbose is specified. --progress forces
progress status even if the standard error stream is not progress status even if the standard error stream is not
directed to a terminal. directed to a terminal.
--[no-]references:: --references::
--no-references::
Control whether to check the references database consistency Control whether to check the references database consistency
via 'git refs verify'. See linkgit:git-refs[1] for details. via 'git refs verify'. See linkgit:git-refs[1] for details.
The default is to check the references database. The default is to check the references database.

View File

@@ -53,11 +53,13 @@ configuration options such as `gc.auto` and `gc.autoPackLimit`, all
other housekeeping tasks (e.g. rerere, working trees, reflog...) will other housekeeping tasks (e.g. rerere, working trees, reflog...) will
be performed as well. be performed as well.
--[no-]detach:: --detach::
--no-detach::
Run in the background if the system supports it. This option overrides Run in the background if the system supports it. This option overrides
the `gc.autoDetach` config. the `gc.autoDetach` config.
--[no-]cruft:: --cruft::
--no-cruft::
When expiring unreachable objects, pack them separately into a When expiring unreachable objects, pack them separately into a
cruft pack instead of storing them as loose objects. `--cruft` cruft pack instead of storing them as loose objects. `--cruft`
is on by default. is on by default.

View File

@@ -25,8 +25,11 @@ commit-id::
Either the hash or the filename under [URL]/refs/ to Either the hash or the filename under [URL]/refs/ to
pull. pull.
-a, -c, -t:: -a::
-c::
-t::
These options are ignored for historical reasons. These options are ignored for historical reasons.
-v:: -v::
Report what is downloaded. Report what is downloaded.

View File

@@ -36,7 +36,8 @@ OPTIONS
fails if the name of packed archive does not end fails if the name of packed archive does not end
with .pack). with .pack).
--[no-]rev-index:: --rev-index::
--no-rev-index::
When this flag is provided, generate a reverse index When this flag is provided, generate a reverse index
(a `.rev` file) corresponding to the given pack. If (a `.rev` file) corresponding to the given pack. If
`--verify` is given, ensure that the existing `--verify` is given, ensure that the existing

View File

@@ -73,8 +73,10 @@ used as decoration if they match `HEAD`, `refs/heads/`, `refs/remotes/`,
Print out the ref name given on the command line by which each Print out the ref name given on the command line by which each
commit was reached. commit was reached.
`--[no-]mailmap`:: `--mailmap`::
`--[no-]use-mailmap`:: `--no-mailmap`::
`--use-mailmap`::
`--no-use-mailmap`::
Use mailmap file to map author and committer names and email Use mailmap file to map author and committer names and email
addresses to canonical real names and email addresses. See addresses to canonical real names and email addresses. See
linkgit:git-shortlog[1]. linkgit:git-shortlog[1].

View File

@@ -59,7 +59,8 @@ OPTIONS
do not list filenames multiple times if they have multiple do not list filenames multiple times if they have multiple
conflicting stages). conflicting stages).
--[no-]messages:: --messages::
--no-messages::
Write any informational messages such as "Auto-merging <path>" Write any informational messages such as "Auto-merging <path>"
or CONFLICT notices to the end of stdout. If unspecified, the or CONFLICT notices to the end of stdout. If unspecified, the
default is to include these messages if there are merge default is to include these messages if there are merge

View File

@@ -25,7 +25,8 @@ OPTIONS
+ +
`<dir>` must be an alternate of the current repository. `<dir>` must be an alternate of the current repository.
--[no-]progress:: --progress::
--no-progress::
Turn progress on/off explicitly. If neither is specified, progress is Turn progress on/off explicitly. If neither is specified, progress is
shown if standard error is connected to a terminal. Supported by shown if standard error is connected to a terminal. Supported by
sub-commands `write`, `verify`, `expire`, and `repack. sub-commands `write`, `verify`, `expire`, and `repack.

View File

@@ -66,6 +66,7 @@ Clone
~~~~~ ~~~~~
Generally, 'git p4 clone' is used to create a new Git directory Generally, 'git p4 clone' is used to create a new Git directory
from an existing p4 repository: from an existing p4 repository:
------------ ------------
$ git p4 clone //depot/path/project $ git p4 clone //depot/path/project
------------ ------------

View File

@@ -243,7 +243,8 @@ depth is 4095.
Add --no-reuse-object if you want to force a uniform compression Add --no-reuse-object if you want to force a uniform compression
level on all data no matter the source. level on all data no matter the source.
--[no-]sparse:: --sparse::
--no-sparse::
Toggle the "sparse" algorithm to determine which objects to include in Toggle the "sparse" algorithm to determine which objects to include in
the pack, when combined with the "--revs" option. This algorithm the pack, when combined with the "--revs" option. This algorithm
only walks trees that appear in paths that introduce new objects. only walks trees that appear in paths that introduce new objects.

View File

@@ -87,7 +87,8 @@ OPTIONS
--verbose:: --verbose::
Pass --verbose to git-fetch and git-merge. Pass --verbose to git-fetch and git-merge.
--[no-]recurse-submodules[=(yes|on-demand|no)]:: --recurse-submodules[=(yes|on-demand|no)]::
--no-recurse-submodules::
This option controls if new commits of populated submodules should This option controls if new commits of populated submodules should
be fetched, and if the working trees of active submodules should be be fetched, and if the working trees of active submodules should be
updated, too (see linkgit:git-fetch[1], linkgit:git-config[1] and updated, too (see linkgit:git-fetch[1], linkgit:git-config[1] and

View File

@@ -197,7 +197,8 @@ already exists on the remote side.
with configuration variable `push.followTags`. For more with configuration variable `push.followTags`. For more
information, see `push.followTags` in linkgit:git-config[1]. information, see `push.followTags` in linkgit:git-config[1].
--[no-]signed:: --signed::
--no-signed::
--signed=(true|false|if-asked):: --signed=(true|false|if-asked)::
GPG-sign the push request to update refs on the receiving GPG-sign the push request to update refs on the receiving
side, to allow it to be checked by the hooks and/or be side, to allow it to be checked by the hooks and/or be
@@ -208,7 +209,8 @@ already exists on the remote side.
will also fail if the actual call to `gpg --sign` fails. See will also fail if the actual call to `gpg --sign` fails. See
linkgit:git-receive-pack[1] for the details on the receiving end. linkgit:git-receive-pack[1] for the details on the receiving end.
--[no-]atomic:: --atomic::
--no-atomic::
Use an atomic transaction on the remote side if available. Use an atomic transaction on the remote side if available.
Either all refs are updated, or on error, no refs are updated. Either all refs are updated, or on error, no refs are updated.
If the server does not support atomic pushes the push will fail. If the server does not support atomic pushes the push will fail.
@@ -232,7 +234,8 @@ already exists on the remote side.
repository over ssh, and you do not have the program in repository over ssh, and you do not have the program in
a directory on the default $PATH. a directory on the default $PATH.
--[no-]force-with-lease:: --force-with-lease::
--no-force-with-lease::
--force-with-lease=<refname>:: --force-with-lease=<refname>::
--force-with-lease=<refname>:<expect>:: --force-with-lease=<refname>:<expect>::
Usually, "git push" refuses to update a remote ref that is Usually, "git push" refuses to update a remote ref that is
@@ -350,7 +353,8 @@ one branch, use a `+` in front of the refspec to push (e.g `git push
origin +master` to force a push to the `master` branch). See the origin +master` to force a push to the `master` branch). See the
`<refspec>...` section above for details. `<refspec>...` section above for details.
--[no-]force-if-includes:: --force-if-includes::
--no-force-if-includes::
Force an update only if the tip of the remote-tracking ref Force an update only if the tip of the remote-tracking ref
has been integrated locally. has been integrated locally.
+ +
@@ -377,7 +381,8 @@ Specifying `--no-force-if-includes` disables this behavior.
linkgit:git-pull[1] and other commands. For more information, linkgit:git-pull[1] and other commands. For more information,
see `branch.<name>.merge` in linkgit:git-config[1]. see `branch.<name>.merge` in linkgit:git-config[1].
--[no-]thin:: --thin::
--no-thin::
These options are passed to linkgit:git-send-pack[1]. A thin transfer These options are passed to linkgit:git-send-pack[1]. A thin transfer
significantly reduces the amount of sent data when the sender and significantly reduces the amount of sent data when the sender and
receiver share many of the same objects in common. The default is receiver share many of the same objects in common. The default is
@@ -419,7 +424,8 @@ When using 'on-demand' or 'only', if a submodule has a
"push.recurseSubmodules={on-demand,only}" or "submodule.recurse" configuration, "push.recurseSubmodules={on-demand,only}" or "submodule.recurse" configuration,
further recursion will occur. In this case, "only" is treated as "on-demand". further recursion will occur. In this case, "only" is treated as "on-demand".
--[no-]verify:: --verify::
--no-verify::
Toggle the pre-push hook (see linkgit:githooks[5]). The Toggle the pre-push hook (see linkgit:githooks[5]). The
default is --verify, giving the hook a chance to prevent the default is --verify, giving the hook a chance to prevent the
push. With --no-verify, the hook is bypassed completely. push. With --no-verify, the hook is bypassed completely.

View File

@@ -96,7 +96,8 @@ diff.
--remerge-diff:: --remerge-diff::
Convenience option, equivalent to `--diff-merges=remerge`. Convenience option, equivalent to `--diff-merges=remerge`.
--[no-]notes[=<ref>]:: --notes[=<ref>]::
--no-notes::
This flag is passed to the `git log` program This flag is passed to the `git log` program
(see linkgit:git-log[1]) that generates the patches. (see linkgit:git-log[1]) that generates the patches.

View File

@@ -100,7 +100,8 @@ OPTIONS
directories the index file and index output file are directories the index file and index output file are
located in. located in.
--[no-]recurse-submodules:: --recurse-submodules::
--no-recurse-submodules::
Using --recurse-submodules will update the content of all active Using --recurse-submodules will update the content of all active
submodules according to the commit recorded in the superproject by submodules according to the commit recorded in the superproject by
calling read-tree recursively, also setting the submodules' HEAD to be calling read-tree recursively, also setting the submodules' HEAD to be

View File

@@ -687,7 +687,7 @@ In addition, the following pairs of options are incompatible:
* --fork-point and --root * --fork-point and --root
BEHAVIORAL DIFFERENCES BEHAVIORAL DIFFERENCES
----------------------- ----------------------
`git rebase` has two primary backends: 'apply' and 'merge'. (The 'apply' `git rebase` has two primary backends: 'apply' and 'merge'. (The 'apply'
backend used to be known as the 'am' backend, but the name led to backend used to be known as the 'am' backend, but the name led to

View File

@@ -17,7 +17,7 @@ git refs list [--count=<count>] [--shell|--perl|--python|--tcl]
[--merged[=<object>]] [--no-merged[=<object>]] [--merged[=<object>]] [--no-merged[=<object>]]
[--contains[=<object>]] [--no-contains[=<object>]] [--contains[=<object>]] [--no-contains[=<object>]]
[(--exclude=<pattern>)...] [--start-after=<marker>] [(--exclude=<pattern>)...] [--start-after=<marker>]
[ --stdin | <pattern>... ] [ --stdin | (<pattern>...)]
DESCRIPTION DESCRIPTION
----------- -----------
@@ -27,10 +27,10 @@ This command provides low-level access to refs.
COMMANDS COMMANDS
-------- --------
migrate:: `migrate`::
Migrate ref store between different formats. Migrate ref store between different formats.
verify:: `verify`::
Verify reference database consistency. Verify reference database consistency.
list:: list::
@@ -41,32 +41,32 @@ list::
OPTIONS OPTIONS
------- -------
The following options are specific to 'git refs migrate': The following options are specific to `git refs migrate`:
--ref-format=<format>:: `--ref-format=<format>`::
The ref format to migrate the ref store to. Can be one of: The ref format to migrate the ref store to. Can be one of:
+ +
include::ref-storage-format.adoc[] include::ref-storage-format.adoc[]
--dry-run:: `--dry-run`::
Perform the migration, but do not modify the repository. The migrated Perform the migration, but do not modify the repository. The migrated
refs will be written into a separate directory that can be inspected refs will be written into a separate directory that can be inspected
separately. The name of the directory will be reported on stdout. This separately. The name of the directory will be reported on stdout. This
can be used to double check that the migration works as expected before can be used to double check that the migration works as expected before
performing the actual migration. performing the actual migration.
--reflog:: `--reflog`::
--no-reflog:: `--no-reflog`::
Choose between migrating the reflog data to the new backend, Choose between migrating the reflog data to the new backend,
and discarding them. The default is "--reflog", to migrate. and discarding them. The default is "--reflog", to migrate.
The following options are specific to 'git refs verify': The following options are specific to `git refs verify`:
--strict:: `--strict`::
Enable stricter error checking. This will cause warnings to be Enable stricter error checking. This will cause warnings to be
reported as errors. See linkgit:git-fsck[1]. reported as errors. See linkgit:git-fsck[1].
--verbose:: `--verbose`::
When verifying the reference database consistency, be chatty. When verifying the reference database consistency, be chatty.
The following options are specific to 'git refs list': The following options are specific to 'git refs list':

View File

@@ -90,7 +90,8 @@ but carries forward unmerged index entries.
If a file that is different between _<commit>_ and `HEAD` has local If a file that is different between _<commit>_ and `HEAD` has local
changes, reset is aborted. changes, reset is aborted.
`--[no-]recurse-submodules`:: `--recurse-submodules`::
`--no-recurse-submodules`::
When the working tree is updated, using `--recurse-submodules` will When the working tree is updated, using `--recurse-submodules` will
also recursively reset the working tree of all active submodules also recursively reset the working tree of all active submodules
according to the commit recorded in the superproject, also setting according to the commit recorded in the superproject, also setting

View File

@@ -115,7 +115,8 @@ illustration below where `[PATCH v2 0/3]` is in reply to `[PATCH 0/2]`:
Only necessary if `--compose` is also set. If `--compose` Only necessary if `--compose` is also set. If `--compose`
is not set, this will be prompted for. is not set, this will be prompted for.
--[no-]outlook-id-fix:: --outlook-id-fix::
--no-outlook-id-fix::
Microsoft Outlook SMTP servers discard the Message-ID sent via email and Microsoft Outlook SMTP servers discard the Message-ID sent via email and
assign a new random Message-ID, thus breaking threads. assign a new random Message-ID, thus breaking threads.
+ +
@@ -350,7 +351,8 @@ Automating
--no-header-cmd:: --no-header-cmd::
Disable any header command in use. Disable any header command in use.
--[no-]chain-reply-to:: --chain-reply-to::
--no-chain-reply-to::
If this is set, each email will be sent as a reply to the previous If this is set, each email will be sent as a reply to the previous
email sent. If disabled with `--no-chain-reply-to`, all emails after email sent. If disabled with `--no-chain-reply-to`, all emails after
the first will be sent as replies to the first email sent. When using the first will be sent as replies to the first email sent. When using
@@ -364,19 +366,22 @@ Automating
values in the `sendemail` section. The default identity is values in the `sendemail` section. The default identity is
the value of `sendemail.identity`. the value of `sendemail.identity`.
--[no-]signed-off-by-cc:: --signed-off-by-cc::
--no-signed-off-by-cc::
If this is set, add emails found in the `Signed-off-by` trailer or `Cc:` If this is set, add emails found in the `Signed-off-by` trailer or `Cc:`
lines to the cc list. Default is the value of `sendemail.signedOffByCc` lines to the cc list. Default is the value of `sendemail.signedOffByCc`
configuration value; if that is unspecified, default to configuration value; if that is unspecified, default to
`--signed-off-by-cc`. `--signed-off-by-cc`.
--[no-]cc-cover:: --cc-cover::
--no-cc-cover::
If this is set, emails found in `Cc:` headers in the first patch of If this is set, emails found in `Cc:` headers in the first patch of
the series (typically the cover letter) are added to the cc list the series (typically the cover letter) are added to the cc list
for each email set. Default is the value of `sendemail.ccCover` for each email set. Default is the value of `sendemail.ccCover`
configuration value; if that is unspecified, default to `--no-cc-cover`. configuration value; if that is unspecified, default to `--no-cc-cover`.
--[no-]to-cover:: --to-cover::
--no-to-cover::
If this is set, emails found in `To:` headers in the first patch of If this is set, emails found in `To:` headers in the first patch of
the series (typically the cover letter) are added to the to list the series (typically the cover letter) are added to the to list
for each email set. Default is the value of `sendemail.toCover` for each email set. Default is the value of `sendemail.toCover`
@@ -407,12 +412,14 @@ Default is the value of `sendemail.suppressCc` configuration value; if
that is unspecified, default to `self` if `--suppress-from` is that is unspecified, default to `self` if `--suppress-from` is
specified, as well as `body` if `--no-signed-off-cc` is specified. specified, as well as `body` if `--no-signed-off-cc` is specified.
--[no-]suppress-from:: --suppress-from::
--no-suppress-from::
If this is set, do not add the `From:` address to the `Cc:` list. If this is set, do not add the `From:` address to the `Cc:` list.
Default is the value of `sendemail.suppressFrom` configuration Default is the value of `sendemail.suppressFrom` configuration
value; if that is unspecified, default to `--no-suppress-from`. value; if that is unspecified, default to `--no-suppress-from`.
--[no-]thread:: --thread::
--no-thread::
If this is set, the `In-Reply-To` and `References` headers will be If this is set, the `In-Reply-To` and `References` headers will be
added to each email sent. Whether each mail refers to the added to each email sent. Whether each mail refers to the
previous email (`deep` threading per `git format-patch` previous email (`deep` threading per `git format-patch`
@@ -430,7 +437,8 @@ exists when `git send-email` is asked to add it (especially note that
Failure to do so may not produce the expected result in the Failure to do so may not produce the expected result in the
recipient's MUA. recipient's MUA.
--[no-]mailmap:: --mailmap::
--no-mailmap::
Use the mailmap file (see linkgit:gitmailmap[5]) to map all Use the mailmap file (see linkgit:gitmailmap[5]) to map all
addresses to their canonical real name and email address. Additional addresses to their canonical real name and email address. Additional
mailmap data specific to `git send-email` may be provided using the mailmap data specific to `git send-email` may be provided using the
@@ -459,7 +467,8 @@ have been specified, in which case default to `compose`.
--dry-run:: --dry-run::
Do everything except actually send the emails. Do everything except actually send the emails.
--[no-]format-patch:: --format-patch::
--no-format-patch::
When an argument may be understood either as a reference or as a file name, When an argument may be understood either as a reference or as a file name,
choose to understand it as a format-patch argument (`--format-patch`) choose to understand it as a format-patch argument (`--format-patch`)
or as a file name (`--no-format-patch`). By default, when such a conflict or as a file name (`--no-format-patch`). By default, when such a conflict
@@ -469,7 +478,8 @@ have been specified, in which case default to `compose`.
Make `git send-email` less verbose. One line per email should be Make `git send-email` less verbose. One line per email should be
all that is output. all that is output.
--[no-]validate:: --validate::
--no-validate::
Perform sanity checks on patches. Perform sanity checks on patches.
Currently, validation means the following: Currently, validation means the following:
+ +

View File

@@ -71,7 +71,8 @@ be in a separate packet, and the list must end with a flush packet.
fails to update then the entire push will fail without changing any fails to update then the entire push will fail without changing any
refs. refs.
--[no-]signed:: --signed::
--no-signed::
--signed=(true|false|if-asked):: --signed=(true|false|if-asked)::
GPG-sign the push request to update refs on the receiving GPG-sign the push request to update refs on the receiving
side, to allow it to be checked by the hooks and/or be side, to allow it to be checked by the hooks and/or be

View File

@@ -442,7 +442,8 @@ options carefully.
clone with a history truncated to the specified number of revisions. clone with a history truncated to the specified number of revisions.
See linkgit:git-clone[1] See linkgit:git-clone[1]
--[no-]recommend-shallow:: --recommend-shallow::
--no-recommend-shallow::
This option is only valid for the update command. This option is only valid for the update command.
The initial clone of a submodule will use the recommended The initial clone of a submodule will use the recommended
`submodule.<name>.shallow` as provided by the `.gitmodules` file `submodule.<name>.shallow` as provided by the `.gitmodules` file
@@ -454,7 +455,8 @@ options carefully.
Clone new submodules in parallel with as many jobs. Clone new submodules in parallel with as many jobs.
Defaults to the `submodule.fetchJobs` option. Defaults to the `submodule.fetchJobs` option.
--[no-]single-branch:: --single-branch::
--no-single-branch::
This option is only valid for the update command. This option is only valid for the update command.
Clone only one branch during update: HEAD or one specified by --branch. Clone only one branch during update: HEAD or one specified by --branch.

View File

@@ -1012,9 +1012,11 @@ branch.
If you do merge, note the following rule: 'git svn dcommit' will If you do merge, note the following rule: 'git svn dcommit' will
attempt to commit on top of the SVN commit named in attempt to commit on top of the SVN commit named in
------------------------------------------------------------------------ ------------------------------------------------------------------------
git log --grep=^git-svn-id: --first-parent -1 git log --grep=^git-svn-id: --first-parent -1
------------------------------------------------------------------------ ------------------------------------------------------------------------
You 'must' therefore ensure that the most recent commit of the branch You 'must' therefore ensure that the most recent commit of the branch
you want to dcommit to is the 'first' parent of the merge. Chaos will you want to dcommit to is the 'first' parent of the merge. Chaos will
ensue otherwise, especially if the first parent is an older commit on ensue otherwise, especially if the first parent is an older commit on

View File

@@ -86,7 +86,8 @@ OPTIONS
--chmod=(+|-)x:: --chmod=(+|-)x::
Set the execute permissions on the updated files. Set the execute permissions on the updated files.
--[no-]assume-unchanged:: --assume-unchanged::
--no-assume-unchanged::
When this flag is specified, the object names recorded When this flag is specified, the object names recorded
for the paths are not updated. Instead, this option for the paths are not updated. Instead, this option
sets/unsets the "assume unchanged" bit for the sets/unsets the "assume unchanged" bit for the
@@ -108,18 +109,21 @@ you will need to handle the situation manually.
Like `--refresh`, but checks stat information unconditionally, Like `--refresh`, but checks stat information unconditionally,
without regard to the "assume unchanged" setting. without regard to the "assume unchanged" setting.
--[no-]skip-worktree:: --skip-worktree::
--no-skip-worktree::
When one of these flags is specified, the object names recorded When one of these flags is specified, the object names recorded
for the paths are not updated. Instead, these options for the paths are not updated. Instead, these options
set and unset the "skip-worktree" bit for the paths. See set and unset the "skip-worktree" bit for the paths. See
section "Skip-worktree bit" below for more information. section "Skip-worktree bit" below for more information.
--[no-]ignore-skip-worktree-entries:: --ignore-skip-worktree-entries::
--no-ignore-skip-worktree-entries::
Do not remove skip-worktree (AKA "index-only") entries even when Do not remove skip-worktree (AKA "index-only") entries even when
the `--remove` option was specified. the `--remove` option was specified.
--[no-]fsmonitor-valid:: --fsmonitor-valid::
--no-fsmonitor-valid::
When one of these flags is specified, the object names recorded When one of these flags is specified, the object names recorded
for the paths are not updated. Instead, these options for the paths are not updated. Instead, these options
set and unset the "fsmonitor valid" bit for the paths. See set and unset the "fsmonitor valid" bit for the paths. See

View File

@@ -25,7 +25,8 @@ repository. For push operations, see 'git send-pack'.
OPTIONS OPTIONS
------- -------
--[no-]strict:: --strict::
--no-strict::
Do not try <directory>/.git/ if <directory> is not a Git directory. Do not try <directory>/.git/ if <directory> is not a Git directory.
--timeout=<n>:: --timeout=<n>::

View File

@@ -200,13 +200,15 @@ To remove a locked worktree, specify `--force` twice.
With `add`, detach `HEAD` in the new worktree. See "DETACHED HEAD" With `add`, detach `HEAD` in the new worktree. See "DETACHED HEAD"
in linkgit:git-checkout[1]. in linkgit:git-checkout[1].
--[no-]checkout:: --checkout::
--no-checkout::
By default, `add` checks out `<commit-ish>`, however, `--no-checkout` can By default, `add` checks out `<commit-ish>`, however, `--no-checkout` can
be used to suppress checkout in order to make customizations, be used to suppress checkout in order to make customizations,
such as configuring sparse-checkout. See "Sparse checkout" such as configuring sparse-checkout. See "Sparse checkout"
in linkgit:git-read-tree[1]. in linkgit:git-read-tree[1].
--[no-]guess-remote:: --guess-remote::
--no-guess-remote::
With `worktree add <path>`, without `<commit-ish>`, instead With `worktree add <path>`, without `<commit-ish>`, instead
of creating a new branch from `HEAD`, if there exists a tracking of creating a new branch from `HEAD`, if there exists a tracking
branch in exactly one remote matching the basename of `<path>`, branch in exactly one remote matching the basename of `<path>`,
@@ -216,7 +218,8 @@ To remove a locked worktree, specify `--force` twice.
This can also be set up as the default behaviour by using the This can also be set up as the default behaviour by using the
`worktree.guessRemote` config option. `worktree.guessRemote` config option.
--[no-]relative-paths:: --relative-paths::
--no-relative-paths::
Link worktrees using relative paths or absolute paths (default). Link worktrees using relative paths or absolute paths (default).
Overrides the `worktree.useRelativePaths` config option, see Overrides the `worktree.useRelativePaths` config option, see
linkgit:git-config[1]. linkgit:git-config[1].
@@ -224,7 +227,8 @@ This can also be set up as the default behaviour by using the
With `repair`, the linking files will be updated if there's an absolute/relative With `repair`, the linking files will be updated if there's an absolute/relative
mismatch, even if the links are correct. mismatch, even if the links are correct.
--[no-]track:: --track::
--no-track::
When creating a new branch, if `<commit-ish>` is a branch, When creating a new branch, if `<commit-ish>` is a branch,
mark it as "upstream" from the new branch. This is the mark it as "upstream" from the new branch. This is the
default if `<commit-ish>` is a remote-tracking branch. See default if `<commit-ish>` is a remote-tracking branch. See

View File

@@ -318,7 +318,7 @@ Extra Parameter.
Smart Service git-upload-pack Smart Service git-upload-pack
------------------------------ -----------------------------
This service reads from the repository pointed to by `$GIT_URL`. This service reads from the repository pointed to by `$GIT_URL`.
Clients MUST first perform ref discovery with Clients MUST first perform ref discovery with

View File

@@ -8,6 +8,7 @@ gitsubmodules - Mounting one repository inside another
SYNOPSIS SYNOPSIS
-------- --------
.gitmodules, $GIT_DIR/config .gitmodules, $GIT_DIR/config
------------------ ------------------
git submodule git submodule
git <command> --recurse-submodules git <command> --recurse-submodules
@@ -240,7 +241,7 @@ Workflow for a third party library
Workflow for an artificially split repo Workflow for an artificially split repo
-------------------------------------- ---------------------------------------
# Enable recursion for relevant commands, such that # Enable recursion for relevant commands, such that
# regular commands recurse into submodules by default # regular commands recurse into submodules by default

View File

@@ -178,7 +178,7 @@ $export_ok::
Show repository only if this file exists (in repository). Only Show repository only if this file exists (in repository). Only
effective if this variable evaluates to true. Can be set when effective if this variable evaluates to true. Can be set when
building gitweb by setting `GITWEB_EXPORT_OK`. This path is building gitweb by setting `GITWEB_EXPORT_OK`. This path is
relative to `GIT_DIR`. git-daemon[1] uses 'git-daemon-export-ok', relative to `GIT_DIR`. linkgit:git-daemon[1] uses 'git-daemon-export-ok',
unless started with `--export-all`. By default this variable is unless started with `--export-all`. By default this variable is
not set, which means that this feature is turned off. not set, which means that this feature is turned off.

View File

@@ -0,0 +1,48 @@
#!/usr/bin/perl
use strict;
use warnings;
my $exit_code = 0;
sub report {
my ($msg) = @_;
print STDERR "$ARGV:$.: $msg\n";
$exit_code = 1;
}
my $line_length = 0;
my $in_section = 0;
my $section_header = "";
while (my $line = <>) {
if (($line =~ /^\+?$/) ||
($line =~ /^\[.*\]$/) ||
($line =~ /^ifdef::/)) {
$line_length = 0;
} elsif ($line =~ /^[^-.]/) {
$line_length = length($line);
} elsif (($line =~ /^-{3,}$/) || ($line =~ /^\.{3,}$/)) {
if ($in_section) {
if ($line eq $section_header) {
$in_section = 0;
}
next;
}
if ($line_length == 0) {
$in_section = 1;
$section_header = $line;
next;
}
if (($line_length != 0) && (length($line) != $line_length)) {
report("section delimiter not preceded by an empty line");
}
$line_length = 0;
}
}
if ($in_section) {
report("section not finished");
}
exit $exit_code;

View File

@@ -0,0 +1,33 @@
#!/usr/bin/perl
use strict;
use warnings;
my $exit_code = 0;
sub report {
my ($line, $msg) = @_;
chomp $line;
print STDERR "$ARGV:$.: '$line' $msg\n";
$exit_code = 1;
}
my $synopsis_style = 0;
while (my $line = <>) {
if ($line =~ /^[ \t]*`?[-a-z0-9.]+`?(, `?[-a-z0-9.]+`?)+(::|;;)$/) {
report($line, "multiple parameters in a definition list item");
}
if ($line =~ /^`?--\[no-\][a-z0-9-]+.*(::|;;)$/) {
report($line, "definition list item with a `--[no-]` parameter");
}
if ($line =~ /^\[synopsis\]$/) {
$synopsis_style = 1;
}
if (($line =~ /^(-[-a-z].*|<[-a-z0-9]+>(\.{3})?)(::|;;)$/) && ($synopsis_style)) {
report($line, "synopsis style and definition list item not backquoted");
}
}
exit $exit_code;

View File

@@ -41,6 +41,13 @@ die "BUG: No list of valid linkgit:* files given" unless @ARGV;
@ARGV = $to_check; @ARGV = $to_check;
while (<>) { while (<>) {
my $line = $_; my $line = $_;
while ($line =~ m/(.{,8})((git[-a-z]+|scalar)\[(\d)*\])/g) {
my $pos = pos $line;
my ($macro, $target, $page, $section) = ($1, $2, $3, $4);
if ( $macro ne "linkgit:" && $macro !~ "ifn?def::" && $macro ne "endif::" ) {
report($pos, $line, $target, "linkgit: macro expected");
}
}
while ($line =~ m/linkgit:((.*?)\[(\d)\])/g) { while ($line =~ m/linkgit:((.*?)\[(\d)\])/g) {
my $pos = pos $line; my $pos = pos $line;
my ($target, $page, $section) = ($1, $2, $3); my ($target, $page, $section) = ($1, $2, $3);

View File

@@ -135,7 +135,8 @@ ifdef::git-pull[]
Only useful when merging. Only useful when merging.
endif::git-pull[] endif::git-pull[]
`--[no-]verify`:: `--verify`::
`--no-verify`::
By default, the pre-merge and commit-msg hooks are run. By default, the pre-merge and commit-msg hooks are run.
When `--no-verify` is given, these are bypassed. When `--no-verify` is given, these are bypassed.
See also linkgit:githooks[5]. See also linkgit:githooks[5].

View File

@@ -3,6 +3,7 @@ Description
When specifying `--tool=vimdiff` in `git mergetool` Git will open Vim with a 4 When specifying `--tool=vimdiff` in `git mergetool` Git will open Vim with a 4
windows layout distributed in the following way: windows layout distributed in the following way:
.... ....
------------------------------------------ ------------------------------------------
| | | | | | | |
@@ -56,6 +57,7 @@ needed in this case. The next layout definition is equivalent:
+ +
-- --
If, for some reason, we are not interested in the `BASE` buffer. If, for some reason, we are not interested in the `BASE` buffer.
.... ....
------------------------------------------ ------------------------------------------
| | | | | | | |
@@ -72,6 +74,7 @@ If, for some reason, we are not interested in the `BASE` buffer.
Only the `MERGED` buffer will be shown. Note, however, that all the other Only the `MERGED` buffer will be shown. Note, however, that all the other
ones are still loaded in vim, and you can access them with the "buffers" ones are still loaded in vim, and you can access them with the "buffers"
command. command.
.... ....
------------------------------------------ ------------------------------------------
| | | |
@@ -88,6 +91,7 @@ command.
When `MERGED` is not present in the layout, you must "mark" one of the When `MERGED` is not present in the layout, you must "mark" one of the
buffers with an arobase (`@`). That will become the buffer you need to edit and buffers with an arobase (`@`). That will become the buffer you need to edit and
save after resolving the conflicts. save after resolving the conflicts.
.... ....
------------------------------------------ ------------------------------------------
| | | | | |
@@ -106,6 +110,7 @@ save after resolving the conflicts.
Three tabs will open: the first one is a copy of the default layout, while Three tabs will open: the first one is a copy of the default layout, while
the other two only show the differences between (`BASE` and `LOCAL`) and the other two only show the differences between (`BASE` and `LOCAL`) and
(`BASE` and `REMOTE`) respectively. (`BASE` and `REMOTE`) respectively.
.... ....
------------------------------------------ ------------------------------------------
| <TAB #1> | TAB #2 | TAB #3 | | | <TAB #1> | TAB #2 | TAB #3 | |
@@ -119,6 +124,7 @@ the other two only show the differences between (`BASE` and `LOCAL`) and
| | | |
------------------------------------------ ------------------------------------------
.... ....
.... ....
------------------------------------------ ------------------------------------------
| TAB #1 | <TAB #2> | TAB #3 | | | TAB #1 | <TAB #2> | TAB #3 | |
@@ -132,6 +138,7 @@ the other two only show the differences between (`BASE` and `LOCAL`) and
| | | | | |
------------------------------------------ ------------------------------------------
.... ....
.... ....
------------------------------------------ ------------------------------------------
| TAB #1 | TAB #2 | <TAB #3> | | | TAB #1 | TAB #2 | <TAB #3> | |
@@ -151,6 +158,7 @@ the other two only show the differences between (`BASE` and `LOCAL`) and
-- --
Same as the previous example, but adds a fourth tab with the same Same as the previous example, but adds a fourth tab with the same
information as the first tab, with a different layout. information as the first tab, with a different layout.
.... ....
--------------------------------------------- ---------------------------------------------
| TAB #1 | TAB #2 | TAB #3 | <TAB #4> | | TAB #1 | TAB #2 | TAB #3 | <TAB #4> |

View File

@@ -71,7 +71,8 @@ HEAD[:<directory>]`.
Instead of checking out the branch pointed to by the cloned Instead of checking out the branch pointed to by the cloned
repository's HEAD, check out the `<name>` branch instead. repository's HEAD, check out the `<name>` branch instead.
--[no-]single-branch:: --single-branch::
--no-single-branch::
Clone only the history leading to the tip of a single branch, either Clone only the history leading to the tip of a single branch, either
specified by the `--branch` option or the primary branch remote's specified by the `--branch` option or the primary branch remote's
`HEAD` points at. `HEAD` points at.
@@ -81,23 +82,27 @@ remote-tracking branch for the branch this option was used for the initial
cloning. If the HEAD at the remote did not point at any branch when cloning. If the HEAD at the remote did not point at any branch when
`--single-branch` clone was made, no remote-tracking branch is created. `--single-branch` clone was made, no remote-tracking branch is created.
--[no-]src:: --src::
--no-src::
By default, `scalar clone` places the cloned repository within a By default, `scalar clone` places the cloned repository within a
`<entlistment>/src` directory. Use `--no-src` to place the cloned `<entlistment>/src` directory. Use `--no-src` to place the cloned
repository directly in the `<enlistment>` directory. repository directly in the `<enlistment>` directory.
--[no-]tags:: --tags::
--no-tags::
By default, `scalar clone` will fetch the tag objects advertised by By default, `scalar clone` will fetch the tag objects advertised by
the remote and future `git fetch` commands will do the same. Use the remote and future `git fetch` commands will do the same. Use
`--no-tags` to avoid fetching tags in `scalar clone` and to configure `--no-tags` to avoid fetching tags in `scalar clone` and to configure
the repository to avoid fetching tags in the future. To fetch tags after the repository to avoid fetching tags in the future. To fetch tags after
cloning with `--no-tags`, run `git fetch --tags`. cloning with `--no-tags`, run `git fetch --tags`.
--[no-]full-clone:: --full-clone::
--no-full-clone::
A sparse-checkout is initialized by default. This behavior can be A sparse-checkout is initialized by default. This behavior can be
turned off via `--full-clone`. turned off via `--full-clone`.
--[no-]maintenance:: --maintenance::
--no-maintenance::
By default, `scalar clone` configures the enlistment to use Git's By default, `scalar clone` configures the enlistment to use Git's
background maintenance feature. Use the `--no-maintenance` to skip background maintenance feature. Use the `--no-maintenance` to skip
this configuration. this configuration.
@@ -122,7 +127,8 @@ Note: when this subcommand is called in a worktree that is called `src/`, its
parent directory is considered to be the Scalar enlistment. If the worktree is parent directory is considered to be the Scalar enlistment. If the worktree is
_not_ called `src/`, it itself will be considered to be the Scalar enlistment. _not_ called `src/`, it itself will be considered to be the Scalar enlistment.
--[no-]maintenance:: --maintenance::
--no-maintenance::
By default, `scalar register` configures the enlistment to use Git's By default, `scalar register` configures the enlistment to use Git's
background maintenance feature. Use the `--no-maintenance` to skip background maintenance feature. Use the `--no-maintenance` to skip
this configuration. This does not disable any maintenance that may this configuration. This does not disable any maintenance that may

View File

@@ -39,7 +39,10 @@ It is also important that you do not specify the `--objects` flag for the
the objects will be walked in a separate way based on those starting the objects will be walked in a separate way based on those starting
commits. commits.
`commits`, `blobs`, `trees`, `tags`:: `commits`::
`blobs`::
`trees`::
`tags`::
By default, these members are enabled and signal that the path-walk By default, these members are enabled and signal that the path-walk
API should call the `path_fn` on objects of these types. Specialized API should call the `path_fn` on objects of these types. Specialized
applications could disable some options to make it simpler to walk applications could disable some options to make it simpler to walk

View File

@@ -24,6 +24,7 @@ After the version negotiation Git sends a list of all capabilities that
it supports and a flush packet. Git expects to read a list of desired it supports and a flush packet. Git expects to read a list of desired
capabilities, which must be a subset of the supported capabilities list, capabilities, which must be a subset of the supported capabilities list,
and a flush packet as response: and a flush packet as response:
------------------------ ------------------------
packet: git> git-filter-client packet: git> git-filter-client
packet: git> version=2 packet: git> version=2

View File

@@ -15,7 +15,7 @@ struct repository;
" [--merged[=<object>]] [--no-merged[=<object>]]\n" \ " [--merged[=<object>]] [--no-merged[=<object>]]\n" \
" [--contains[=<object>]] [--no-contains[=<object>]]\n" \ " [--contains[=<object>]] [--no-contains[=<object>]]\n" \
" [(--exclude=<pattern>)...] [--start-after=<marker>]\n" \ " [(--exclude=<pattern>)...] [--start-after=<marker>]\n" \
" [ --stdin | <pattern>... ]" " [ --stdin | (<pattern>...)]"
/* /*
* The core logic for for-each-ref and its clones. * The core logic for for-each-ref and its clones.

View File

@@ -88,6 +88,8 @@ ifndef V
QUIET_LINT_GITLINK = @echo ' ' LINT GITLINK $<; QUIET_LINT_GITLINK = @echo ' ' LINT GITLINK $<;
QUIET_LINT_MANSEC = @echo ' ' LINT MAN SEC $<; QUIET_LINT_MANSEC = @echo ' ' LINT MAN SEC $<;
QUIET_LINT_DELIMSEC = @echo ' ' LINT DEL SEC $<;
QUIET_LINT_DOCSTYLE = @echo ' ' LINT DOCSTYLE $<;
QUIET_LINT_MANEND = @echo ' ' LINT MAN END $<; QUIET_LINT_MANEND = @echo ' ' LINT MAN END $<;
export V export V