]>
Commit | Line | Data |
---|---|---|
e6fefa92 DK |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2007 David D. Kilzer | |
4 | ||
1364ff27 | 5 | test_description='git svn info' |
e6fefa92 DK |
6 | |
7 | . ./lib-git-svn.sh | |
80828488 | 8 | |
80828488 | 9 | # Tested with: svn, version 1.4.4 (r25188) |
3acae29e | 10 | # Tested with: svn, version 1.6.[12345689] |
da083d68 | 11 | v=`svn_cmd --version | sed -n -e 's/^svn, version \(1\.[0-9]*\.[0-9]*\).*$/\1/p'` |
80828488 | 12 | case $v in |
3acae29e | 13 | 1.[456].*) |
80828488 EW |
14 | ;; |
15 | *) | |
fadb5156 | 16 | skip_all="skipping svn-info test (SVN version: $v not supported)" |
80828488 EW |
17 | test_done |
18 | ;; | |
19 | esac | |
e6fefa92 | 20 | |
ed7158b4 JH |
21 | # On the "Text Last Updated" line, "git svn info" does not return the |
22 | # same value as "svn info" (i.e. the commit timestamp that touched the | |
23 | # path most recently); do not expect that field to match. | |
24 | test_cmp_info () { | |
25 | sed -e '/^Text Last Updated:/d' "$1" >tmp.expect | |
26 | sed -e '/^Text Last Updated:/d' "$2" >tmp.actual | |
27 | test_cmp tmp.expect tmp.actual && | |
28 | rm -f tmp.expect tmp.actual | |
e6fefa92 DK |
29 | } |
30 | ||
05427b91 TR |
31 | quoted_svnrepo="$(echo $svnrepo | sed 's/ /%20/')" |
32 | ||
80828488 | 33 | test_expect_success 'setup repository and import' ' |
e6fefa92 | 34 | mkdir info && |
18a82692 JN |
35 | ( |
36 | cd info && | |
37 | echo FIRST >A && | |
38 | echo one >file && | |
e6fefa92 DK |
39 | ln -s file symlink-file && |
40 | mkdir directory && | |
41 | touch directory/.placeholder && | |
42 | ln -s directory symlink-directory && | |
fd4ec4f2 JL |
43 | svn_cmd import -m "initial" . "$svnrepo" |
44 | ) && | |
da083d68 | 45 | svn_cmd co "$svnrepo" svnwc && |
18a82692 JN |
46 | ( |
47 | cd svnwc && | |
48 | echo foo >foo && | |
da083d68 ER |
49 | svn_cmd add foo && |
50 | svn_cmd commit -m "change outside directory" && | |
fd4ec4f2 JL |
51 | svn_cmd update |
52 | ) && | |
e6fefa92 | 53 | mkdir gitwc && |
18a82692 JN |
54 | ( |
55 | cd gitwc && | |
1364ff27 | 56 | git svn init "$svnrepo" && |
fd4ec4f2 | 57 | git svn fetch |
ed7158b4 | 58 | ) |
80828488 | 59 | ' |
e6fefa92 DK |
60 | |
61 | test_expect_success 'info' " | |
62 | (cd svnwc; svn info) > expected.info && | |
1364ff27 | 63 | (cd gitwc; git svn info) > actual.info && |
ed7158b4 | 64 | test_cmp_info expected.info actual.info |
e6fefa92 DK |
65 | " |
66 | ||
8b014d71 | 67 | test_expect_success 'info --url' ' |
1364ff27 | 68 | test "$(cd gitwc; git svn info --url)" = "$quoted_svnrepo" |
8b014d71 DK |
69 | ' |
70 | ||
e6fefa92 DK |
71 | test_expect_success 'info .' " |
72 | (cd svnwc; svn info .) > expected.info-dot && | |
1364ff27 | 73 | (cd gitwc; git svn info .) > actual.info-dot && |
ed7158b4 | 74 | test_cmp_info expected.info-dot actual.info-dot |
e6fefa92 DK |
75 | " |
76 | ||
8b014d71 | 77 | test_expect_success 'info --url .' ' |
1364ff27 | 78 | test "$(cd gitwc; git svn info --url .)" = "$quoted_svnrepo" |
8b014d71 DK |
79 | ' |
80 | ||
e6fefa92 DK |
81 | test_expect_success 'info file' " |
82 | (cd svnwc; svn info file) > expected.info-file && | |
1364ff27 | 83 | (cd gitwc; git svn info file) > actual.info-file && |
ed7158b4 | 84 | test_cmp_info expected.info-file actual.info-file |
e6fefa92 DK |
85 | " |
86 | ||
8b014d71 | 87 | test_expect_success 'info --url file' ' |
1364ff27 | 88 | test "$(cd gitwc; git svn info --url file)" = "$quoted_svnrepo/file" |
8b014d71 DK |
89 | ' |
90 | ||
e6fefa92 DK |
91 | test_expect_success 'info directory' " |
92 | (cd svnwc; svn info directory) > expected.info-directory && | |
1364ff27 | 93 | (cd gitwc; git svn info directory) > actual.info-directory && |
ed7158b4 | 94 | test_cmp_info expected.info-directory actual.info-directory |
e6fefa92 DK |
95 | " |
96 | ||
edde9112 TR |
97 | test_expect_success 'info inside directory' " |
98 | (cd svnwc/directory; svn info) > expected.info-inside-directory && | |
1364ff27 | 99 | (cd gitwc/directory; git svn info) > actual.info-inside-directory && |
ed7158b4 | 100 | test_cmp_info expected.info-inside-directory actual.info-inside-directory |
edde9112 TR |
101 | " |
102 | ||
8b014d71 | 103 | test_expect_success 'info --url directory' ' |
1364ff27 | 104 | test "$(cd gitwc; git svn info --url directory)" = "$quoted_svnrepo/directory" |
8b014d71 DK |
105 | ' |
106 | ||
e6fefa92 DK |
107 | test_expect_success 'info symlink-file' " |
108 | (cd svnwc; svn info symlink-file) > expected.info-symlink-file && | |
1364ff27 | 109 | (cd gitwc; git svn info symlink-file) > actual.info-symlink-file && |
ed7158b4 | 110 | test_cmp_info expected.info-symlink-file actual.info-symlink-file |
e6fefa92 DK |
111 | " |
112 | ||
8b014d71 | 113 | test_expect_success 'info --url symlink-file' ' |
1364ff27 | 114 | test "$(cd gitwc; git svn info --url symlink-file)" \ |
05427b91 | 115 | = "$quoted_svnrepo/symlink-file" |
8b014d71 DK |
116 | ' |
117 | ||
e6fefa92 DK |
118 | test_expect_success 'info symlink-directory' " |
119 | (cd svnwc; svn info symlink-directory) \ | |
120 | > expected.info-symlink-directory && | |
1364ff27 | 121 | (cd gitwc; git svn info symlink-directory) \ |
e6fefa92 | 122 | > actual.info-symlink-directory && |
ed7158b4 | 123 | test_cmp_info expected.info-symlink-directory actual.info-symlink-directory |
e6fefa92 DK |
124 | " |
125 | ||
8b014d71 | 126 | test_expect_success 'info --url symlink-directory' ' |
1364ff27 | 127 | test "$(cd gitwc; git svn info --url symlink-directory)" \ |
05427b91 | 128 | = "$quoted_svnrepo/symlink-directory" |
8b014d71 DK |
129 | ' |
130 | ||
e6fefa92 DK |
131 | test_expect_success 'info added-file' " |
132 | echo two > gitwc/added-file && | |
18a82692 JN |
133 | ( |
134 | cd gitwc && | |
fd4ec4f2 JL |
135 | git add added-file |
136 | ) && | |
e6fefa92 | 137 | cp gitwc/added-file svnwc/added-file && |
18a82692 JN |
138 | ( |
139 | cd svnwc && | |
fd4ec4f2 JL |
140 | svn_cmd add added-file > /dev/null |
141 | ) && | |
e6fefa92 | 142 | (cd svnwc; svn info added-file) > expected.info-added-file && |
1364ff27 | 143 | (cd gitwc; git svn info added-file) > actual.info-added-file && |
ed7158b4 | 144 | test_cmp_info expected.info-added-file actual.info-added-file |
e6fefa92 DK |
145 | " |
146 | ||
8b014d71 | 147 | test_expect_success 'info --url added-file' ' |
1364ff27 | 148 | test "$(cd gitwc; git svn info --url added-file)" \ |
05427b91 | 149 | = "$quoted_svnrepo/added-file" |
8b014d71 DK |
150 | ' |
151 | ||
e6fefa92 DK |
152 | test_expect_success 'info added-directory' " |
153 | mkdir gitwc/added-directory svnwc/added-directory && | |
e6fefa92 | 154 | touch gitwc/added-directory/.placeholder && |
18a82692 JN |
155 | ( |
156 | cd svnwc && | |
fd4ec4f2 JL |
157 | svn_cmd add added-directory > /dev/null |
158 | ) && | |
18a82692 JN |
159 | ( |
160 | cd gitwc && | |
fd4ec4f2 JL |
161 | git add added-directory |
162 | ) && | |
e6fefa92 DK |
163 | (cd svnwc; svn info added-directory) \ |
164 | > expected.info-added-directory && | |
1364ff27 | 165 | (cd gitwc; git svn info added-directory) \ |
e6fefa92 | 166 | > actual.info-added-directory && |
ed7158b4 | 167 | test_cmp_info expected.info-added-directory actual.info-added-directory |
e6fefa92 DK |
168 | " |
169 | ||
8b014d71 | 170 | test_expect_success 'info --url added-directory' ' |
1364ff27 | 171 | test "$(cd gitwc; git svn info --url added-directory)" \ |
05427b91 | 172 | = "$quoted_svnrepo/added-directory" |
8b014d71 DK |
173 | ' |
174 | ||
e6fefa92 | 175 | test_expect_success 'info added-symlink-file' " |
18a82692 JN |
176 | ( |
177 | cd gitwc && | |
e6fefa92 | 178 | ln -s added-file added-symlink-file && |
fd4ec4f2 JL |
179 | git add added-symlink-file |
180 | ) && | |
18a82692 JN |
181 | ( |
182 | cd svnwc && | |
e6fefa92 | 183 | ln -s added-file added-symlink-file && |
fd4ec4f2 JL |
184 | svn_cmd add added-symlink-file > /dev/null |
185 | ) && | |
e6fefa92 DK |
186 | (cd svnwc; svn info added-symlink-file) \ |
187 | > expected.info-added-symlink-file && | |
1364ff27 | 188 | (cd gitwc; git svn info added-symlink-file) \ |
e6fefa92 | 189 | > actual.info-added-symlink-file && |
ed7158b4 JH |
190 | test_cmp_info expected.info-added-symlink-file \ |
191 | actual.info-added-symlink-file | |
e6fefa92 DK |
192 | " |
193 | ||
8b014d71 | 194 | test_expect_success 'info --url added-symlink-file' ' |
1364ff27 | 195 | test "$(cd gitwc; git svn info --url added-symlink-file)" \ |
05427b91 | 196 | = "$quoted_svnrepo/added-symlink-file" |
8b014d71 DK |
197 | ' |
198 | ||
e6fefa92 | 199 | test_expect_success 'info added-symlink-directory' " |
18a82692 JN |
200 | ( |
201 | cd gitwc && | |
e6fefa92 | 202 | ln -s added-directory added-symlink-directory && |
fd4ec4f2 JL |
203 | git add added-symlink-directory |
204 | ) && | |
18a82692 JN |
205 | ( |
206 | cd svnwc && | |
e6fefa92 | 207 | ln -s added-directory added-symlink-directory && |
fd4ec4f2 JL |
208 | svn_cmd add added-symlink-directory > /dev/null |
209 | ) && | |
e6fefa92 DK |
210 | (cd svnwc; svn info added-symlink-directory) \ |
211 | > expected.info-added-symlink-directory && | |
1364ff27 | 212 | (cd gitwc; git svn info added-symlink-directory) \ |
e6fefa92 | 213 | > actual.info-added-symlink-directory && |
ed7158b4 JH |
214 | test_cmp_info expected.info-added-symlink-directory \ |
215 | actual.info-added-symlink-directory | |
e6fefa92 DK |
216 | " |
217 | ||
8b014d71 | 218 | test_expect_success 'info --url added-symlink-directory' ' |
1364ff27 | 219 | test "$(cd gitwc; git svn info --url added-symlink-directory)" \ |
05427b91 | 220 | = "$quoted_svnrepo/added-symlink-directory" |
8b014d71 DK |
221 | ' |
222 | ||
e6fefa92 | 223 | test_expect_success 'info deleted-file' " |
18a82692 JN |
224 | ( |
225 | cd gitwc && | |
fd4ec4f2 JL |
226 | git rm -f file > /dev/null |
227 | ) && | |
18a82692 JN |
228 | ( |
229 | cd svnwc && | |
fd4ec4f2 JL |
230 | svn_cmd rm --force file > /dev/null |
231 | ) && | |
ed7158b4 JH |
232 | (cd svnwc; svn info file) >expected.info-deleted-file && |
233 | (cd gitwc; git svn info file) >actual.info-deleted-file && | |
234 | test_cmp_info expected.info-deleted-file actual.info-deleted-file | |
e6fefa92 DK |
235 | " |
236 | ||
8b014d71 | 237 | test_expect_success 'info --url file (deleted)' ' |
1364ff27 | 238 | test "$(cd gitwc; git svn info --url file)" \ |
05427b91 | 239 | = "$quoted_svnrepo/file" |
8b014d71 DK |
240 | ' |
241 | ||
e6fefa92 | 242 | test_expect_success 'info deleted-directory' " |
18a82692 JN |
243 | ( |
244 | cd gitwc && | |
fd4ec4f2 JL |
245 | git rm -r -f directory > /dev/null |
246 | ) && | |
18a82692 JN |
247 | ( |
248 | cd svnwc && | |
fd4ec4f2 JL |
249 | svn_cmd rm --force directory > /dev/null |
250 | ) && | |
ed7158b4 JH |
251 | (cd svnwc; svn info directory) >expected.info-deleted-directory && |
252 | (cd gitwc; git svn info directory) >actual.info-deleted-directory && | |
253 | test_cmp_info expected.info-deleted-directory actual.info-deleted-directory | |
e6fefa92 DK |
254 | " |
255 | ||
8b014d71 | 256 | test_expect_success 'info --url directory (deleted)' ' |
1364ff27 | 257 | test "$(cd gitwc; git svn info --url directory)" \ |
05427b91 | 258 | = "$quoted_svnrepo/directory" |
8b014d71 DK |
259 | ' |
260 | ||
e6fefa92 | 261 | test_expect_success 'info deleted-symlink-file' " |
18a82692 JN |
262 | ( |
263 | cd gitwc && | |
fd4ec4f2 JL |
264 | git rm -f symlink-file > /dev/null |
265 | ) && | |
18a82692 JN |
266 | ( |
267 | cd svnwc && | |
fd4ec4f2 JL |
268 | svn_cmd rm --force symlink-file > /dev/null |
269 | ) && | |
ed7158b4 JH |
270 | (cd svnwc; svn info symlink-file) >expected.info-deleted-symlink-file && |
271 | (cd gitwc; git svn info symlink-file) >actual.info-deleted-symlink-file && | |
272 | test_cmp_info expected.info-deleted-symlink-file actual.info-deleted-symlink-file | |
e6fefa92 DK |
273 | " |
274 | ||
8b014d71 | 275 | test_expect_success 'info --url symlink-file (deleted)' ' |
1364ff27 | 276 | test "$(cd gitwc; git svn info --url symlink-file)" \ |
05427b91 | 277 | = "$quoted_svnrepo/symlink-file" |
8b014d71 DK |
278 | ' |
279 | ||
e6fefa92 | 280 | test_expect_success 'info deleted-symlink-directory' " |
18a82692 JN |
281 | ( |
282 | cd gitwc && | |
fd4ec4f2 JL |
283 | git rm -f symlink-directory > /dev/null |
284 | ) && | |
18a82692 JN |
285 | ( |
286 | cd svnwc && | |
fd4ec4f2 JL |
287 | svn_cmd rm --force symlink-directory > /dev/null |
288 | ) && | |
ed7158b4 JH |
289 | (cd svnwc; svn info symlink-directory) >expected.info-deleted-symlink-directory && |
290 | (cd gitwc; git svn info symlink-directory) >actual.info-deleted-symlink-directory && | |
291 | test_cmp_info expected.info-deleted-symlink-directory actual.info-deleted-symlink-directory | |
e6fefa92 DK |
292 | " |
293 | ||
8b014d71 | 294 | test_expect_success 'info --url symlink-directory (deleted)' ' |
1364ff27 | 295 | test "$(cd gitwc; git svn info --url symlink-directory)" \ |
05427b91 | 296 | = "$quoted_svnrepo/symlink-directory" |
8b014d71 DK |
297 | ' |
298 | ||
e6fefa92 DK |
299 | # NOTE: git does not have the concept of replaced objects, |
300 | # so we can't test for files in that state. | |
301 | ||
302 | test_expect_success 'info unknown-file' " | |
303 | echo two > gitwc/unknown-file && | |
1364ff27 | 304 | (cd gitwc; test_must_fail git svn info unknown-file) \ |
4457d4f7 TR |
305 | 2> actual.info-unknown-file && |
306 | grep unknown-file actual.info-unknown-file | |
e6fefa92 DK |
307 | " |
308 | ||
8b014d71 | 309 | test_expect_success 'info --url unknown-file' ' |
4457d4f7 | 310 | echo two > gitwc/unknown-file && |
1364ff27 | 311 | (cd gitwc; test_must_fail git svn info --url unknown-file) \ |
4457d4f7 TR |
312 | 2> actual.info-url-unknown-file && |
313 | grep unknown-file actual.info-url-unknown-file | |
8b014d71 DK |
314 | ' |
315 | ||
e6fefa92 DK |
316 | test_expect_success 'info unknown-directory' " |
317 | mkdir gitwc/unknown-directory svnwc/unknown-directory && | |
1364ff27 | 318 | (cd gitwc; test_must_fail git svn info unknown-directory) \ |
4457d4f7 TR |
319 | 2> actual.info-unknown-directory && |
320 | grep unknown-directory actual.info-unknown-directory | |
e6fefa92 DK |
321 | " |
322 | ||
8b014d71 | 323 | test_expect_success 'info --url unknown-directory' ' |
1364ff27 | 324 | (cd gitwc; test_must_fail git svn info --url unknown-directory) \ |
4457d4f7 TR |
325 | 2> actual.info-url-unknown-directory && |
326 | grep unknown-directory actual.info-url-unknown-directory | |
8b014d71 DK |
327 | ' |
328 | ||
e6fefa92 | 329 | test_expect_success 'info unknown-symlink-file' " |
18a82692 JN |
330 | ( |
331 | cd gitwc && | |
fd4ec4f2 JL |
332 | ln -s unknown-file unknown-symlink-file |
333 | ) && | |
1364ff27 | 334 | (cd gitwc; test_must_fail git svn info unknown-symlink-file) \ |
4457d4f7 TR |
335 | 2> actual.info-unknown-symlink-file && |
336 | grep unknown-symlink-file actual.info-unknown-symlink-file | |
e6fefa92 DK |
337 | " |
338 | ||
8b014d71 | 339 | test_expect_success 'info --url unknown-symlink-file' ' |
1364ff27 | 340 | (cd gitwc; test_must_fail git svn info --url unknown-symlink-file) \ |
4457d4f7 TR |
341 | 2> actual.info-url-unknown-symlink-file && |
342 | grep unknown-symlink-file actual.info-url-unknown-symlink-file | |
8b014d71 DK |
343 | ' |
344 | ||
e6fefa92 | 345 | test_expect_success 'info unknown-symlink-directory' " |
18a82692 JN |
346 | ( |
347 | cd gitwc && | |
fd4ec4f2 JL |
348 | ln -s unknown-directory unknown-symlink-directory |
349 | ) && | |
1364ff27 | 350 | (cd gitwc; test_must_fail git svn info unknown-symlink-directory) \ |
4457d4f7 TR |
351 | 2> actual.info-unknown-symlink-directory && |
352 | grep unknown-symlink-directory actual.info-unknown-symlink-directory | |
e6fefa92 DK |
353 | " |
354 | ||
8b014d71 | 355 | test_expect_success 'info --url unknown-symlink-directory' ' |
1364ff27 | 356 | (cd gitwc; test_must_fail git svn info --url unknown-symlink-directory) \ |
4457d4f7 TR |
357 | 2> actual.info-url-unknown-symlink-directory && |
358 | grep unknown-symlink-directory actual.info-url-unknown-symlink-directory | |
8b014d71 DK |
359 | ' |
360 | ||
e6fefa92 | 361 | test_done |