# HG changeset patch # User Pierre-Yves David # Date 1442263954 25200 # Node ID 415a51ac07a7b4269aed72b972ce65374e334205 # Parent 094b54a72c1d6f5fc2ad6b9bee0b5ca421679f51# Parent e8f7e4c5353792aa35a304fd601f6037d420297e merge with stable diff -r 094b54a72c1d -r 415a51ac07a7 README --- a/README Mon Sep 14 13:48:34 2015 -0700 +++ b/README Mon Sep 14 13:52:34 2015 -0700 @@ -56,6 +56,11 @@ - split: add a new command to split changesets - add some progress data during changesets discovery +5.2.1 -- + +- prune: fixed possible issue with lock and bookmark +- next/prev: fixed possible issue with lock and bookmark + 5.2.0 -- 2015-06-25 - evolve: gain a --rev option to control what revisions to evolve (issue4391) diff -r 094b54a72c1d -r 415a51ac07a7 hgext/evolve.py --- a/hgext/evolve.py Mon Sep 14 13:48:34 2015 -0700 +++ b/hgext/evolve.py Mon Sep 14 13:52:34 2015 -0700 @@ -2142,10 +2142,18 @@ revs = sorted(revs) return marks, revs -def _deletebookmark(ui, marks, mark): - del marks[mark] - marks.write() - ui.write(_("bookmark '%s' deleted\n") % mark) +def _deletebookmark(repo, marks, mark): + wlock = lock = tr = None + try: + wlock = repo.wlock() + lock = repo.lock() + tr = repo.transaction('prune') + del marks[mark] + marks.recordchange(tr) + tr.close() + repo.ui.write(_("bookmark '%s' deleted\n") % mark) + finally: + lockmod.release(tr, lock, wlock) @@ -2211,7 +2219,7 @@ marks,revs = _reachablefrombookmark(repo, revs, bookmark) if not revs: # no revisions to prune - delete bookmark immediately - _deletebookmark(ui, marks, bookmark) + _deletebookmark(repo, marks, bookmark) if not revs: raise util.Abort(_('nothing to prune')) @@ -2310,7 +2318,7 @@ # update bookmarks if bookmark: - _deletebookmark(ui, marks, bookmark) + _deletebookmark(repo, marks, bookmark) # create markers obsolete.createmarkers(repo, relations, metadata=metadata)