Comments
Patch
@@ -190,17 +190,16 @@ def update(repo, parents, node):
cur = repo._bookmarkcurrent
if not cur:
return False
if marks[cur] in parents:
- old = repo[marks[cur]]
new = repo[node]
divs = [repo[b] for b in marks
if b.split('@', 1)[0] == cur.split('@', 1)[0]]
anc = repo.changelog.ancestors([new.rev()])
deletefrom = [b.node() for b in divs if b.rev() in anc or b == new]
- if old.descendant(new):
+ if validdest(repo, repo[marks[cur]], new):
marks[cur] = new.node()
update = True
if deletedivergent(repo, deletefrom, cur):
update = True
@@ -227,17 +227,20 @@ the bookmark (issue4015)
$ hg book bm
moving bookmark 'bm' forward from 6efa171f091b
$ hg bookmarks
* bm 5:ff252e8273df
-Test that 4 is detected as the no-argument destination from 3
+Test that 4 is detected as the no-argument destination from 3 and also moves
+the bookmark with it
$ hg up --quiet 0 # we should be able to update to 3 directly
$ hg up --quiet --hidden 3 # but not implemented yet.
+ $ hg book -f bm
$ hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg id
- d047485b3896+ (b1)
+ updating bookmark bm
+ $ hg book
+ * bm 4:d047485b3896
Test that 5 is detected as a valid destination from 1
$ hg up --quiet 0 # we should be able to update to 3 directly
$ hg up --quiet --hidden 3 # but not implemented yet.
$ hg up 5