mercurial/commands.py
changeset 50091 a8d71a6ba205
parent 50090 a3c856e2ea2f
child 50261 774ed116dd7c
equal deleted inserted replaced
50090:a3c856e2ea2f 50091:a8d71a6ba205
    11 import sys
    11 import sys
    12 
    12 
    13 from .i18n import _
    13 from .i18n import _
    14 from .node import (
    14 from .node import (
    15     hex,
    15     hex,
       
    16     nullid,
    16     nullrev,
    17     nullrev,
    17     short,
    18     short,
    18     wdirrev,
    19     wdirrev,
    19 )
    20 )
    20 from .pycompat import open
    21 from .pycompat import open
  7498                         b'(use -f to force)'
  7499                         b'(use -f to force)'
  7499                     )
  7500                     )
  7500                 )
  7501                 )
  7501         node = logcmdutil.revsingle(repo, rev_).node()
  7502         node = logcmdutil.revsingle(repo, rev_).node()
  7502 
  7503 
       
  7504         # don't allow tagging the null rev or the working directory
  7503         if node is None:
  7505         if node is None:
  7504             raise error.InputError(_(b"cannot tag working directory"))
  7506             raise error.InputError(_(b"cannot tag working directory"))
       
  7507         elif not opts.get(b'remove') and node == nullid:
       
  7508             raise error.InputError(_(b"cannot tag null revision"))
  7505 
  7509 
  7506         if not message:
  7510         if not message:
  7507             # we don't translate commit messages
  7511             # we don't translate commit messages
  7508             message = b'Added tag %s for changeset %s' % (
  7512             message = b'Added tag %s for changeset %s' % (
  7509                 b', '.join(names),
  7513                 b', '.join(names),
  7519         else:
  7523         else:
  7520             editform = b'tag.add'
  7524             editform = b'tag.add'
  7521         editor = cmdutil.getcommiteditor(
  7525         editor = cmdutil.getcommiteditor(
  7522             editform=editform, **pycompat.strkwargs(opts)
  7526             editform=editform, **pycompat.strkwargs(opts)
  7523         )
  7527         )
  7524 
       
  7525         # don't allow tagging the null rev
       
  7526         if (
       
  7527             not opts.get(b'remove')
       
  7528             and logcmdutil.revsingle(repo, rev_).rev() == nullrev
       
  7529         ):
       
  7530             raise error.InputError(_(b"cannot tag null revision"))
       
  7531 
  7528 
  7532         tagsmod.tag(
  7529         tagsmod.tag(
  7533             repo,
  7530             repo,
  7534             names,
  7531             names,
  7535             node,
  7532             node,