Mercurial > hg
changeset 33491:1adcb594eb6b
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.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Mon, 10 Jul 2017 19:40:23 +0200 |
parents | 902fe63954a9 |
children | 14af04391fb9 |
files | mercurial/bookmarks.py |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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)