hgext/commitextras.py
branchstable
changeset 33602 27fbca750b4d
parent 33562 3cfabb6cfd51
child 33606 806351695c6a
equal deleted inserted replaced
33601:850d2ec2cf6a 33602:27fbca750b4d
     6 # GNU General Public License version 2 or any later version.
     6 # GNU General Public License version 2 or any later version.
     7 
     7 
     8 '''adds a new flag extras to commit (ADVANCED)'''
     8 '''adds a new flag extras to commit (ADVANCED)'''
     9 
     9 
    10 from __future__ import absolute_import
    10 from __future__ import absolute_import
       
    11 
       
    12 import re
    11 
    13 
    12 from mercurial.i18n import _
    14 from mercurial.i18n import _
    13 from mercurial import (
    15 from mercurial import (
    14     commands,
    16     commands,
    15     error,
    17     error,
    50                     if '=' not in raw:
    52                     if '=' not in raw:
    51                         msg = _("unable to parse '%s', should follow "
    53                         msg = _("unable to parse '%s', should follow "
    52                                 "KEY=VALUE format")
    54                                 "KEY=VALUE format")
    53                         raise error.Abort(msg % raw)
    55                         raise error.Abort(msg % raw)
    54                     k, v = raw.split('=', 1)
    56                     k, v = raw.split('=', 1)
       
    57                     if re.search('[^\w-]', k):
       
    58                         msg = _("keys can only contain ascii letters, digits,"
       
    59                                 " '_' and '-'")
       
    60                         raise error.Abort(msg)
    55                     if k in usedinternally:
    61                     if k in usedinternally:
    56                         msg = _("key '%s' is used internally, can't be set "
    62                         msg = _("key '%s' is used internally, can't be set "
    57                                 "manually")
    63                                 "manually")
    58                         raise error.Abort(msg % k)
    64                         raise error.Abort(msg % k)
    59                     inneropts['extra'][k] = v
    65                     inneropts['extra'][k] = v