summaryrefslogtreecommitdiff
path: root/t/t2013-checkout-submodule.sh
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2009-04-12 17:55:18 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2009-04-12 17:56:25 -0700
commit7d5a1806e8c2d9980938a05a56939272ad2ec338 (patch)
tree6a09da6a7a0d76a3bf1fc0f2d860349c6efe1de9 /t/t2013-checkout-submodule.sh
parentt1301-shared-repo: fix forced modes test (diff)
parentGIT 1.6.3-rc0 (diff)
downloadtgif-7d5a1806e8c2d9980938a05a56939272ad2ec338.tar.xz
Mark t1301 permission test to depend on POSIXPERM
This prepares the topic for inclusion to master.
Diffstat (limited to 't/t2013-checkout-submodule.sh')
-rwxr-xr-xt/t2013-checkout-submodule.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/t/t2013-checkout-submodule.sh b/t/t2013-checkout-submodule.sh
new file mode 100755
index 0000000000..fda3f0af7e
--- /dev/null
+++ b/t/t2013-checkout-submodule.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+test_description='checkout can handle submodules'
+
+. ./test-lib.sh
+
+test_expect_success 'setup' '
+ mkdir submodule &&
+ (cd submodule &&
+ git init &&
+ test_commit first) &&
+ git add submodule &&
+ test_tick &&
+ git commit -m superproject &&
+ (cd submodule &&
+ test_commit second) &&
+ git add submodule &&
+ test_tick &&
+ git commit -m updated.superproject
+'
+
+test_expect_success '"reset <submodule>" updates the index' '
+ git update-index --refresh &&
+ git diff-files --quiet &&
+ git diff-index --quiet --cached HEAD &&
+ test_must_fail git reset HEAD^ submodule &&
+ test_must_fail git diff-files --quiet &&
+ git reset submodule &&
+ git diff-files --quiet
+'
+
+test_expect_success '"checkout <submodule>" updates the index only' '
+ git update-index --refresh &&
+ git diff-files --quiet &&
+ git diff-index --quiet --cached HEAD &&
+ git checkout HEAD^ submodule &&
+ test_must_fail git diff-files --quiet &&
+ git checkout HEAD submodule &&
+ git diff-files --quiet
+'
+
+test_done