]>
Commit | Line | Data |
---|---|---|
2ae6c706 JS |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2005 Johannes Schindelin | |
4 | # | |
5 | ||
b599deec | 6 | test_description='A simple turial in the form of a test case' |
2ae6c706 JS |
7 | |
8 | . ./test-lib.sh | |
9 | ||
1a994dc3 SB |
10 | test_expect_success 'blob' ' |
11 | echo "Hello World" > hello && | |
12 | echo "Silly example" > example && | |
2ae6c706 | 13 | |
1a994dc3 | 14 | git update-index --add hello example && |
2ae6c706 | 15 | |
1a994dc3 SB |
16 | test blob = "$(git cat-file -t 557db03)" |
17 | ' | |
2ae6c706 | 18 | |
1a994dc3 SB |
19 | test_expect_success 'blob 557db03' ' |
20 | test "Hello World" = "$(git cat-file blob 557db03)" | |
21 | ' | |
2ae6c706 JS |
22 | |
23 | echo "It's a new day for git" >>hello | |
24 | cat > diff.expect << EOF | |
25 | diff --git a/hello b/hello | |
26 | index 557db03..263414f 100644 | |
27 | --- a/hello | |
28 | +++ b/hello | |
29 | @@ -1 +1,2 @@ | |
30 | Hello World | |
31 | +It's a new day for git | |
32 | EOF | |
2ae6c706 | 33 | |
1a994dc3 SB |
34 | test_expect_success 'git diff-files -p' ' |
35 | git diff-files -p > diff.output && | |
b9f3bde1 | 36 | test_cmp diff.expect diff.output |
1a994dc3 | 37 | ' |
2ae6c706 | 38 | |
1a994dc3 SB |
39 | test_expect_success 'git diff' ' |
40 | git diff > diff.output && | |
b9f3bde1 | 41 | test_cmp diff.expect diff.output |
1a994dc3 | 42 | ' |
2ae6c706 | 43 | |
1a994dc3 SB |
44 | test_expect_success 'tree' ' |
45 | tree=$(git write-tree 2>/dev/null) | |
46 | test 8988da15d077d4829fc51d8544c097def6644dbb = $tree | |
47 | ' | |
2ae6c706 | 48 | |
1a994dc3 | 49 | test_expect_success 'git diff-index -p HEAD' ' |
5d166ccb NS |
50 | test_tick && |
51 | tree=$(git write-tree) && | |
7c5858a6 SB |
52 | commit=$(echo "Initial commit" | git commit-tree $tree) && |
53 | git update-ref HEAD $commit && | |
1a994dc3 | 54 | git diff-index -p HEAD > diff.output && |
b9f3bde1 | 55 | test_cmp diff.expect diff.output |
1a994dc3 | 56 | ' |
2ae6c706 | 57 | |
1a994dc3 SB |
58 | test_expect_success 'git diff HEAD' ' |
59 | git diff HEAD > diff.output && | |
b9f3bde1 | 60 | test_cmp diff.expect diff.output |
1a994dc3 | 61 | ' |
2ae6c706 JS |
62 | |
63 | cat > whatchanged.expect << EOF | |
91539833 | 64 | commit VARIABLE |
2ae6c706 JS |
65 | Author: VARIABLE |
66 | Date: VARIABLE | |
67 | ||
68 | Initial commit | |
69 | ||
70 | diff --git a/example b/example | |
71 | new file mode 100644 | |
72 | index 0000000..f24c74a | |
73 | --- /dev/null | |
74 | +++ b/example | |
75 | @@ -0,0 +1 @@ | |
76 | +Silly example | |
77 | diff --git a/hello b/hello | |
78 | new file mode 100644 | |
79 | index 0000000..557db03 | |
80 | --- /dev/null | |
81 | +++ b/hello | |
82 | @@ -0,0 +1 @@ | |
83 | +Hello World | |
84 | EOF | |
85 | ||
1a994dc3 | 86 | test_expect_success 'git whatchanged -p --root' ' |
b9f3bde1 | 87 | git whatchanged -p --root | |
1a994dc3 | 88 | sed -e "1s/^\(.\{7\}\).\{40\}/\1VARIABLE/" \ |
2ae6c706 | 89 | -e "2,3s/^\(.\{8\}\).*$/\1VARIABLE/" \ |
1a994dc3 | 90 | > whatchanged.output && |
b9f3bde1 | 91 | test_cmp whatchanged.expect whatchanged.output |
1a994dc3 | 92 | ' |
2ae6c706 | 93 | |
1a994dc3 SB |
94 | test_expect_success 'git tag my-first-tag' ' |
95 | git tag my-first-tag && | |
b9f3bde1 | 96 | test_cmp .git/refs/heads/master .git/refs/tags/my-first-tag |
1a994dc3 | 97 | ' |
2ae6c706 | 98 | |
1a994dc3 SB |
99 | test_expect_success 'git checkout -b mybranch' ' |
100 | git checkout -b mybranch && | |
b9f3bde1 | 101 | test_cmp .git/refs/heads/master .git/refs/heads/mybranch |
1a994dc3 | 102 | ' |
2ae6c706 JS |
103 | |
104 | cat > branch.expect <<EOF | |
105 | master | |
106 | * mybranch | |
107 | EOF | |
108 | ||
1a994dc3 SB |
109 | test_expect_success 'git branch' ' |
110 | git branch > branch.output && | |
b9f3bde1 | 111 | test_cmp branch.expect branch.output |
1a994dc3 | 112 | ' |
2ae6c706 | 113 | |
1a994dc3 SB |
114 | test_expect_success 'git resolve now fails' ' |
115 | git checkout mybranch && | |
116 | echo "Work, work, work" >>hello && | |
5d166ccb | 117 | test_tick && |
1a994dc3 | 118 | git commit -m "Some work." -i hello && |
2ae6c706 | 119 | |
1a994dc3 | 120 | git checkout master && |
2ae6c706 | 121 | |
1a994dc3 SB |
122 | echo "Play, play, play" >>hello && |
123 | echo "Lots of fun" >>example && | |
5d166ccb | 124 | test_tick && |
1a994dc3 | 125 | git commit -m "Some fun." -i hello example && |
2ae6c706 | 126 | |
d492b31c | 127 | test_must_fail git merge -m "Merge work in mybranch" mybranch |
207dfa07 | 128 | ' |
2ae6c706 JS |
129 | |
130 | cat > hello << EOF | |
131 | Hello World | |
132 | It's a new day for git | |
133 | Play, play, play | |
134 | Work, work, work | |
135 | EOF | |
136 | ||
2ae6c706 | 137 | cat > show-branch.expect << EOF |
7c5858a6 | 138 | * [master] Merge work in mybranch |
2ae6c706 JS |
139 | ! [mybranch] Some work. |
140 | -- | |
7c5858a6 | 141 | - [master] Merge work in mybranch |
ebedc319 | 142 | *+ [mybranch] Some work. |
7c5858a6 | 143 | * [master^] Some fun. |
2ae6c706 JS |
144 | EOF |
145 | ||
1a994dc3 | 146 | test_expect_success 'git show-branch' ' |
5d166ccb | 147 | test_tick && |
7c5858a6 SB |
148 | git commit -m "Merge work in mybranch" -i hello && |
149 | git show-branch --topo-order --more=1 master mybranch \ | |
150 | > show-branch.output && | |
b9f3bde1 | 151 | test_cmp show-branch.expect show-branch.output |
1a994dc3 | 152 | ' |
2ae6c706 JS |
153 | |
154 | cat > resolve.expect << EOF | |
1a994dc3 | 155 | Updating VARIABLE..VARIABLE |
5c5dd6e5 | 156 | FASTFORWARD (no commit created; -m option ignored) |
2ae6c706 JS |
157 | example | 1 + |
158 | hello | 1 + | |
159 | 2 files changed, 2 insertions(+), 0 deletions(-) | |
160 | EOF | |
161 | ||
1a994dc3 SB |
162 | test_expect_success 'git resolve' ' |
163 | git checkout mybranch && | |
b9f3bde1 | 164 | git merge -m "Merge upstream changes." master | |
5c5dd6e5 JH |
165 | sed -e "1s/[0-9a-f]\{7\}/VARIABLE/g" \ |
166 | -e "s/^Fast[- ]forward /FASTFORWARD /" >resolve.output && | |
b9f3bde1 | 167 | test_cmp resolve.expect resolve.output |
1a994dc3 | 168 | ' |
2ae6c706 JS |
169 | |
170 | cat > show-branch2.expect << EOF | |
7c5858a6 SB |
171 | ! [master] Merge work in mybranch |
172 | * [mybranch] Merge work in mybranch | |
2ae6c706 | 173 | -- |
7c5858a6 | 174 | -- [master] Merge work in mybranch |
2ae6c706 JS |
175 | EOF |
176 | ||
1a994dc3 SB |
177 | test_expect_success 'git show-branch (part 2)' ' |
178 | git show-branch --topo-order master mybranch > show-branch2.output && | |
b9f3bde1 | 179 | test_cmp show-branch2.expect show-branch2.output |
1a994dc3 | 180 | ' |
2ae6c706 | 181 | |
7c5858a6 SB |
182 | cat > show-branch3.expect << EOF |
183 | ! [master] Merge work in mybranch | |
184 | * [mybranch] Merge work in mybranch | |
185 | -- | |
186 | -- [master] Merge work in mybranch | |
187 | +* [master^2] Some work. | |
188 | +* [master^] Some fun. | |
189 | EOF | |
190 | ||
191 | test_expect_success 'git show-branch (part 3)' ' | |
192 | git show-branch --topo-order --more=2 master mybranch \ | |
193 | > show-branch3.output && | |
b9f3bde1 | 194 | test_cmp show-branch3.expect show-branch3.output |
7c5858a6 SB |
195 | ' |
196 | ||
197 | test_expect_success 'rewind to "Some fun." and "Some work."' ' | |
198 | git checkout mybranch && | |
199 | git reset --hard master^2 && | |
200 | git checkout master && | |
201 | git reset --hard master^ | |
202 | ' | |
203 | ||
204 | cat > show-branch4.expect << EOF | |
205 | * [master] Some fun. | |
206 | ! [mybranch] Some work. | |
207 | -- | |
7c5858a6 | 208 | * [master] Some fun. |
5d166ccb NS |
209 | + [mybranch] Some work. |
210 | *+ [master^] Initial commit | |
7c5858a6 SB |
211 | EOF |
212 | ||
213 | test_expect_success 'git show-branch (part 4)' ' | |
214 | git show-branch --topo-order > show-branch4.output && | |
b9f3bde1 | 215 | test_cmp show-branch4.expect show-branch4.output |
7c5858a6 SB |
216 | ' |
217 | ||
218 | test_expect_success 'manual merge' ' | |
219 | mb=$(git merge-base HEAD mybranch) && | |
220 | git name-rev --name-only --tags $mb > name-rev.output && | |
221 | test "my-first-tag" = $(cat name-rev.output) && | |
222 | ||
223 | git read-tree -m -u $mb HEAD mybranch | |
224 | ' | |
225 | ||
226 | cat > ls-files.expect << EOF | |
227 | 100644 7f8b141b65fdcee47321e399a2598a235a032422 0 example | |
228 | 100644 557db03de997c86a4a028e1ebd3a1ceb225be238 1 hello | |
229 | 100644 ba42a2a96e3027f3333e13ede4ccf4498c3ae942 2 hello | |
230 | 100644 cc44c73eb783565da5831b4d820c962954019b69 3 hello | |
231 | EOF | |
232 | ||
233 | test_expect_success 'git ls-files --stage' ' | |
234 | git ls-files --stage > ls-files.output && | |
b9f3bde1 | 235 | test_cmp ls-files.expect ls-files.output |
7c5858a6 SB |
236 | ' |
237 | ||
238 | cat > ls-files-unmerged.expect << EOF | |
239 | 100644 557db03de997c86a4a028e1ebd3a1ceb225be238 1 hello | |
240 | 100644 ba42a2a96e3027f3333e13ede4ccf4498c3ae942 2 hello | |
241 | 100644 cc44c73eb783565da5831b4d820c962954019b69 3 hello | |
242 | EOF | |
243 | ||
244 | test_expect_success 'git ls-files --unmerged' ' | |
245 | git ls-files --unmerged > ls-files-unmerged.output && | |
b9f3bde1 | 246 | test_cmp ls-files-unmerged.expect ls-files-unmerged.output |
7c5858a6 SB |
247 | ' |
248 | ||
249 | test_expect_success 'git-merge-index' ' | |
250 | test_must_fail git merge-index git-merge-one-file hello | |
251 | ' | |
252 | ||
253 | test_expect_success 'git ls-files --stage (part 2)' ' | |
254 | git ls-files --stage > ls-files.output2 && | |
b9f3bde1 | 255 | test_cmp ls-files.expect ls-files.output2 |
7c5858a6 SB |
256 | ' |
257 | ||
2ae6c706 JS |
258 | test_expect_success 'git repack' 'git repack' |
259 | test_expect_success 'git prune-packed' 'git prune-packed' | |
41ac414e | 260 | test_expect_success '-> only packed objects' ' |
1a994dc3 | 261 | git prune && # Remove conflict marked blobs |
15caa410 | 262 | test $(find .git/objects/[0-9a-f][0-9a-f] -type f -print 2>/dev/null | wc -l) = 0 |
41ac414e | 263 | ' |
2ae6c706 JS |
264 | |
265 | test_done |