# HG changeset patch # User Laurent Charignon # Date 1448055996 28800 # 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 -r 1168499e5266 -r b9d0b45df7b2 hgext/strip.py --- a/hgext/strip.py Fri Nov 20 13:23:47 2015 -0800 +++ b/hgext/strip.py Fri Nov 20 13:46:36 2015 -0800 @@ -64,13 +64,19 @@ 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 @@ 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'))