]>
Commit | Line | Data |
---|---|---|
5312ab11 JH |
1 | #!/bin/sh |
2 | ||
3 | test_description='test describe | |
4 | ||
5 | B | |
6 | .--------------o----o----o----x | |
7 | / / / | |
8 | o----o----o----o----o----. / | |
9 | \ A c / | |
10 | .------------o---o---o | |
11 | D e | |
12 | ' | |
13 | . ./test-lib.sh | |
14 | ||
15 | check_describe () { | |
16 | expect="$1" | |
17 | shift | |
3291fe40 | 18 | R=$(git describe "$@" 2>err.actual) |
be7bae0d | 19 | S=$? |
3291fe40 | 20 | cat err.actual >&3 |
5312ab11 | 21 | test_expect_success "describe $*" ' |
be7bae0d | 22 | test $S = 0 && |
5312ab11 JH |
23 | case "$R" in |
24 | $expect) echo happy ;; | |
25 | *) echo "Oops - $R is not $expect"; | |
26 | false ;; | |
27 | esac | |
28 | ' | |
29 | } | |
30 | ||
31 | test_expect_success setup ' | |
32 | ||
33 | test_tick && | |
3604e7c5 | 34 | echo one >file && git add file && git commit -m initial && |
5be60078 | 35 | one=$(git rev-parse HEAD) && |
5312ab11 JH |
36 | |
37 | test_tick && | |
3604e7c5 | 38 | echo two >file && git add file && git commit -m second && |
5be60078 | 39 | two=$(git rev-parse HEAD) && |
5312ab11 JH |
40 | |
41 | test_tick && | |
3604e7c5 | 42 | echo three >file && git add file && git commit -m third && |
5312ab11 JH |
43 | |
44 | test_tick && | |
3604e7c5 | 45 | echo A >file && git add file && git commit -m A && |
5312ab11 | 46 | test_tick && |
3604e7c5 | 47 | git tag -a -m A A && |
5312ab11 JH |
48 | |
49 | test_tick && | |
3604e7c5 | 50 | echo c >file && git add file && git commit -m c && |
5312ab11 | 51 | test_tick && |
3604e7c5 | 52 | git tag c && |
5312ab11 JH |
53 | |
54 | git reset --hard $two && | |
55 | test_tick && | |
3604e7c5 | 56 | echo B >side && git add side && git commit -m B && |
5312ab11 | 57 | test_tick && |
3604e7c5 | 58 | git tag -a -m B B && |
5312ab11 JH |
59 | |
60 | test_tick && | |
3604e7c5 | 61 | git merge -m Merged c && |
5be60078 | 62 | merged=$(git rev-parse HEAD) && |
5312ab11 JH |
63 | |
64 | git reset --hard $two && | |
65 | test_tick && | |
3604e7c5 | 66 | echo D >another && git add another && git commit -m D && |
5312ab11 | 67 | test_tick && |
3604e7c5 | 68 | git tag -a -m D D && |
5312ab11 JH |
69 | |
70 | test_tick && | |
71 | echo DD >another && git commit -a -m another && | |
72 | ||
73 | test_tick && | |
3604e7c5 | 74 | git tag e && |
5312ab11 JH |
75 | |
76 | test_tick && | |
77 | echo DDD >another && git commit -a -m "yet another" && | |
78 | ||
79 | test_tick && | |
3604e7c5 | 80 | git merge -m Merged $merged && |
5312ab11 JH |
81 | |
82 | test_tick && | |
5be60078 | 83 | echo X >file && echo X >side && git add file side && |
3604e7c5 | 84 | git commit -m x |
5312ab11 JH |
85 | |
86 | ' | |
87 | ||
88 | check_describe A-* HEAD | |
89 | check_describe A-* HEAD^ | |
90 | check_describe D-* HEAD^^ | |
91 | check_describe A-* HEAD^^2 | |
92 | check_describe B HEAD^^2^ | |
93 | ||
7e425c4f SP |
94 | check_describe c-* --tags HEAD |
95 | check_describe c-* --tags HEAD^ | |
96 | check_describe e-* --tags HEAD^^ | |
97 | check_describe c-* --tags HEAD^^2 | |
5312ab11 JH |
98 | check_describe B --tags HEAD^^2^ |
99 | ||
518120e3 | 100 | check_describe B-0-* --long HEAD^^2^ |
4d4c3e1c | 101 | check_describe A-3-* --long HEAD^^2 |
518120e3 | 102 | |
81dc223d SP |
103 | : >err.expect |
104 | check_describe A --all A^0 | |
105 | test_expect_success 'no warning was displayed for A' ' | |
106 | test_cmp err.expect err.actual | |
107 | ' | |
108 | ||
3291fe40 SP |
109 | test_expect_success 'rename tag A to Q locally' ' |
110 | mv .git/refs/tags/A .git/refs/tags/Q | |
111 | ' | |
112 | cat - >err.expect <<EOF | |
113 | warning: tag 'A' is really 'Q' here | |
114 | EOF | |
115 | check_describe A-* HEAD | |
116 | test_expect_success 'warning was displayed for Q' ' | |
3af82863 | 117 | test_cmp err.expect err.actual |
3291fe40 SP |
118 | ' |
119 | test_expect_success 'rename tag Q back to A' ' | |
120 | mv .git/refs/tags/Q .git/refs/tags/A | |
121 | ' | |
122 | ||
d1b28f51 SP |
123 | test_expect_success 'pack tag refs' 'git pack-refs' |
124 | check_describe A-* HEAD | |
125 | ||
4ed19a3c MD |
126 | test_expect_success 'set-up matching pattern tests' ' |
127 | git tag -a -m test-annotated test-annotated && | |
128 | echo >>file && | |
129 | test_tick && | |
130 | git commit -a -m "one more" && | |
131 | git tag test1-lightweight && | |
132 | echo >>file && | |
133 | test_tick && | |
134 | git commit -a -m "yet another" && | |
135 | git tag test2-lightweight && | |
136 | echo >>file && | |
137 | test_tick && | |
138 | git commit -a -m "even more" | |
139 | ||
140 | ' | |
141 | ||
142 | check_describe "test-annotated-*" --match="test-*" | |
143 | ||
144 | check_describe "test1-lightweight-*" --tags --match="test1-*" | |
145 | ||
146 | check_describe "test2-lightweight-*" --tags --match="test2-*" | |
147 | ||
14d4642e SP |
148 | check_describe "test2-lightweight-*" --long --tags --match="test2-*" HEAD^ |
149 | ||
5312ab11 | 150 | test_done |