builtin-replace: teach "git replace" to actually replace
[git/mingw.git] / t / t7403-submodule-sync.sh
blob7538756487d9b9483143b338104cd6af13397a91
1 #!/bin/sh
3 # Copyright (c) 2008 David Aguilar
6 test_description='git submodule sync
8 These tests exercise the "git submodule sync" subcommand.
11 . ./test-lib.sh
13 test_expect_success setup '
14 echo file > file &&
15 git add file &&
16 test_tick &&
17 git commit -m upstream
18 git clone . super &&
19 git clone super submodule &&
20 (cd super &&
21 git submodule add ../submodule submodule &&
22 test_tick &&
23 git commit -m "submodule"
24 ) &&
25 git clone super super-clone &&
26 (cd super-clone && git submodule update --init)
29 test_expect_success 'change submodule' '
30 (cd submodule &&
31 echo second line >> file &&
32 test_tick &&
33 git commit -a -m "change submodule"
37 test_expect_success 'change submodule url' '
38 (cd super &&
39 cd submodule &&
40 git checkout master &&
41 git pull
42 ) &&
43 mv submodule moved-submodule &&
44 (cd super &&
45 git config -f .gitmodules submodule.submodule.url ../moved-submodule
46 test_tick &&
47 git commit -a -m moved-submodule
51 test_expect_success '"git submodule sync" should update submodule URLs' '
52 (cd super-clone &&
53 git pull &&
54 git submodule sync
55 ) &&
56 test -d "$(git config -f super-clone/submodule/.git/config \
57 remote.origin.url)" &&
58 (cd super-clone/submodule &&
59 git checkout master &&
60 git pull
64 test_done