describe: teach --match to handle branches and remotes
[git] / t / t2202-add-addremove.sh
1 #!/bin/sh
2
3 test_description='git add --all'
4
5 . ./test-lib.sh
6
7 test_expect_success setup '
8         (
9                 echo .gitignore
10                 echo will-remove
11         ) >expect &&
12         (
13                 echo actual
14                 echo expect
15                 echo ignored
16         ) >.gitignore &&
17         git --literal-pathspecs add --all &&
18         >will-remove &&
19         git add --all &&
20         test_tick &&
21         git commit -m initial &&
22         git ls-files >actual &&
23         test_cmp expect actual
24 '
25
26 test_expect_success 'git add --all' '
27         (
28                 echo .gitignore
29                 echo not-ignored
30                 echo "M .gitignore"
31                 echo "A not-ignored"
32                 echo "D will-remove"
33         ) >expect &&
34         >ignored &&
35         >not-ignored &&
36         echo modification >>.gitignore &&
37         rm -f will-remove &&
38         git add --all &&
39         git update-index --refresh &&
40         git ls-files >actual &&
41         git diff-index --name-status --cached HEAD >>actual &&
42         test_cmp expect actual
43 '
44
45 test_expect_success 'Just "git add" is a no-op' '
46         git reset --hard &&
47         echo >will-remove &&
48         >will-not-be-added &&
49         git add &&
50         git diff-index --name-status --cached HEAD >actual &&
51         >expect &&
52         test_cmp expect actual
53 '
54
55 test_done