| #!/bin/sh |
| |
| test_description='fetching and pushing project with subproject' |
| |
| TEST_PASSES_SANITIZE_LEAK=true |
| . ./test-lib.sh |
| |
| test_expect_success setup ' |
| test_tick && |
| mkdir -p sub && ( |
| cd sub && |
| git init && |
| >subfile && |
| git add subfile && |
| git commit -m "subproject commit #1" |
| ) && |
| >mainfile && |
| git add sub mainfile && |
| test_tick && |
| git commit -m "superproject commit #1" |
| ' |
| |
| test_expect_success clone ' |
| git clone "file://$(pwd)/.git" cloned && |
| (git rev-parse HEAD && git ls-files -s) >expected && |
| ( |
| cd cloned && |
| (git rev-parse HEAD && git ls-files -s) >../actual |
| ) && |
| test_cmp expected actual |
| ' |
| |
| test_expect_success advance ' |
| echo more >mainfile && |
| git update-index --force-remove sub && |
| mv sub/.git sub/.git-disabled && |
| git add sub/subfile mainfile && |
| mv sub/.git-disabled sub/.git && |
| test_tick && |
| git commit -m "superproject commit #2" |
| ' |
| |
| test_expect_success fetch ' |
| (git rev-parse HEAD && git ls-files -s) >expected && |
| ( |
| cd cloned && |
| git pull && |
| (git rev-parse HEAD && git ls-files -s) >../actual |
| ) && |
| test_cmp expected actual |
| ' |
| |
| test_done |