##// END OF EJS Templates
update: resurrect bare update from null parent to tip-most branch head...
Yuya Nishihara -
r28924:d9539959 default
parent child Browse files
Show More
@@ -101,6 +101,10 b' def _destupdatebranch(repo, clean, check'
101 node = repo.revs('max(.::(%ln))', heads).first()
101 node = repo.revs('max(.::(%ln))', heads).first()
102 if bookmarks.isactivewdirparent(repo):
102 if bookmarks.isactivewdirparent(repo):
103 movemark = repo['.'].node()
103 movemark = repo['.'].node()
104 elif currentbranch == 'default' and not wc.p1():
105 # "null" parent belongs to "default" branch, but it doesn't exist, so
106 # update to the tipmost non-closed branch head
107 node = repo.revs('max(head() and not closed())').first()
104 else:
108 else:
105 node = repo['.'].node()
109 node = repo['.'].node()
106 return node, movemark, None
110 return node, movemark, None
@@ -391,3 +391,75 b' We expect that bare update on new branch'
391 commit: (new branch)
391 commit: (new branch)
392 update: (current)
392 update: (current)
393 phases: 3 draft
393 phases: 3 draft
394
395 $ cd ..
396
397 We need special handling for repositories with no "default" branch because
398 "null" revision belongs to non-existent "default" branch.
399
400 $ hg init nodefault
401 $ cd nodefault
402 $ hg branch -q foo
403 $ touch 0
404 $ hg ci -Aqm0
405 $ touch 1
406 $ hg ci -Aqm1
407 $ hg update -qr0
408 $ hg branch -q bar
409 $ touch 2
410 $ hg ci -Aqm2
411 $ hg update -qr0
412 $ hg branch -q baz
413 $ touch 3
414 $ hg ci -Aqm3
415 $ hg ci --close-branch -m 'close baz'
416 $ hg update -q null
417 $ hg log -GT'{rev} {branch}\n'
418 _ 4 baz
419 |
420 o 3 baz
421 |
422 | o 2 bar
423 |/
424 | o 1 foo
425 |/
426 o 0 foo
427
428
429 a) updating from "null" should bring us to the tip-most branch head as
430 there is no "default" branch:
431
432 $ hg update -q null
433 $ hg id -bn
434 -1 default
435 $ hg update
436 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
437 $ hg id -bn
438 2 bar
439
440 b) but if we are at uncommitted "default" branch, we should stick to the
441 current revision:
442
443 $ hg update -q 0
444 $ hg branch default
445 marked working directory as branch default
446 $ hg id -bn
447 0 default
448 $ hg update
449 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
450 $ hg id -bn
451 0 default
452
453 c) also, if we have uncommitted branch at "null", we should stick to it:
454
455 $ hg update -q null
456 $ hg branch new
457 marked working directory as branch new
458 $ hg id -bn
459 -1 new
460 $ hg update
461 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
462 $ hg id -bn
463 -1 new
464
465 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now