##// 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:

r23172:e955549c default
r32050:77eaf953 4.1.3 stable
Show More
test-diff-upgrade.t
290 lines | 6.1 KiB | text/troff | Tads3Lexer
/ tests / test-diff-upgrade.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require execbit
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 $ cat <<EOF >> $HGRCPATH
> [extensions]
> autodiff = $TESTDIR/autodiff.py
> [diff]
> nodates = 1
> EOF
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149
$ hg init repo
$ cd repo
Patrick Mezard
Merge with stable
r12577
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 make a combination of new, changed and deleted file
$ echo regular > regular
$ echo rmregular > rmregular
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c "file('bintoregular', 'wb').write('\0')"
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 $ touch rmempty
$ echo exec > exec
$ chmod +x exec
$ echo rmexec > rmexec
$ chmod +x rmexec
$ echo setexec > setexec
$ echo unsetexec > unsetexec
$ chmod +x unsetexec
$ echo binary > binary
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c "file('rmbinary', 'wb').write('\0')"
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 $ hg ci -Am addfiles
adding binary
Patrick Mezard
Merge with stable
r12577 adding bintoregular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 adding exec
adding regular
adding rmbinary
adding rmempty
adding rmexec
adding rmregular
adding setexec
adding unsetexec
$ echo regular >> regular
$ echo newregular >> newregular
$ rm rmempty
$ touch newempty
$ rm rmregular
$ echo exec >> exec
$ echo newexec > newexec
Patrick Mezard
Merge with stable
r12577 $ echo bintoregular > bintoregular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 $ chmod +x newexec
$ rm rmexec
$ chmod +x setexec
$ chmod -x unsetexec
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c "file('binary', 'wb').write('\0\0')"
$ $PYTHON -c "file('newbinary', 'wb').write('\0')"
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 $ rm rmbinary
$ hg addremove -s 0
adding newbinary
adding newempty
adding newexec
adding newregular
removing rmbinary
removing rmempty
removing rmexec
removing rmregular
git=no: regular diff for all files
$ hg autodiff --git=no
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d binary
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 Binary file binary has changed
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d bintoregular
Binary file bintoregular has changed
diff -r a66d19b9302d exec
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/exec
+++ b/exec
@@ -1,1 +1,2 @@
exec
+exec
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d newbinary
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 Binary file newbinary has changed
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d newexec
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- /dev/null
+++ b/newexec
@@ -0,0 +1,1 @@
+newexec
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d newregular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- /dev/null
+++ b/newregular
@@ -0,0 +1,1 @@
+newregular
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d regular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/regular
+++ b/regular
@@ -1,1 +1,2 @@
regular
+regular
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d rmbinary
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 Binary file rmbinary has changed
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d rmexec
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/rmexec
+++ /dev/null
@@ -1,1 +0,0 @@
-rmexec
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d rmregular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/rmregular
+++ /dev/null
@@ -1,1 +0,0 @@
-rmregular
git=yes: git diff for single regular file
$ hg autodiff --git=yes regular
diff --git a/regular b/regular
--- a/regular
+++ b/regular
@@ -1,1 +1,2 @@
regular
+regular
Patrick Mezard
Merge with stable
r12577 git=auto: regular diff for regular files and non-binary removals
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149
Patrick Mezard
Merge with stable
r12577 $ hg autodiff --git=auto regular newregular rmregular rmexec
diff -r a66d19b9302d newregular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- /dev/null
+++ b/newregular
@@ -0,0 +1,1 @@
+newregular
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d regular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/regular
+++ b/regular
@@ -1,1 +1,2 @@
regular
+regular
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d rmexec
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/rmexec
+++ /dev/null
@@ -1,1 +0,0 @@
-rmexec
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d rmregular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/rmregular
+++ /dev/null
@@ -1,1 +0,0 @@
-rmregular
Patrick Mezard
Merge with stable
r12577 $ for f in exec newexec setexec unsetexec binary newbinary newempty rmempty rmbinary bintoregular; do
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 > echo
> echo '% git=auto: git diff for' $f
> hg autodiff --git=auto $f
> done
% git=auto: git diff for exec
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d exec
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/exec
+++ b/exec
@@ -1,1 +1,2 @@
exec
+exec
% git=auto: git diff for newexec
diff --git a/newexec b/newexec
new file mode 100755
--- /dev/null
+++ b/newexec
@@ -0,0 +1,1 @@
+newexec
% git=auto: git diff for setexec
diff --git a/setexec b/setexec
old mode 100644
new mode 100755
% git=auto: git diff for unsetexec
diff --git a/unsetexec b/unsetexec
old mode 100755
new mode 100644
% git=auto: git diff for binary
diff --git a/binary b/binary
index a9128c283485202893f5af379dd9beccb6e79486..09f370e38f498a462e1ca0faa724559b6630c04f
GIT binary patch
literal 2
Jc${Nk0000200961
% git=auto: git diff for newbinary
diff --git a/newbinary b/newbinary
new file mode 100644
Johan Bjork
patch: Fix nullid for binary git diffs (issue4054)...
r19875 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f76dd238ade08917e6712764a16a22005a50573d
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 GIT binary patch
literal 1
Ic${MZ000310RR91
% git=auto: git diff for newempty
diff --git a/newempty b/newempty
new file mode 100644
% git=auto: git diff for rmempty
diff --git a/rmempty b/rmempty
deleted file mode 100644
Patrick Mezard
Merge with stable
r12577
% git=auto: git diff for rmbinary
diff --git a/rmbinary b/rmbinary
deleted file mode 100644
Johan Bjork
patch: Fix nullid for binary git diffs (issue4054)...
r19875 index f76dd238ade08917e6712764a16a22005a50573d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
Johan Bjork
diff: fix binary file removals in git mode....
r18824 GIT binary patch
literal 0
Hc$@<O00001
Patrick Mezard
Merge with stable
r12577
% git=auto: git diff for bintoregular
diff --git a/bintoregular b/bintoregular
index f76dd238ade08917e6712764a16a22005a50573d..9c42f2b6427d8bf034b7bc23986152dc01bfd3ab
GIT binary patch
literal 13
Uc$`bh%qz(+N=+}#Ni5<5043uE82|tP
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149
Johan Bjork
diff: fix binary file removals in git mode....
r18824
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 git=warn: regular diff with data loss warnings
$ hg autodiff --git=warn
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d binary
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 Binary file binary has changed
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d bintoregular
Binary file bintoregular has changed
diff -r a66d19b9302d exec
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/exec
+++ b/exec
@@ -1,1 +1,2 @@
exec
+exec
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d newbinary
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 Binary file newbinary has changed
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d newexec
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- /dev/null
+++ b/newexec
@@ -0,0 +1,1 @@
+newexec
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d newregular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- /dev/null
+++ b/newregular
@@ -0,0 +1,1 @@
+newregular
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d regular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/regular
+++ b/regular
@@ -1,1 +1,2 @@
regular
+regular
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d rmbinary
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 Binary file rmbinary has changed
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d rmexec
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/rmexec
+++ /dev/null
@@ -1,1 +0,0 @@
-rmexec
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d rmregular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/rmregular
+++ /dev/null
@@ -1,1 +0,0 @@
-rmregular
data lost for: binary
Patrick Mezard
Merge with stable
r12577 data lost for: bintoregular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 data lost for: newbinary
data lost for: newempty
data lost for: newexec
Patrick Mezard
Merge with stable
r12577 data lost for: rmbinary
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 data lost for: rmempty
data lost for: setexec
data lost for: unsetexec
git=abort: fail on execute bit change
$ hg autodiff --git=abort regular setexec
abort: losing data for setexec
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149
git=abort: succeed on regular file
$ hg autodiff --git=abort regular
Patrick Mezard
Merge with stable
r12577 diff -r a66d19b9302d regular
Adrian Buehlmann
tests: unify test-diff-upgrade
r12149 --- a/regular
+++ b/regular
@@ -1,1 +1,2 @@
regular
+regular
$ cd ..