Show More
@@ -818,6 +818,14 b' def bookmark(ui, repo, mark=None, rev=No' | |||
|
818 | 818 | bmctx = repo[marks[mark]] |
|
819 | 819 | divs = [repo[b].node() for b in marks |
|
820 | 820 | if b.split('@', 1)[0] == mark.split('@', 1)[0]] |
|
821 | ||
|
822 | # allow resolving a single divergent bookmark even if moving | |
|
823 | # the bookmark across branches when a revision is specified | |
|
824 | # that contains a divergent bookmark | |
|
825 | if bmctx.rev() not in anc and target in divs: | |
|
826 | bookmarks.deletedivergent(repo, [target], mark) | |
|
827 | return | |
|
828 | ||
|
821 | 829 | deletefrom = [b for b in divs |
|
822 | 830 | if repo[b].rev() in anc or b == target] |
|
823 | 831 | bookmarks.deletedivergent(repo, deletefrom, mark) |
@@ -611,3 +611,19 b' test clearing divergent bookmarks of lin' | |||
|
611 | 611 | Z@1 1:925d80f479bb |
|
612 | 612 | four 3:9ba5f110a0b3 |
|
613 | 613 | should-end-on-two 2:db815d6d32e6 |
|
614 | ||
|
615 | test clearing only a single divergent bookmark across branches | |
|
616 | ||
|
617 | $ hg book foo -r 1 | |
|
618 | $ hg book foo@1 -r 0 | |
|
619 | $ hg book foo@2 -r 2 | |
|
620 | $ hg book foo@3 -r 3 | |
|
621 | $ hg book foo -r foo@3 | |
|
622 | $ hg book | |
|
623 | Z 3:9ba5f110a0b3 | |
|
624 | Z@1 1:925d80f479bb | |
|
625 | * foo 3:9ba5f110a0b3 | |
|
626 | foo@1 0:f7b1eb17ad24 | |
|
627 | foo@2 2:db815d6d32e6 | |
|
628 | four 3:9ba5f110a0b3 | |
|
629 | should-end-on-two 2:db815d6d32e6 |
General Comments 0
You need to be logged in to leave comments.
Login now