зеркало из https://github.com/microsoft/git.git
Add selftest for 'git submodule foreach'
The selftest verifies that: - only checked out submodules are visited by 'git submodule foreach' - the $path, and $sha1 variables are set correctly for each submodule Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
1d5bec8b9c
Коммит
d69ecf6f0e
|
@ -0,0 +1,79 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2009 Johan Herland
|
||||||
|
#
|
||||||
|
|
||||||
|
test_description='Test "git submodule foreach"
|
||||||
|
|
||||||
|
This test verifies that "git submodule foreach" correctly visits all submodules
|
||||||
|
that are currently checked out.
|
||||||
|
'
|
||||||
|
|
||||||
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
|
||||||
|
test_expect_success 'setup a submodule tree' '
|
||||||
|
echo file > file &&
|
||||||
|
git add file &&
|
||||||
|
test_tick &&
|
||||||
|
git commit -m upstream
|
||||||
|
git clone . super &&
|
||||||
|
git clone super submodule &&
|
||||||
|
(
|
||||||
|
cd super &&
|
||||||
|
git submodule add ../submodule sub1 &&
|
||||||
|
git submodule add ../submodule sub2 &&
|
||||||
|
git submodule add ../submodule sub3 &&
|
||||||
|
git config -f .gitmodules --rename-section \
|
||||||
|
submodule.sub1 submodule.foo1 &&
|
||||||
|
git config -f .gitmodules --rename-section \
|
||||||
|
submodule.sub2 submodule.foo2 &&
|
||||||
|
git config -f .gitmodules --rename-section \
|
||||||
|
submodule.sub3 submodule.foo3 &&
|
||||||
|
git add .gitmodules
|
||||||
|
test_tick &&
|
||||||
|
git commit -m "submodules" &&
|
||||||
|
git submodule init sub1 &&
|
||||||
|
git submodule init sub2 &&
|
||||||
|
git submodule init sub3
|
||||||
|
) &&
|
||||||
|
(
|
||||||
|
cd submodule &&
|
||||||
|
echo different > file &&
|
||||||
|
git add file &&
|
||||||
|
test_tick &&
|
||||||
|
git commit -m "different"
|
||||||
|
) &&
|
||||||
|
(
|
||||||
|
cd super &&
|
||||||
|
(
|
||||||
|
cd sub3 &&
|
||||||
|
git pull
|
||||||
|
) &&
|
||||||
|
git add sub3 &&
|
||||||
|
test_tick &&
|
||||||
|
git commit -m "update sub3"
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
sub1sha1=$(cd super/sub1 && git rev-parse HEAD)
|
||||||
|
sub3sha1=$(cd super/sub3 && git rev-parse HEAD)
|
||||||
|
|
||||||
|
cat > expect <<EOF
|
||||||
|
Entering 'sub1'
|
||||||
|
sub1-$sub1sha1
|
||||||
|
Entering 'sub3'
|
||||||
|
sub3-$sub3sha1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
test_expect_success 'test basic "submodule foreach" usage' '
|
||||||
|
git clone super clone &&
|
||||||
|
(
|
||||||
|
cd clone &&
|
||||||
|
git submodule update --init -- sub1 sub3 &&
|
||||||
|
git submodule foreach "echo \$path-\$sha1" > ../actual
|
||||||
|
) &&
|
||||||
|
test_cmp expect actual
|
||||||
|
'
|
||||||
|
|
||||||
|
test_done
|
Загрузка…
Ссылка в новой задаче