Stefan Beller <[email protected]> writes:

> There have been a few complaints on the mailing list that git-clone doesn't
> respect the `submodule.recurse` setting, which every other command (that
> potentially knows how to deal with submodules) respects.  In case of clone
> this is not beneficial to respect as the user may not want to obtain all
> submodules (assuming a pathspec of '.').
>
> Improve the documentation such that the pathspec is mentioned in the
> synopsis to alleviate the confusion around the submodule recursion flag
> in git-clone.
>
> While at it clarify that the option can be given multiple times for complex\
> pathspecs.

Well written (modulo the backslash there, which I can easily remove
while queuing).

>
> Signed-off-by: Stefan Beller <[email protected]>
> ---
>  Documentation/git-clone.txt | 19 +++++++++++--------
>  1 file changed, 11 insertions(+), 8 deletions(-)
>
> diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
> index 83c8e9b394..42ca7b5095 100644
> --- a/Documentation/git-clone.txt
> +++ b/Documentation/git-clone.txt
> @@ -14,7 +14,7 @@ SYNOPSIS
>         [-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>]
>         [--dissociate] [--separate-git-dir <git dir>]
>         [--depth <depth>] [--[no-]single-branch] [--no-tags]
> -       [--recurse-submodules] [--[no-]shallow-submodules]
> +       [--recurse-submodules[=<pathspec>]] [--[no-]shallow-submodules]
>         [--jobs <n>] [--] <repository> [<directory>]
>  
>  DESCRIPTION
> @@ -231,14 +231,17 @@ branch of some repository for search indexing.
>       After the clone is created, initialize and clone submodules
>       within based on the provided pathspec.  If no pathspec is
>       provided, all submodules are initialized and cloned.
> -     Submodules are initialized and cloned using their default
> -     settings.  The resulting clone has `submodule.active` set to
> +     This option can be given multiple times for pathspecs consisting
> +     of multiple entries.  The resulting clone has `submodule.active` set to
>       the provided pathspec, or "." (meaning all submodules) if no
> -     pathspec is provided.  This is equivalent to running
> -     `git submodule update --init --recursive` immediately after
> -     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`, or `--mirror` is given)
> +     pathspec is provided.
> ++
> +Submodules are initialized and cloned using their default settings. This is
> +equivalent to running
> +`git submodule update --init --recursive <pathspec>` immediately after
> +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`,
> +or `--mirror` is given)
>  
>  --[no-]shallow-submodules::
>       All submodules which are cloned will be shallow with a depth of 1.

Reply via email to