Merge branch 'lt/rev-list' into next
[git.git] / t / t8001-annotate.sh
1 #!/bin/sh
2
3 test_description='git-annotate'
4 . ./test-lib.sh
5
6 test_expect_success \
7     'prepare reference tree' \
8     'echo "1A quick brown fox jumps over the" >file &&
9      echo "lazy dog" >>file &&
10      git add file
11      GIT_AUTHOR_NAME="A" git commit -a -m "Initial."'
12
13 test_expect_success \
14     'check all lines blamed on A' \
15     '[ $(git annotate file | awk "{print \$3}" | grep -c "A") == 2 ]'
16
17 test_expect_success \
18     'Setup new lines blamed on B' \
19     'echo "2A quick brown fox jumps over the" >>file &&
20      echo "lazy dog" >> file &&
21      GIT_AUTHOR_NAME="B" git commit -a -m "Second."'
22
23 test_expect_success \
24     'Two lines blamed on A' \
25     '[ $(git annotate file | awk "{print \$3}" | grep -c "A") == 2 ]'
26
27 test_expect_success \
28     'Two lines blamed on B' \
29     '[ $(git annotate file | awk "{print \$3}" | grep -c "B") == 2 ]'
30
31 test_expect_success \
32     'merge-setup part 1' \
33     'git checkout -b branch1 master &&
34      echo "3A slow green fox jumps into the" >> file &&
35      echo "well." >> file &&
36      GIT_AUTHOR_NAME="B1" git commit -a -m "Branch1-1"'
37
38 test_expect_success \
39     'Two lines blamed on A' \
40     '[ $(git annotate file | awk "{print \$3}" | grep -c "^A$") == 2 ]'
41
42 test_expect_success \
43     'Two lines blamed on B' \
44     '[ $(git annotate file | awk "{print \$3}" | grep -c "^B$") == 2 ]'
45
46 test_expect_success \
47     'Two lines blamed on B1' \
48     '[ $(git annotate file | awk "{print \$3}" | grep -c "^B1$") == 2 ]'
49
50 test_expect_success \
51     'merge-setup part 2' \
52     'git checkout -b branch2 master &&
53      sed -e "s/2A quick brown/4A quick brown lazy dog/" < file > file.new &&
54      mv file.new file &&
55      GIT_AUTHOR_NAME="B2" git commit -a -m "Branch2-1"'
56
57 test_expect_success \
58     'Two lines blamed on A' \
59     '[ $(git annotate file | awk "{print \$3}" | grep -c "^A$") == 2 ]'
60
61 test_expect_success \
62     'One line blamed on B' \
63     '[ $(git annotate file | awk "{print \$3}" | grep -c "^B$") == 1 ]'
64
65 test_expect_success \
66     'One line blamed on B2' \
67     '[ $(git annotate file | awk "{print \$3}" | grep -c "^B2$") == 1 ]'
68
69
70 test_expect_success \
71     'merge-setup part 3' \
72     'git pull . branch1'
73
74 test_expect_success \
75     'Two lines blamed on A' \
76     '[ $(git annotate file | awk "{print \$3}" | grep -c "^A$") == 2 ]'
77
78 test_expect_success \
79     'One line blamed on B' \
80     '[ $(git annotate file | awk "{print \$3}" | grep -c "^B$") == 1 ]'
81
82 test_expect_success \
83     'Two lines blamed on B1' \
84     '[ $(git annotate file | awk "{print \$3}" | grep -c "^B1$") == 2 ]'
85
86 test_expect_success \
87     'One line blamed on B2' \
88     '[ $(git annotate file | awk "{print \$3}" | grep -c "^B2$") == 1 ]'
89
90 test_done