tags: require -f to replace an existing tag

based on a patch from Johan Herland <johherla@online.no>
This commit is contained in:
Matt Mackall 2007-03-23 00:12:28 -05:00
parent 6d86b7e7d9
commit 84a6ecd211
3 changed files with 19 additions and 9 deletions

View File

@ -2463,6 +2463,9 @@ def tag(ui, repo, name, rev_=None, **opts):
rev_ = nullid
if not message:
message = _('Removed tag %s') % name
elif name in repo.tags() and not opts['force']:
raise util.Abort(_('a tag named %s already exists (use -f to force)')
% name)
if not rev_ and repo.dirstate.parents()[1] != nullid:
raise util.Abort(_('uncommitted merge - please provide a '
'specific revision'))
@ -2955,7 +2958,8 @@ table = {
_('hg status [OPTION]... [FILE]...')),
"tag":
(tag,
[('l', 'local', None, _('make the tag local')),
[('f', 'force', None, _('replace existing tag')),
('l', 'local', None, _('make the tag local')),
('m', 'message', '', _('message for tag commit log entry')),
('d', 'date', '', _('record datecode as commit date')),
('u', 'user', '', _('record user as commiter')),

View File

@ -74,7 +74,7 @@ hg tag -d '1000000 0' bar # rev 1
echo >> foo
hg ci -m 'change foo 1' -d '1000000 0' # rev 2
hg up -C 1
hg tag -r 1 -d '1000000 0' bar # rev 3
hg tag -r 1 -d '1000000 0' -f bar # rev 3
hg up -C 1
echo >> foo
hg ci -m 'change foo 2' -d '1000000 0' # rev 4
@ -91,14 +91,17 @@ hg init t3
cd t3
echo foo > foo
hg add foo
hg ci -m 'add foo' -d '1000000 0' # rev 0
hg tag -d '1000000 0' bar # rev 1 bar -> 0
hg tag -d '1000000 0' bar # rev 2 bar -> 1
hg tag -d '1000000 0' -r 0 bar # rev 3 bar -> 0
hg tag -d '1000000 0' -r 1 bar # rev 3 bar -> 1
hg tag -d '1000000 0' -r 0 bar # rev 4 bar -> 0
hg ci -m 'add foo' -d '1000000 0' # rev 0
hg tag -d '1000000 0' -f bar # rev 1 bar -> 0
hg tag -d '1000000 0' -f bar # rev 2 bar -> 1
hg tag -d '1000000 0' -fr 0 bar # rev 3 bar -> 0
hg tag -d '1000000 0' -fr 1 bar # rev 3 bar -> 1
hg tag -d '1000000 0' -fr 0 bar # rev 4 bar -> 0
hg tags
hg co 3
echo barbar > foo
hg ci -m 'change foo' -d '1000000 0' # rev 0
hg ci -m 'change foo' -d '1000000 0' # rev 0
hg tags
hg tag -d '1000000 0' -r 3 bar # should complain
hg tags

View File

@ -54,3 +54,6 @@ bar 0:b409d9da318e
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
tip 6:b5ff9d142648
bar 0:b409d9da318e
abort: a tag named bar already exists (use -f to force)
tip 6:b5ff9d142648
bar 0:b409d9da318e