# HG changeset patch # User Laurent Charignon # Date 2015-11-20 21:46:36 # Node ID b9d0b45df7b2eebde4dd1eb7e5ced55544a63b63 # Parent 1168499e52661e0e147b302ae84c1e4e27200160 strip: use repo._bookmarks.recordchange instead of repo._bookmarks.write Before this patch, strip was using repo._bookmarks.write. This patch replaces this code with the recommended way of saving bookmarks changes: repo._bookmarks.recordchange. diff --git a/hgext/strip.py b/hgext/strip.py --- a/hgext/strip.py +++ b/hgext/strip.py @@ -64,13 +64,19 @@ def strip(ui, repo, revs, update=True, b repomarks = repo._bookmarks if bookmarks: - if repo._activebookmark in bookmarks: - bookmarksmod.deactivate(repo) - for bookmark in bookmarks: - del repomarks[bookmark] - repomarks.write() - for bookmark in sorted(bookmarks): - ui.write(_("bookmark '%s' deleted\n") % bookmark) + tr = None + try: + tr = repo.transaction('strip') + if repo._activebookmark in bookmarks: + bookmarksmod.deactivate(repo) + for bookmark in bookmarks: + del repomarks[bookmark] + repomarks.recordchange(tr) + tr.close() + for bookmark in sorted(bookmarks): + ui.write(_("bookmark '%s' deleted\n") % bookmark) + finally: + release(tr) finally: release(lock, wlock) @@ -147,11 +153,18 @@ def stripcmd(ui, repo, *revs, **opts): rsrevs = repair.stripbmrevset(repo, marks[0]) revs.update(set(rsrevs)) if not revs: - for bookmark in bookmarks: - del repomarks[bookmark] - repomarks.write() - for bookmark in sorted(bookmarks): - ui.write(_("bookmark '%s' deleted\n") % bookmark) + lock = tr = None + try: + lock = repo.lock() + tr = repo.transaction('bookmark') + for bookmark in bookmarks: + del repomarks[bookmark] + repomarks.recordchange(tr) + tr.close() + for bookmark in sorted(bookmarks): + ui.write(_("bookmark '%s' deleted\n") % bookmark) + finally: + release(lock, tr) if not revs: raise error.Abort(_('empty revision set'))