git clone: Add --recursive to automatically checkout (nested) submodules
Many projects using submodules expect all submodules to be checked out in order to build/work correctly. A common command sequence for developers on such projects is: git clone url/to/project cd project git submodule update --init (--recursive) This patch introduces the --recursive option to git-clone. The new option causes git-clone to recursively clone and checkout all submodules of the cloned project. Hence, the above command sequence can be reduced to: git clone --recursive url/to/project --recursive is ignored if no checkout is done by the git-clone. The patch also includes documentation and a selftest. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
e3ae4a8613
commit
e7fed18a89
@ -222,4 +222,16 @@ test_expect_success 'test "status --recursive"' '
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'use "git clone --recursive" to checkout all submodules' '
|
||||
git clone --recursive super clone4 &&
|
||||
test -d clone4/.git &&
|
||||
test -d clone4/sub1/.git &&
|
||||
test -d clone4/sub2/.git &&
|
||||
test -d clone4/sub3/.git &&
|
||||
test -d clone4/nested1/.git &&
|
||||
test -d clone4/nested1/nested2/.git &&
|
||||
test -d clone4/nested1/nested2/nested3/.git &&
|
||||
test -d clone4/nested1/nested2/nested3/submodule/.git
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user