--- a/hgext/commitextras.py Wed Jul 12 00:23:45 2017 +0530
+++ b/hgext/commitextras.py Wed Jul 12 16:10:10 2017 +0530
@@ -12,6 +12,7 @@
from mercurial.i18n import _
from mercurial import (
commands,
+ error,
extensions,
registrar,
)
@@ -20,6 +21,19 @@
command = registrar.command(cmdtable)
testedwith = 'ships-with-hg-core'
+usedinternally = {
+ 'amend_source',
+ 'branch',
+ 'close',
+ 'histedit_source',
+ 'topic',
+ 'rebase_source',
+ 'intermediate-source',
+ '__touch-noise__',
+ 'source',
+ 'transplant_source',
+}
+
def extsetup(ui):
entry = extensions.wrapcommand(commands.table, 'commit', _commit)
options = entry[1]
@@ -33,7 +47,15 @@
extras = opts.get('extra')
if extras:
for raw in extras:
+ if '=' not in raw:
+ msg = _("unable to parse '%s', should follow "
+ "KEY=VALUE format")
+ raise error.Abort(msg % raw)
k, v = raw.split('=', 1)
+ if k in usedinternally:
+ msg = _("key '%s' is used internally, can't be set "
+ "manually")
+ raise error.Abort(msg % k)
inneropts['extra'][k] = v
return origcommit(*innerpats, **inneropts)