[PATCH] bookmarks: ability to create/rename/move bookmark and not make it active
Alexander Solovyov
alexander at solovyov.net
Sat Dec 11 11:10:21 CST 2010
# HG changeset patch
# User Alexander Solovyov <alexander at solovyov.net>
# Date 1292087335 -3600
# Node ID d3eb61baf6977bea0e6125f6c301c61367552042
# Parent 4a13ca2c21cefc6409072d9f3bd55a1e8d75b6e1
bookmarks: ability to create/rename/move bookmark and not make it active
diff --git a/hgext/bookmarks.py b/hgext/bookmarks.py
--- a/hgext/bookmarks.py
+++ b/hgext/bookmarks.py
@@ -97,7 +97,8 @@ def setcurrent(repo, mark):
wlock.release()
repo._bookmarkcurrent = mark
-def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False, rename=None):
+def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False,
+ rename=None, noswitch=False):
'''track a line of development with movable markers
Bookmarks are pointers to certain commits that move when
@@ -127,7 +128,7 @@ def bookmark(ui, repo, mark=None, rev=No
raise util.Abort(_("new bookmark name required"))
marks[mark] = marks[rename]
del marks[rename]
- if repo._bookmarkcurrent == rename:
+ if repo._bookmarkcurrent == rename and not noswitch:
setcurrent(repo, mark)
write(repo)
return
@@ -137,7 +138,7 @@ def bookmark(ui, repo, mark=None, rev=No
raise util.Abort(_("bookmark name required"))
if mark not in marks:
raise util.Abort(_("a bookmark of this name does not exist"))
- if mark == repo._bookmarkcurrent:
+ if mark == repo._bookmarkcurrent and not noswitch:
setcurrent(repo, None)
del marks[mark]
write(repo)
@@ -160,7 +161,8 @@ def bookmark(ui, repo, mark=None, rev=No
marks[mark] = repo.lookup(rev)
else:
marks[mark] = repo.changectx('.').node()
- setcurrent(repo, mark)
+ if not noswitch:
+ setcurrent(repo, mark)
write(repo)
return
@@ -568,7 +570,8 @@ cmdtable = {
[('f', 'force', False, _('force')),
('r', 'rev', '', _('revision'), _('REV')),
('d', 'delete', False, _('delete a given bookmark')),
- ('m', 'rename', '', _('rename a given bookmark'), _('NAME'))],
+ ('m', 'rename', '', _('rename a given bookmark'), _('NAME')),
+ ('', 'noswitch', False, _("don't switch to given bookmark"))],
_('hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]')),
}
More information about the Mercurial-devel
mailing list