[PATCH 2 of 2 V3] commitextras: check the format of the arguments and no internal key is used
Yuya Nishihara
yuya at tcha.org
Mon Jul 17 10:56:40 EDT 2017
On Sat, 15 Jul 2017 01:31:24 +0530, Pulkit Goyal wrote:
> # HG changeset patch
> # User Pulkit Goyal <7895pulkit at gmail.com>
> # Date 1499856010 -19800
> # Wed Jul 12 16:10:10 2017 +0530
> # Node ID 2cbccf36af1bd0d9ae9df1ad5fd4a7f8d870ae6c
> # Parent e51d188da49636884ae6c0df94f501e84436b857
> # EXP-Topic fbext
> commitextras: check the format of the arguments and no internal key is used
> +usedinternally = set(['amend_source', 'branch', 'histedit_source', 'topic',
> + 'rebase_source', 'intermediate-source', '__touch-noise__',
> + 'source', 'transplant_source'])
Updated to a set literal. I found one more internal key, 'close', so added it
in flight.
> def extsetup(ui):
> entry = extensions.wrapcommand(commands.table, 'commit', _commit)
> options = entry[1]
> @@ -33,7 +38,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)
Perhaps it's better to restrict k to non-empty ASCII word.
More information about the Mercurial-devel
mailing list