]> git.ipfire.org Git - thirdparty/git.git/blame - t/t9119-git-svn-info.sh
i18n: avoid parenthesized string as array initializer
[thirdparty/git.git] / t / t9119-git-svn-info.sh
CommitLineData
e6fefa92
DK
1#!/bin/sh
2#
3# Copyright (c) 2007 David D. Kilzer
4
1364ff27 5test_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 11v=`svn_cmd --version | sed -n -e 's/^svn, version \(1\.[0-9]*\.[0-9]*\).*$/\1/p'`
80828488 12case $v in
3acae29e 131.[456].*)
80828488
EW
14 ;;
15*)
fadb5156 16 skip_all="skipping svn-info test (SVN version: $v not supported)"
80828488
EW
17 test_done
18 ;;
19esac
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.
24test_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
31quoted_svnrepo="$(echo $svnrepo | sed 's/ /%20/')"
32
80828488 33test_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
61test_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 67test_expect_success 'info --url' '
1364ff27 68 test "$(cd gitwc; git svn info --url)" = "$quoted_svnrepo"
8b014d71
DK
69 '
70
e6fefa92
DK
71test_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 77test_expect_success 'info --url .' '
1364ff27 78 test "$(cd gitwc; git svn info --url .)" = "$quoted_svnrepo"
8b014d71
DK
79 '
80
e6fefa92
DK
81test_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 87test_expect_success 'info --url file' '
1364ff27 88 test "$(cd gitwc; git svn info --url file)" = "$quoted_svnrepo/file"
8b014d71
DK
89 '
90
e6fefa92
DK
91test_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
97test_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 103test_expect_success 'info --url directory' '
1364ff27 104 test "$(cd gitwc; git svn info --url directory)" = "$quoted_svnrepo/directory"
8b014d71
DK
105 '
106
e6fefa92
DK
107test_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 113test_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
118test_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 126test_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
131test_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 147test_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
152test_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 170test_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 175test_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 194test_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 199test_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 218test_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 223test_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 237test_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 242test_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 256test_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 261test_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 275test_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 280test_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 294test_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
302test_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 309test_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
316test_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 323test_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 329test_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 339test_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 345test_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 355test_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 361test_done