diff mercurial/bookmarks.py @ 33005:9343fce87789

bookmarks: factor out delete logic from commands We keep the lock in the caller so that future devs are aware of the locking implications.
author Sean Farley <sean@farley.io>
date Mon, 12 Jun 2017 23:02:48 -0700
parents 4f0a7f604449
children e0a8dd6c87c7
line wrap: on
line diff
--- a/mercurial/bookmarks.py	Fri Jun 23 15:30:27 2017 -0400
+++ b/mercurial/bookmarks.py	Mon Jun 12 23:02:48 2017 -0700
@@ -691,3 +691,17 @@
                             "whitespace"))
     scmutil.checknewlabel(repo, mark, 'bookmark')
     return mark
+
+def delete(repo, tr, names):
+    """remove a mark from the bookmark store
+
+    Raises an abort error if mark does not exist.
+    """
+    marks = repo._bookmarks
+    for mark in names:
+        if mark not in marks:
+            raise error.Abort(_("bookmark '%s' does not exist") % mark)
+        if mark == repo._activebookmark:
+            deactivate(repo)
+        del marks[mark]
+    marks.recordchange(tr)