Merge branch 'maint'
[git/jnareb-git.git] / t / t7502-status.sh
blobe00607490bcb0439c6557003a3419d84823a8f00
1 #!/bin/sh
3 # Copyright (c) 2007 Johannes E. Schindelin
6 test_description='git-status'
8 . ./test-lib.sh
10 test_expect_success 'setup' '
11 : > tracked &&
12 : > modified &&
13 mkdir dir1 &&
14 : > dir1/tracked &&
15 : > dir1/modified &&
16 mkdir dir2 &&
17 : > dir1/tracked &&
18 : > dir1/modified &&
19 git add . &&
21 git status >output &&
23 test_tick &&
24 git commit -m initial &&
25 : > untracked &&
26 : > dir1/untracked &&
27 : > dir2/untracked &&
28 echo 1 > dir1/modified &&
29 echo 2 > dir2/modified &&
30 echo 3 > dir2/added &&
31 git add dir2/added
34 test_expect_success 'status (1)' '
36 grep -e "use \"git rm --cached <file>\.\.\.\" to unstage" output
40 cat > expect << \EOF
41 # On branch master
42 # Changes to be committed:
43 # (use "git reset HEAD <file>..." to unstage)
45 # new file: dir2/added
47 # Changed but not updated:
48 # (use "git add <file>..." to update what will be committed)
50 # modified: dir1/modified
52 # Untracked files:
53 # (use "git add <file>..." to include in what will be committed)
55 # dir1/untracked
56 # dir2/modified
57 # dir2/untracked
58 # expect
59 # output
60 # untracked
61 EOF
63 test_expect_success 'status (2)' '
65 git status > output &&
66 git diff expect output
70 cat > expect << \EOF
71 # On branch master
72 # Changes to be committed:
73 # (use "git reset HEAD <file>..." to unstage)
75 # new file: ../dir2/added
77 # Changed but not updated:
78 # (use "git add <file>..." to update what will be committed)
80 # modified: modified
82 # Untracked files:
83 # (use "git add <file>..." to include in what will be committed)
85 # untracked
86 # ../dir2/modified
87 # ../dir2/untracked
88 # ../expect
89 # ../output
90 # ../untracked
91 EOF
93 test_expect_success 'status with relative paths' '
95 (cd dir1 && git status) > output &&
96 git diff expect output
100 cat > expect << \EOF
101 # On branch master
102 # Changes to be committed:
103 # (use "git reset HEAD <file>..." to unstage)
105 # new file: dir2/added
107 # Changed but not updated:
108 # (use "git add <file>..." to update what will be committed)
110 # modified: dir1/modified
112 # Untracked files:
113 # (use "git add <file>..." to include in what will be committed)
115 # dir1/untracked
116 # dir2/modified
117 # dir2/untracked
118 # expect
119 # output
120 # untracked
123 test_expect_success 'status without relative paths' '
125 git config status.relativePaths false
126 (cd dir1 && git status) > output &&
127 git diff expect output
131 cat <<EOF >expect
132 # On branch master
133 # Changes to be committed:
134 # (use "git reset HEAD <file>..." to unstage)
136 # modified: dir1/modified
138 # Untracked files:
139 # (use "git add <file>..." to include in what will be committed)
141 # dir1/untracked
142 # dir2/
143 # expect
144 # output
145 # untracked
147 test_expect_success 'status of partial commit excluding new file in index' '
148 git status dir1/modified >output &&
149 diff -u expect output
152 test_done