##// END OF EJS Templates
dispatch: protect against malicious 'hg serve --stdio' invocations (sec)...
dispatch: protect against malicious 'hg serve --stdio' invocations (sec) Some shared-ssh installations assume that 'hg serve --stdio' is a safe command to run for minimally trusted users. Unfortunately, the messy implementation of argument parsing here meant that trying to access a repo named '--debugger' would give the user a pdb prompt, thereby sidestepping any hoped-for sandboxing. Serving repositories over HTTP(S) is unaffected. We're not currently hardening any subcommands other than 'serve'. If your service exposes other commands to users with arbitrary repository names, it is imperative that you defend against repository names of '--debugger' and anything starting with '--config'. The read-only mode of hg-ssh stopped working because it provided its hook configuration to "hg serve --stdio" via --config parameter. This is banned for security reasons now. This patch switches it to directly call ui.setconfig(). If your custom hosting infrastructure relies on passing --config to "hg serve --stdio", you'll need to find a different way to get that configuration into Mercurial, either by using ui.setconfig() as hg-ssh does in this patch, or by placing an hgrc file someplace where Mercurial will read it. mitrandir@fb.com provided some extra fixes for the dispatch code and for hg-ssh in places that I overlooked.

File last commit:

r26780:bbf544b5 default
r32050:77eaf953 4.1.3 stable
Show More
test-mq-qgoto.t
93 lines | 1.4 KiB | text/troff | Tads3Lexer
Adrian Buehlmann
tests: unify some of test-mq*
r12324 $ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg init a
$ cd a
$ echo a > a
$ hg ci -Ama
adding a
$ hg qnew a.patch
$ echo a >> a
$ hg qrefresh
$ hg qnew b.patch
$ echo b > b
$ hg add b
$ hg qrefresh
$ hg qnew c.patch
$ echo c > c
$ hg add c
$ hg qrefresh
$ hg qgoto a.patch
popping c.patch
popping b.patch
now at: a.patch
$ hg qgoto c.patch
applying b.patch
applying c.patch
now at: c.patch
$ hg qgoto b.patch
popping c.patch
now at: b.patch
Using index:
$ hg qgoto 0
popping b.patch
now at: a.patch
$ hg qgoto 2
applying b.patch
applying c.patch
now at: c.patch
Mads Kiilerich
mq: fix qpop of working directory parent patch when not at qtip...
r18342 No warnings when using index ... and update from non-qtip and with pending
changes in unrelated files:
Adrian Buehlmann
tests: unify some of test-mq*
r12324
$ hg qnew bug314159
$ echo d >> c
$ hg qrefresh
$ hg qnew bug141421
Mads Kiilerich
mq: fix qpop of working directory parent patch when not at qtip...
r18342 $ echo e >> b
Adrian Buehlmann
tests: unify some of test-mq*
r12324 $ hg qrefresh
Mads Kiilerich
mq: fix qpop of working directory parent patch when not at qtip...
r18342 $ hg up -r bug314159
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo f >> a
$ echo f >> b
$ echo f >> c
Adrian Buehlmann
tests: unify some of test-mq*
r12324 $ hg qgoto 1
timeless@mozdev.org
mq: consistently use qrefresh
r26780 abort: local changes found, qrefresh first
Mads Kiilerich
mq: fix qpop of working directory parent patch when not at qtip...
r18342 [255]
$ hg qgoto 1 -f
Adrian Buehlmann
tests: unify some of test-mq*
r12324 popping bug141421
popping bug314159
popping c.patch
now at: b.patch
Mads Kiilerich
mq: fix qpop of working directory parent patch when not at qtip...
r18342 $ hg st
M a
M b
? c.orig
$ hg up -qCr.
Adrian Buehlmann
tests: unify some of test-mq*
r12324
$ hg qgoto 3
applying c.patch
applying bug314159
now at: bug314159
Detect ambiguous non-index:
$ hg qgoto 14
patch name "14" is ambiguous:
bug314159
bug141421
abort: patch 14 not in series
[255]
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..