# HG changeset patch # User Matt Mackall # Date 1173917584 18000 # Node ID 3be4785f8994c52bc648552db4acd9f94d15d88a # Parent 6c0be67c2b27be354b3a1aefa156811865f2ada8 tags: add --remove diff -r 6c0be67c2b27 -r 3be4785f8994 mercurial/commands.py --- a/mercurial/commands.py Wed Mar 14 18:49:10 2007 -0500 +++ b/mercurial/commands.py Wed Mar 14 19:13:04 2007 -0500 @@ -2439,14 +2439,20 @@ "please use 'hg tag [-r REV] NAME' instead\n")) if opts['rev']: raise util.Abort(_("use only one form to specify the revision")) + if opts['rev'] and opts['remove']: + raise util.Abort(_("--rev and --remove are incompatible")) if opts['rev']: rev_ = opts['rev'] + message = opts['message'] + if opts['remove']: + rev_ = nullid + if not message: + message = _('Removed tag %s') % name if not rev_ and repo.dirstate.parents()[1] != nullid: raise util.Abort(_('uncommitted merge - please provide a ' 'specific revision')) r = repo.changectx(rev_).node() - message = opts['message'] if not message: message = _('Added tag %s for changeset %s') % (name, short(r)) @@ -2935,7 +2941,8 @@ ('m', 'message', '', _('message for tag commit log entry')), ('d', 'date', '', _('record datecode as commit date')), ('u', 'user', '', _('record user as commiter')), - ('r', 'rev', '', _('revision to tag'))], + ('r', 'rev', '', _('revision to tag')), + ('', 'remove', None, _('remove a tag'))], _('hg tag [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME')), "tags": (tags, [], _('hg tags')), "tip": diff -r 6c0be67c2b27 -r 3be4785f8994 mercurial/localrepo.py --- a/mercurial/localrepo.py Wed Mar 14 18:49:10 2007 -0500 +++ b/mercurial/localrepo.py Wed Mar 14 19:13:04 2007 -0500 @@ -328,7 +328,8 @@ self.tagscache = {} for k,nh in globaltags.items(): n = nh[0] - self.tagscache[k] = n + if n != nullid: + self.tagscache[k] = n self.tagscache['tip'] = self.changelog.tip() return self.tagscache diff -r 6c0be67c2b27 -r 3be4785f8994 tests/test-tags --- a/tests/test-tags Wed Mar 14 18:49:10 2007 -0500 +++ b/tests/test-tags Wed Mar 14 19:13:04 2007 -0500 @@ -79,3 +79,7 @@ echo >> foo hg ci -m 'change foo 2' -d '1000000 0' # rev 4 hg tags + +hg tag --remove -d '1000000 0' bar +hg tip +hg tags diff -r 6c0be67c2b27 -r 3be4785f8994 tests/test-tags.out --- a/tests/test-tags.out Wed Mar 14 18:49:10 2007 -0500 +++ b/tests/test-tags.out Wed Mar 14 19:13:04 2007 -0500 @@ -42,3 +42,10 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved tip 4:36195b728445 bar 1:b204a97e6e8d +changeset: 5:57e1983b4a60 +tag: tip +user: test +date: Mon Jan 12 13:46:40 1970 +0000 +summary: Removed tag bar + +tip 5:57e1983b4a60