diff mercurial/commands.py @ 4213:3be4785f8994

tags: add --remove
author Matt Mackall <mpm@selenic.com>
date Wed, 14 Mar 2007 19:13:04 -0500
parents 7e1c8a565a4f
children 5ccbc0be6cdb 281f9f8f1bd4
line wrap: on
line diff
--- 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":