Merge branch 'rr/triangle'
[git] / t / t3050-subprojects-fetch.sh
1 #!/bin/sh
2
3 test_description='fetching and pushing project with subproject'
4
5 . ./test-lib.sh
6
7 test_expect_success setup '
8         test_tick &&
9         mkdir -p sub && (
10                 cd sub &&
11                 git init &&
12                 >subfile &&
13                 git add subfile &&
14                 git commit -m "subproject commit #1"
15         ) &&
16         >mainfile &&
17         git add sub mainfile &&
18         test_tick &&
19         git commit -m "superproject commit #1"
20 '
21
22 test_expect_success clone '
23         git clone "file://$(pwd)/.git" cloned &&
24         (git rev-parse HEAD; git ls-files -s) >expected &&
25         (
26                 cd cloned &&
27                 (git rev-parse HEAD; git ls-files -s) >../actual
28         ) &&
29         test_cmp expected actual
30 '
31
32 test_expect_success advance '
33         echo more >mainfile &&
34         git update-index --force-remove sub &&
35         mv sub/.git sub/.git-disabled &&
36         git add sub/subfile mainfile &&
37         mv sub/.git-disabled sub/.git &&
38         test_tick &&
39         git commit -m "superproject commit #2"
40 '
41
42 test_expect_success fetch '
43         (git rev-parse HEAD; git ls-files -s) >expected &&
44         (
45                 cd cloned &&
46                 git pull &&
47                 (git rev-parse HEAD; git ls-files -s) >../actual
48         ) &&
49         test_cmp expected actual
50 '
51
52 test_done