Merge branch 'hv/link-alt-odb-entry'
[git] / t / t7409-submodule-detached-worktree.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2012 Daniel GraƱa
4 #
5
6 test_description='Test submodules on detached working tree
7
8 This test verifies that "git submodule" initialization, update and addition works
9 on detahced working trees
10 '
11
12 TEST_NO_CREATE_REPO=1
13 . ./test-lib.sh
14
15 test_expect_success 'submodule on detached working tree' '
16         git init --bare remote &&
17         test_create_repo bundle1 &&
18         (cd bundle1 && test_commit "shoot") &&
19         mkdir home &&
20         (
21                 cd home &&
22                 export GIT_WORK_TREE="$(pwd)" GIT_DIR="$(pwd)/.dotfiles" &&
23                 git clone --bare ../remote .dotfiles &&
24                 git submodule add ../bundle1 .vim/bundle/sogood &&
25                 test_commit "sogood" &&
26                 git push origin master
27         ) &&
28         mkdir home2 &&
29         (
30                 cd home2 &&
31                 export GIT_WORK_TREE="$(pwd)" GIT_DIR="$(pwd)/.dotfiles" &&
32                 git clone --bare ../remote .dotfiles &&
33                 git submodule update --init
34         )
35 '
36
37 test_expect_success 'submodule on detached working pointed by core.worktree' '
38         mkdir home3 &&
39         (
40                 cd home3 &&
41                 export GIT_DIR="$(pwd)/.dotfiles" &&
42                 git clone --bare ../remote "$GIT_DIR" &&
43                 git config core.bare false &&
44                 git config core.worktree .. &&
45                 git submodule add ../bundle1 .vim/bundle/dupe &&
46                 test_commit "dupe" &&
47                 git push origin master
48         ) &&
49         (
50                 cd home &&
51                 export GIT_DIR="$(pwd)/.dotfiles" &&
52                 git config core.bare false &&
53                 git config core.worktree .. &&
54                 git pull &&
55                 git submodule update &&
56                 git submodule status &&
57                 test -d .vim/bundle/dupe
58         )
59 '
60
61 test_done