1#!/bin/sh
2
3test_description='fetching and pushing project with subproject'
4
5. ./test-lib.sh
6
7test_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
22test_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
32test_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
42test_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
52test_done
53