comparison tests/test-subrepo-svn.t @ 15607:fab28a577a38 stable

test-svn-subrepo: fix reference output for svn 1.7 I modified check-code.py "$?" detection because I thought my use was legit, we cannot test exit status of pipelines commands except for the last one without this. So it now tolerates "[$?" which is unlikely to be added by mistake. Tested on: - OSX + svn 1.7.1 - Linux + svn 1.6.12
author Patrick Mezard <pmezard@gmail.com>
date Fri, 02 Dec 2011 16:50:48 +0100
parents 695ac6aca77f
children b254f827b7a6 c9c8c9053119
comparison
equal deleted inserted replaced
15604:b8d8599410da 15607:fab28a577a38
35 Adding externals/other 35 Adding externals/other
36 Adding src 36 Adding src
37 Adding src/alpha 37 Adding src/alpha
38 Transmitting file data .. 38 Transmitting file data ..
39 Committed revision 1. 39 Committed revision 1.
40 $ svn up 40 $ svn up -q
41 At revision 1.
42 $ echo "externals -r1 $SVNREPO/externals" > extdef 41 $ echo "externals -r1 $SVNREPO/externals" > extdef
43 $ svn propset -F extdef svn:externals src 42 $ svn propset -F extdef svn:externals src
44 property 'svn:externals' set on 'src' 43 property 'svn:externals' set on 'src'
45 $ svn ci -m 'Setting externals' 44 $ svn ci -m 'Setting externals'
46 Sending src 45 Sending src
103 parent: 1:* tip (glob) 102 parent: 1:* tip (glob)
104 1 103 1
105 branch: default 104 branch: default
106 commit: 1 modified, 1 subrepos 105 commit: 1 modified, 1 subrepos
107 update: (current) 106 update: (current)
108 $ hg commit --subrepos -m 'Message!' 107 $ hg commit --subrepos -m 'Message!' | grep -v Updating
109 committing subrepository s 108 committing subrepository s
110 Sending*s/alpha (glob) 109 Sending*s/alpha (glob)
111 Transmitting file data . 110 Transmitting file data .
112 Committed revision 3. 111 Committed revision 3.
113 112
114 Fetching external item into '$TESTTMP/sub/t/s/externals' 113 Fetching external item into '*s/externals'* (glob)
115 External at revision 1. 114 External at revision 1.
116 115
117 At revision 3. 116 At revision 3.
118 $ hg debugsub 117 $ hg debugsub
119 path s 118 path s
127 bringing any changes. 126 bringing any changes.
128 127
129 $ svn mkdir "$SVNREPO/unrelated" -m 'create unrelated' 128 $ svn mkdir "$SVNREPO/unrelated" -m 'create unrelated'
130 129
131 Committed revision 4. 130 Committed revision 4.
132 $ svn up s 131 $ svn up -q s
133
134 Fetching external item into 's/externals'
135 External at revision 1.
136
137 At revision 4.
138 $ hg sum 132 $ hg sum
139 parent: 2:* tip (glob) 133 parent: 2:* tip (glob)
140 Message! 134 Message!
141 branch: default 135 branch: default
142 commit: (clean) 136 commit: (clean)
149 $ hg st 143 $ hg st
150 144
151 add a commit from svn 145 add a commit from svn
152 146
153 $ cd "$WCROOT"/src 147 $ cd "$WCROOT"/src
154 $ svn up 148 $ svn up -q
155 U alpha
156
157 Fetching external item into 'externals'
158 A externals/other
159 Updated external to revision 1.
160
161 Updated to revision 4.
162 $ echo xyz >> alpha 149 $ echo xyz >> alpha
163 $ svn propset svn:mime-type 'text/xml' alpha 150 $ svn propset svn:mime-type 'text/xml' alpha
164 property 'svn:mime-type' set on 'alpha' 151 property 'svn:mime-type' set on 'alpha'
165 $ svn ci -m 'amend a from svn' 152 $ svn ci -m 'amend a from svn'
166 Sending src/alpha 153 Sending *alpha (glob)
167 Transmitting file data . 154 Transmitting file data .
168 Committed revision 5. 155 Committed revision 5.
169 $ cd ../../sub/t 156 $ cd ../../sub/t
170 157
171 this commit from hg will fail 158 this commit from hg will fail
172 159
173 $ echo zzz >> s/alpha 160 $ echo zzz >> s/alpha
174 $ hg ci --subrepos -m 'amend alpha from hg' 161 $ (hg ci --subrepos -m 'amend alpha from hg' 2>&1; echo "[$?]") | grep -vi 'out of date'
175 committing subrepository s 162 committing subrepository s
176 abort: svn: Commit failed (details follow): 163 abort: svn:*Commit failed (details follow): (glob)
177 svn: (Out of date)?.*/src/alpha.*(is out of date)? (re)
178 [255] 164 [255]
179 $ svn revert -q s/alpha 165 $ svn revert -q s/alpha
180 166
181 this commit fails because of meta changes 167 this commit fails because of meta changes
182 168
183 $ svn propset svn:mime-type 'text/html' s/alpha 169 $ svn propset svn:mime-type 'text/html' s/alpha
184 property 'svn:mime-type' set on 's/alpha' 170 property 'svn:mime-type' set on 's/alpha'
185 $ hg ci --subrepos -m 'amend alpha from hg' 171 $ (hg ci --subrepos -m 'amend alpha from hg' 2>&1; echo "[$?]") | grep -vi 'out of date'
186 committing subrepository s 172 committing subrepository s
187 abort: svn: Commit failed (details follow): 173 abort: svn:*Commit failed (details follow): (glob)
188 svn: (Out of date)?.*/src/alpha.*(is out of date)? (re)
189 [255] 174 [255]
190 $ svn revert -q s/alpha 175 $ svn revert -q s/alpha
191 176
192 this commit fails because of externals changes 177 this commit fails because of externals changes
193 178
226 $ hg clone t tc | fix_path 211 $ hg clone t tc | fix_path
227 updating to branch default 212 updating to branch default
228 A tc/s/alpha 213 A tc/s/alpha
229 U tc/s 214 U tc/s
230 215
231 Fetching external item into 'tc/s/externals' 216 Fetching external item into 'tc/s/externals'* (glob)
232 A tc/s/externals/other 217 A tc/s/externals/other
233 Checked out external at revision 1. 218 Checked out external at revision 1.
234 219
235 Checked out revision 3. 220 Checked out revision 3.
236 A tc/subdir/s/alpha 221 A tc/subdir/s/alpha
237 U tc/subdir/s 222 U tc/subdir/s
238 223
239 Fetching external item into 'tc/subdir/s/externals' 224 Fetching external item into 'tc/subdir/s/externals'* (glob)
240 A tc/subdir/s/externals/other 225 A tc/subdir/s/externals/other
241 Checked out external at revision 1. 226 Checked out external at revision 1.
242 227
243 Checked out revision 2. 228 Checked out revision 2.
244 3 files updated, 0 files merged, 0 files removed, 0 files unresolved 229 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
270 $ cd s 255 $ cd s
271 $ echo c0 > alpha 256 $ echo c0 > alpha
272 $ echo c1 > f1 257 $ echo c1 > f1
273 $ echo c1 > f2 258 $ echo c1 > f2
274 $ svn add f1 -q 259 $ svn add f1 -q
275 $ svn status 260 $ svn status | sort
261
276 ? * a (glob) 262 ? * a (glob)
263 ? * f2 (glob)
264 A * f1 (glob)
265 M * alpha (glob)
266 Performing status on external item at 'externals'* (glob)
277 X * externals (glob) 267 X * externals (glob)
278 ? * f2 (glob)
279 M * alpha (glob)
280 A * f1 (glob)
281
282 Performing status on external item at 'externals'
283 $ cd ../.. 268 $ cd ../..
284 $ hg -R t update -C 269 $ hg -R t update -C
285 270
286 Fetching external item into 't/s/externals' 271 Fetching external item into 't/s/externals'* (glob)
287 Checked out external at revision 1. 272 Checked out external at revision 1.
288 273
289 Checked out revision 3. 274 Checked out revision 3.
290 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 275 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
291 $ cd t/s 276 $ cd t/s
293 ? * a (glob) 278 ? * a (glob)
294 X * externals (glob) 279 X * externals (glob)
295 ? * f1 (glob) 280 ? * f1 (glob)
296 ? * f2 (glob) 281 ? * f2 (glob)
297 282
298 Performing status on external item at 'externals' 283 Performing status on external item at 'externals'* (glob)
299 284
300 Sticky subrepositories, no changes 285 Sticky subrepositories, no changes
301 $ cd $TESTTMP/sub/t 286 $ cd $TESTTMP/sub/t
302 $ hg id -n 287 $ hg id -n
303 2 288 2
304 $ cd s 289 $ cd s
305 $ svnversion 290 $ svnversion
306 3 291 3
307 $ cd .. 292 $ cd ..
308 $ hg update 1 293 $ hg update 1
309 U $TESTTMP/sub/t/s/alpha 294 U *s/alpha (glob)
310 295
311 Fetching external item into '$TESTTMP/sub/t/s/externals' 296 Fetching external item into '*s/externals'* (glob)
312 Checked out external at revision 1. 297 Checked out external at revision 1.
313 298
314 Checked out revision 2. 299 Checked out revision 2.
315 2 files updated, 0 files merged, 0 files removed, 0 files unresolved 300 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
316 $ hg id -n 301 $ hg id -n
342 $ cd s 327 $ cd s
343 $ svnversion 328 $ svnversion
344 2M 329 2M
345 $ cd .. 330 $ cd ..
346 $ hg update --clean tip 331 $ hg update --clean tip
347 U $TESTTMP/sub/t/s/alpha 332 U *s/alpha (glob)
348 333
349 Fetching external item into '$TESTTMP/sub/t/s/externals' 334 Fetching external item into '*s/externals'* (glob)
350 Checked out external at revision 1. 335 Checked out external at revision 1.
351 336
352 Checked out revision 3. 337 Checked out revision 3.
353 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 338 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
354 339
358 $ cd s 343 $ cd s
359 $ svnversion 344 $ svnversion
360 3 345 3
361 $ cd .. 346 $ cd ..
362 $ cd s 347 $ cd s
363 $ svn update -r 1 348 $ svn update -qr 1
364 U alpha
365 U .
366
367 Fetching external item into 'externals'
368 Updated external to revision 1.
369
370 Updated to revision 1.
371 $ cd .. 349 $ cd ..
372 $ hg update 1 350 $ hg update 1
373 subrepository sources for s differ (in checked out version) 351 subrepository sources for s differ (in checked out version)
374 use (l)ocal source (1) or (r)emote source (2)? 352 use (l)ocal source (1) or (r)emote source (2)?
375 l 353 l
402 $ svnversion 380 $ svnversion
403 1M 381 1M
404 $ cd .. 382 $ cd ..
405 383
406 Sticky repository, update --clean 384 Sticky repository, update --clean
407 $ hg update --clean tip 385 $ hg update --clean tip | grep -v s/externals/other
408 U $TESTTMP/sub/t/s/alpha 386 U *s/alpha (glob)
409 U $TESTTMP/sub/t/s 387 U *s (glob)
410 388
411 Fetching external item into '$TESTTMP/sub/t/s/externals' 389 Fetching external item into '*s/externals'* (glob)
412 Checked out external at revision 1. 390 Checked out external at revision 1.
413 391
414 Checked out revision 3. 392 Checked out revision 3.
415 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 393 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
416 $ hg id -n 394 $ hg id -n
420 3 398 3
421 $ cd .. 399 $ cd ..
422 400
423 Test subrepo already at intended revision: 401 Test subrepo already at intended revision:
424 $ cd s 402 $ cd s
425 $ svn update -r 2 403 $ svn update -qr 2
426 U alpha
427
428 Fetching external item into 'externals'
429 Updated external to revision 1.
430
431 Updated to revision 2.
432 $ cd .. 404 $ cd ..
433 $ hg update 1 405 $ hg update 1
434 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 406 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
435 $ hg id -n 407 $ hg id -n
436 1+ 408 1+
447 $ echo epsilon.py > dir/epsilon.py 419 $ echo epsilon.py > dir/epsilon.py
448 $ svn add dir 420 $ svn add dir
449 A dir 421 A dir
450 A dir/epsilon.py 422 A dir/epsilon.py
451 $ svn ci -m 'Add dir/epsilon.py' 423 $ svn ci -m 'Add dir/epsilon.py'
452 Adding src/dir 424 Adding *dir (glob)
453 Adding src/dir/epsilon.py 425 Adding *dir/epsilon.py (glob)
454 Transmitting file data . 426 Transmitting file data .
455 Committed revision 6. 427 Committed revision 6.
456 $ cd ../.. 428 $ cd ../..
457 $ hg init rebaserepo 429 $ hg init rebaserepo
458 $ cd rebaserepo 430 $ cd rebaserepo
464 $ echo a > a 436 $ echo a > a
465 $ hg ci -Am adda 437 $ hg ci -Am adda
466 adding a 438 adding a
467 $ hg up 0 439 $ hg up 0
468 0 files updated, 0 files merged, 1 files removed, 0 files unresolved 440 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
469 $ svn up -r6 s 441 $ svn up -qr6 s
470 A s/dir
471 A s/dir/epsilon.py
472
473 Fetching external item into 's/externals'
474 Updated external to revision 1.
475
476 Updated to revision 6.
477 $ hg ci -m updatesub 442 $ hg ci -m updatesub
478 committing subrepository s 443 committing subrepository s
479 created new head 444 created new head
480 $ echo pyc > s/dir/epsilon.pyc 445 $ echo pyc > s/dir/epsilon.pyc
481 $ hg up 1 446 $ hg up 1
482 D $TESTTMP/rebaserepo/s/dir 447 D *s/dir (glob)
483 448
484 Fetching external item into '$TESTTMP/rebaserepo/s/externals' 449 Fetching external item into '*s/externals'* (glob)
485 Checked out external at revision 1. 450 Checked out external at revision 1.
486 451
487 Checked out revision 5. 452 Checked out revision 5.
488 2 files updated, 0 files merged, 0 files removed, 0 files unresolved 453 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
489 $ if "$TESTDIR/hghave" -q svn15; then 454 $ if "$TESTDIR/hghave" -q svn15; then
508 created new head 473 created new head
509 474
510 Switching back to the head where we have another path mapped to the 475 Switching back to the head where we have another path mapped to the
511 same subrepo should work if the subrepo is clean. 476 same subrepo should work if the subrepo is clean.
512 $ hg co other 477 $ hg co other
513 A $TESTTMP/rebaserepo/obstruct/other 478 A *obstruct/other (glob)
514 Checked out revision 1. 479 Checked out revision 1.
515 2 files updated, 0 files merged, 0 files removed, 0 files unresolved 480 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
516 481
517 This is surprising, but is also correct based on the current code: 482 This is surprising, but is also correct based on the current code:
518 $ echo "updating should (maybe) fail" > obstruct/other 483 $ echo "updating should (maybe) fail" > obstruct/other
521 [255] 486 [255]
522 487
523 Point to a Subversion branch which has since been deleted and recreated 488 Point to a Subversion branch which has since been deleted and recreated
524 First, create that condition in the repository. 489 First, create that condition in the repository.
525 490
526 $ hg ci --subrepos -m cleanup 491 $ hg ci --subrepos -m cleanup | grep -v Updating
527 committing subrepository obstruct 492 committing subrepository obstruct
528 Sending obstruct/other 493 Sending obstruct/other
529 Transmitting file data . 494 Transmitting file data .
530 Committed revision 7. 495 Committed revision 7.
531 At revision 7. 496 At revision 7.
548 513
549 Committed revision 11. 514 Committed revision 11.
550 $ svn copy -m "recreate branch" $SVNREPO/trunk $SVNREPO/branch 515 $ svn copy -m "recreate branch" $SVNREPO/trunk $SVNREPO/branch
551 516
552 Committed revision 12. 517 Committed revision 12.
553 $ svn up 518 $ svn up -q
554 D somethingold
555 Updated to revision 12.
556 $ echo "something new" > somethingnew 519 $ echo "something new" > somethingnew
557 $ svn add somethingnew 520 $ svn add somethingnew
558 A somethingnew 521 A somethingnew
559 $ svn ci -m 'Something new' 522 $ svn ci -m 'Something new'
560 Adding somethingnew 523 Adding somethingnew
567 Checked out revision 10. 530 Checked out revision 10.
568 $ echo "recreated = [svn] $SVNREPO/branch" >> .hgsub 531 $ echo "recreated = [svn] $SVNREPO/branch" >> .hgsub
569 $ hg ci -m addsub 532 $ hg ci -m addsub
570 committing subrepository recreated 533 committing subrepository recreated
571 $ cd recreated 534 $ cd recreated
572 $ svn up 535 $ svn up -q
573 D somethingold
574 A somethingnew
575 Updated to revision 13.
576 $ cd .. 536 $ cd ..
577 $ hg ci -m updatesub 537 $ hg ci -m updatesub
578 committing subrepository recreated 538 committing subrepository recreated
579 $ hg up -r-2 539 $ hg up -r-2
580 D $TESTTMP/rebaserepo/recreated/somethingnew 540 D *recreated/somethingnew (glob)
581 A $TESTTMP/rebaserepo/recreated/somethingold 541 A *recreated/somethingold (glob)
582 Checked out revision 10. 542 Checked out revision 10.
583 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 543 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
584 $ test -f recreated/somethingold 544 $ test -f recreated/somethingold
585 545