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