##// END OF EJS Templates
sslutil: require TLS 1.1+ when supported...
sslutil: require TLS 1.1+ when supported Currently, Mercurial will use TLS 1.0 or newer when connecting to remote servers, selecting the highest TLS version supported by both peers. On older Pythons, only TLS 1.0 is available. On newer Pythons, TLS 1.1 and 1.2 should be available. Security professionals recommend avoiding TLS 1.0 if possible. PCI DSS 3.1 "strongly encourages" the use of TLS 1.2. Known attacks like BEAST and POODLE exist against TLS 1.0 (although mitigations are available and properly configured servers aren't vulnerable). I asked Eric Rescorla - Mozilla's resident crypto expert - whether Mercurial should drop support for TLS 1.0. His response was "if you can get away with it." Essentially, a number of servers on the Internet don't support TLS 1.1+. This is why web browsers continue to support TLS 1.0 despite desires from security experts. This patch changes Mercurial's default behavior on modern Python versions to require TLS 1.1+, thus avoiding known security issues with TLS 1.0 and making Mercurial more secure by default. Rather than drop TLS 1.0 support wholesale, we still allow TLS 1.0 to be used if configured. This is a compromise solution - ideally we'd disallow TLS 1.0. However, since we're not sure how many Mercurial servers don't support TLS 1.1+ and we're not sure how much user inconvenience this change will bring, I think it is prudent to ship an escape hatch that still allows usage of TLS 1.0. In the default case our users get better security. In the worst case, they are no worse off than before this patch. This patch has no effect when running on Python versions that don't support TLS 1.1+. As the added test shows, connecting to a server that doesn't support TLS 1.1+ will display a warning message with a link to our wiki, where we can guide people to configure their client to allow less secure connections.

File last commit:

r22896:7e9cbb9c default
r29560:303e9300 default
Show More
test-filebranch.t
144 lines | 4.0 KiB | text/troff | Tads3Lexer
/ tests / test-filebranch.t
Adrian Buehlmann
tests: unify test-filebranch
r12192 This test makes sure that we don't mark a file as merged with its ancestor
when we do a merge.
$ cat <<EOF > merge
> import sys, os
> print "merging for", os.path.basename(sys.argv[1])
> EOF
$ HGMERGE="python ../merge"; export HGMERGE
Creating base:
$ hg init a
$ cd a
$ echo 1 > foo
$ echo 1 > bar
$ echo 1 > baz
$ echo 1 > quux
$ hg add foo bar baz quux
$ hg commit -m "base"
$ cd ..
$ hg clone a b
updating to branch default
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
Creating branch a:
$ cd a
$ echo 2a > foo
$ echo 2a > bar
$ hg commit -m "branch a"
Creating branch b:
$ cd ..
$ cd b
$ echo 2b > foo
$ echo 2b > baz
$ hg commit -m "branch b"
We shouldn't have anything but n state here:
$ hg debugstate --nodates | grep -v "^n"
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Adrian Buehlmann
tests: unify test-filebranch
r12192
Merging:
$ hg pull ../a
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 2 changes to 2 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
$ hg merge -v
resolving manifests
getting bar
merging foo
Mads Kiilerich
util: flush stdout before calling external processes...
r13439 merging for foo
Adrian Buehlmann
tests: unify test-filebranch
r12192 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ echo 2m > foo
$ echo 2b > baz
$ echo new > quux
$ hg ci -m "merge"
main: we should have a merge here:
Sune Foldager
debugindex etc.: add --changelog and --manifest options...
r14323 $ hg debugindex --changelog
Bryan O'Sullivan
tests: reduce spurious failures when run with generaldelta...
r17132 rev offset length ..... linkrev nodeid p1 p2 (re)
0 0 73 ..... 0 cdca01651b96 000000000000 000000000000 (re)
1 73 68 ..... 1 f6718a9cb7f3 cdca01651b96 000000000000 (re)
2 141 68 ..... 2 bdd988058d16 cdca01651b96 000000000000 (re)
3 209 66 ..... 3 d8a521142a3c f6718a9cb7f3 bdd988058d16 (re)
Adrian Buehlmann
tests: unify test-filebranch
r12192
log should show foo and quux changed:
$ hg log -v -r tip
changeset: 3:d8a521142a3c
tag: tip
parent: 1:f6718a9cb7f3
parent: 2:bdd988058d16
user: test
date: Thu Jan 01 00:00:00 1970 +0000
files: foo quux
description:
merge
foo: we should have a merge here:
Sune Foldager
tests: fix deprecated use of hg debugdata/debugindex...
r14182 $ hg debugindex foo
Bryan O'Sullivan
tests: reduce spurious failures when run with generaldelta...
r17132 rev offset length ..... linkrev nodeid p1 p2 (re)
0 0 3 ..... 0 b8e02f643373 000000000000 000000000000 (re)
1 3 4 ..... 1 2ffeddde1b65 b8e02f643373 000000000000 (re)
2 7 4 ..... 2 33d1fb69067a b8e02f643373 000000000000 (re)
3 11 4 ..... 3 aa27919ee430 2ffeddde1b65 33d1fb69067a (re)
Adrian Buehlmann
tests: unify test-filebranch
r12192
bar: we should not have a merge here:
Sune Foldager
tests: fix deprecated use of hg debugdata/debugindex...
r14182 $ hg debugindex bar
Bryan O'Sullivan
tests: reduce spurious failures when run with generaldelta...
r17132 rev offset length ..... linkrev nodeid p1 p2 (re)
0 0 3 ..... 0 b8e02f643373 000000000000 000000000000 (re)
1 3 4 ..... 2 33d1fb69067a b8e02f643373 000000000000 (re)
Adrian Buehlmann
tests: unify test-filebranch
r12192
baz: we should not have a merge here:
Sune Foldager
tests: fix deprecated use of hg debugdata/debugindex...
r14182 $ hg debugindex baz
Bryan O'Sullivan
tests: reduce spurious failures when run with generaldelta...
r17132 rev offset length ..... linkrev nodeid p1 p2 (re)
0 0 3 ..... 0 b8e02f643373 000000000000 000000000000 (re)
1 3 4 ..... 1 2ffeddde1b65 b8e02f643373 000000000000 (re)
Adrian Buehlmann
tests: unify test-filebranch
r12192
quux: we should not have a merge here:
Sune Foldager
tests: fix deprecated use of hg debugdata/debugindex...
r14182 $ hg debugindex quux
Bryan O'Sullivan
tests: reduce spurious failures when run with generaldelta...
r17132 rev offset length ..... linkrev nodeid p1 p2 (re)
0 0 3 ..... 0 b8e02f643373 000000000000 000000000000 (re)
1 3 5 ..... 3 6128c0f33108 b8e02f643373 000000000000 (re)
Adrian Buehlmann
tests: unify test-filebranch
r12192
Manifest entries should match tips of all files:
$ hg manifest --debug
33d1fb69067a0139622a3fa3b7ba1cdb1367972e 644 bar
2ffeddde1b65b4827f6746174a145474129fa2ce 644 baz
aa27919ee4303cfd575e1fb932dd64d75aa08be4 644 foo
6128c0f33108e8cfbb4e0824d13ae48b466d7280 644 quux
Everything should be clean now:
$ hg status
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
4 files, 4 changesets, 10 total revisions
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..