]> git.ipfire.org Git - thirdparty/git.git/commit - builtin/clone.c
clone: teach --recurse-submodules to optionally take a pathspec
authorBrandon Williams <bmwill@google.com>
Fri, 17 Mar 2017 22:38:03 +0000 (15:38 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 18 Mar 2017 16:51:23 +0000 (09:51 -0700)
commitbb62e0a99fcbb9ceb03502bf2168d2e57530214f
treed45228e337ba9678e6cec92d5c5c409bf7e6eaa2
parent3e7eaed016e6241e96de6a0140923e81cfc387e8
clone: teach --recurse-submodules to optionally take a pathspec

Teach clone --recurse-submodules to optionally take a pathspec argument
which describes which submodules should be recursively initialized and
cloned.  If no pathspec is provided, --recurse-submodules will
recursively initialize and clone all submodules by using a default
pathspec of ".".  In order to construct more complex pathspecs,
--recurse-submodules can be given multiple times.

This also configures the 'submodule.active' configuration option to be
the given pathspec, such that any future invocation of `git submodule
update` will keep up with the pathspec.

Additionally the switch '--recurse' is removed from the Documentation as
well as marked hidden in the options array, to streamline the options
for submodules.  A simple '--recurse' doesn't convey what is being
recursed, e.g. it could mean directories or trees (c.f. ls-tree) In a
lot of other commands we already have '--recurse-submodules' to mean
recursing into submodules, so advertise this spelling here as the
genuine option.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-clone.txt
builtin/clone.c
t/t7400-submodule-basic.sh