1#!/bin/sh
2
3test_description='checkout can handle submodules'
4
5. ./test-lib.sh
6
7test_expect_success 'setup' '
8 mkdir submodule &&
9 (cd submodule &&
10 git init &&
11 test_commit first) &&
12 git add submodule &&
13 test_tick &&
14 git commit -m superproject &&
15 (cd submodule &&
16 test_commit second) &&
17 git add submodule &&
18 test_tick &&
19 git commit -m updated.superproject
20'
21
22test_expect_success '"reset <submodule>" updates the index' '
23 git update-index --refresh &&
24 git diff-files --quiet &&
25 git diff-index --quiet --cached HEAD &&
26 test_must_fail git reset HEAD^ submodule &&
27 test_must_fail git diff-files --quiet &&
28 git reset submodule &&
29 git diff-files --quiet
30'
31
32test_expect_success '"checkout <submodule>" updates the index only' '
33 git update-index --refresh &&
34 git diff-files --quiet &&
35 git diff-index --quiet --cached HEAD &&
36 git checkout HEAD^ submodule &&
37 test_must_fail git diff-files --quiet &&
38 git checkout HEAD submodule &&
39 git diff-files --quiet
40'
41
42test_done