On Sat, 15 Jul 2017 01:31:24 +0530, Pulkit Goyal wrote: > # HG changeset patch > # User Pulkit Goyal <7895pul...@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. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel