Stefan Beller <sbeller@xxxxxxxxxx> 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 <sbeller@xxxxxxxxxx> > --- > 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.