bookmarks: use 'applychanges' for bookmark update
There is still some use of 'deletedivergent' bookmark here. They will be taken
care of later. The 'deletedivergent' code needs some rework before fitting in
the new world.
--- a/mercurial/bookmarks.py Mon Jul 10 17:46:47 2017 +0200
+++ b/mercurial/bookmarks.py Mon Jul 10 19:40:23 2017 +0200
@@ -350,6 +350,7 @@
if not active:
return False
+ bmchanges = []
if marks[active] in parents:
new = repo[node]
divs = [repo[b] for b in marks
@@ -357,7 +358,7 @@
anc = repo.changelog.ancestors([new.rev()])
deletefrom = [b.node() for b in divs if b.rev() in anc or b == new]
if validdest(repo, repo[marks[active]], new):
- marks[active] = new.node()
+ bmchanges.append((active, new.node()))
update = True
if deletedivergent(repo, deletefrom, active):
@@ -368,7 +369,7 @@
try:
lock = repo.lock()
tr = repo.transaction('bookmark')
- marks.recordchange(tr)
+ marks.applychanges(repo, tr, bmchanges)
tr.close()
finally:
lockmod.release(tr, lock)