##// END OF EJS Templates
dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options...
dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options If this feature is enabled, early options are parsed using the global options table. As the parser stops processing options when non/unknown option is encountered, it won't mistakenly take an option value as a new early option. Still "--" can be injected to terminate the parsing (e.g. "hg -R -- log"), I think it's unlikely to lead to an RCE. To minimize a risk of this change, new fancyopts.earlygetopt() path is enabled only when +strictflags is set. Also the strict parser doesn't support '--repo', a short for '--repository' yet. This limitation will be removed later. As this feature is backward incompatible, I decided to add a new opt-in mechanism to HGPLAIN. I'm not pretty sure if this is the right choice, but I'm thinking of adding +feature/-feature syntax to HGPLAIN. Alternatively, we could add a new environment variable. Any bikeshedding is welcome. Note that HGPLAIN=+strictflags doesn't work correctly in chg session since command arguments are pre-processed in C. This wouldn't be easily fixed.
Yuya Nishihara -
r35180:c9740b69 stable
Show More
Name Size Modified Last Commit Author
/ hgext
convert
fsmonitor
highlight
largefiles
zeroconf
__init__.py Loading ...
acl.py Loading ...
amend.py Loading ...
automv.py Loading ...
blackbox.py Loading ...
bugzilla.py Loading ...
censor.py Loading ...
children.py Loading ...
churn.py Loading ...
clonebundles.py Loading ...
commitextras.py Loading ...
eol.py Loading ...
extdiff.py Loading ...
factotum.py Loading ...
fetch.py Loading ...
gpg.py Loading ...
graphlog.py Loading ...
hgk.py Loading ...
histedit.py Loading ...
journal.py Loading ...
keyword.py Loading ...
logtoprocess.py Loading ...
mq.py Loading ...
notify.py Loading ...
pager.py Loading ...
patchbomb.py Loading ...
purge.py Loading ...
rebase.py Loading ...
record.py Loading ...
releasenotes.py Loading ...
relink.py Loading ...
schemes.py Loading ...
share.py Loading ...
shelve.py Loading ...
show.py Loading ...
sparse.py Loading ...
strip.py Loading ...
transplant.py Loading ...
uncommit.py Loading ...
win32mbcs.py Loading ...
win32text.py Loading ...