`git pull` understands some options of `git fetch` which then uses in
its operation. The documentation of `git pull` doesn't reflect this
clearly, showing options that are not yet supported (e.g. `--deepen`)
and omitting options that are supported (e.g. `--prune`).

Make the documentation consistent with present behaviour by hiding
unavailable options only.

Reported-by: Marius Giurgi <marius.giu...@gmail.com>
Signed-off-by: Rafael Ascensão <rafa.al...@gmail.com>
---

Marius asked on freenode.#git if pull supported `--prune`, upon
inspection seems like the man page was missing some of the supported
options and listing others that are not supported via pull.

Here's a quick summary of the changes to pull's documentation:

add:                      remove:
  --dry-run                 --deepen=<depth>
  -p, --prune               --shallow-since=<date>
  --refmap=<refspec>        --shallow-exclude=<revision>
  -t, --tags                -u, --update-head-ok
  -j, --jobs=<n>

 Documentation/fetch-options.txt | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt
index 8631e365f..da17d27c1 100644
--- a/Documentation/fetch-options.txt
+++ b/Documentation/fetch-options.txt
@@ -14,6 +14,7 @@
        linkgit:git-clone[1]), deepen or shorten the history to the specified
        number of commits. Tags for the deepened commits are not fetched.
 
+ifndef::git-pull[]
 --deepen=<depth>::
        Similar to --depth, except it specifies the number of commits
        from the current shallow boundary instead of from the tip of
@@ -27,6 +28,7 @@
        Deepen or shorten the history of a shallow repository to
        exclude commits reachable from a specified remote branch or tag.
        This option can be specified multiple times.
+endif::git-pull[]
 
 --unshallow::
        If the source repository is complete, convert a shallow
@@ -42,10 +44,8 @@ the current repository has the same history as the source 
repository.
        .git/shallow. This option updates .git/shallow and accept such
        refs.
 
-ifndef::git-pull[]
 --dry-run::
        Show what would be done, without making any changes.
-endif::git-pull[]
 
 -f::
 --force::
@@ -63,6 +63,7 @@ ifndef::git-pull[]
 --multiple::
        Allow several <repository> and <group> arguments to be
        specified. No <refspec>s may be specified.
+endif::git-pull[]
 
 -p::
 --prune::
@@ -76,8 +77,14 @@ ifndef::git-pull[]
        subject to pruning. Supplying `--prune-tags` is a shorthand for
        providing the tag refspec.
 +
+ifdef::git-pull[]
+See the PRUNING section on linkgit:git-fetch[1] for more details.
+endif::git-pull[]
+ifndef::git-pull[]
 See the PRUNING section below for more details.
+endif::git-pull[]
 
+ifndef::git-pull[]
 -P::
 --prune-tags::
        Before fetching, remove any local tags that no longer exist on
@@ -89,9 +96,6 @@ See the PRUNING section below for more details.
 +
 See the PRUNING section below for more details.
 
-endif::git-pull[]
-
-ifndef::git-pull[]
 -n::
 endif::git-pull[]
 --no-tags::
@@ -101,7 +105,6 @@ endif::git-pull[]
        behavior for a remote may be specified with the remote.<name>.tagOpt
        setting. See linkgit:git-config[1].
 
-ifndef::git-pull[]
 --refmap=<refspec>::
        When fetching refs listed on the command line, use the
        specified refspec (can be given more than once) to map the
@@ -119,6 +122,7 @@ ifndef::git-pull[]
        is used (though tags may be pruned anyway if they are also the
        destination of an explicit refspec; see `--prune`).
 
+ifndef::git-pull[]
 --recurse-submodules[=yes|on-demand|no]::
        This option controls if and under what conditions new commits of
        populated submodules should be fetched too. It can be used as a
@@ -129,6 +133,7 @@ ifndef::git-pull[]
        when the superproject retrieves a commit that updates the submodule's
        reference to a commit that isn't already in the local submodule
        clone.
+endif::git-pull[]
 
 -j::
 --jobs=<n>::
@@ -137,6 +142,7 @@ ifndef::git-pull[]
        submodules will be faster. By default submodules will be fetched
        one at a time.
 
+ifndef::git-pull[]
 --no-recurse-submodules::
        Disable recursive fetching of submodules (this has the same effect as
        using the `--recurse-submodules=no` option).
@@ -153,7 +159,6 @@ ifndef::git-pull[]
        recursion (such as settings in linkgit:gitmodules[5] and
        linkgit:git-config[1]) override this option, as does
        specifying --[no-]recurse-submodules directly.
-endif::git-pull[]
 
 -u::
 --update-head-ok::
@@ -163,6 +168,7 @@ endif::git-pull[]
        to communicate with 'git fetch', and unless you are
        implementing your own Porcelain you are not supposed to
        use it.
+endif::git-pull[]
 
 --upload-pack <upload-pack>::
        When given, and the repository to fetch from is handled
-- 
2.17.1

Reply via email to