Manuel Jacob <me@manueljacob.de> [Sun, 31 May 2020 12:07:17 +0200] rev 44892
sslutil: check for OpenSSL without TLS 1.0 support in one case
It can only happen if supportedprotocols gets fixed to contain only correct
items (see the FIXME above in the file).
Manuel Jacob <me@manueljacob.de> [Sun, 31 May 2020 11:10:21 +0200] rev 44891
sslutil: don't set minimum TLS version to 1.0 if 1.2 but not 1.1 is available
This case isn't very likely, but possible, especially if supportedprotocols
gets fixed to contain only correct items (see the FIXME above in the file).
Manuel Jacob <me@manueljacob.de> [Sun, 31 May 2020 11:41:03 +0200] rev 44890
sslutil: add FIXME about supportedprotocols possibly containing too many items
Manuel Jacob <me@manueljacob.de> [Sun, 31 May 2020 10:47:38 +0200] rev 44889
sslutil: fix names of variables containing minimum protocol strings
When working in this module, I found it very confusing that "protocol" as a
variable name could mean either "minimum protocol string" or an exact version
(as a string or ssl.PROTOCOL_* value). This patch prefixes variables of the
former type with "minimum".
Manuel Jacob <me@manueljacob.de> [Sun, 31 May 2020 09:55:45 +0200] rev 44888
sslutil: stop returning argument as third return value of protocolsettings()
The third return value was always the same as the argument.
Manuel Jacob <me@manueljacob.de> [Sat, 30 May 2020 23:18:57 +0200] rev 44887
relnotes: note that we now require modern SSL/TLS features in Python
Manuel Jacob <me@manueljacob.de> [Sat, 30 May 2020 19:04:53 +0200] rev 44886
tests: stop checking for optional, now impossible output
In
7dd63a8cb1ee, the code that could output that line was removed.
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Sat, 30 May 2020 10:19:53 -0400] rev 44885
rust: remove one more occurrence of re2
Differential Revision: https://phab.mercurial-scm.org/D8601
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Tue, 26 May 2020 07:03:11 -0400] rev 44884
scmutil: clarify getuipathfn comment
Differential Revision: https://phab.mercurial-scm.org/D8600
Augie Fackler <augie@google.com> [Thu, 28 May 2020 09:51:13 -0400] rev 44883
githelp: add some minimal help for pickaxe functionality
Due to a conversation in work chat, I realized this is actually pretty
well-hidden in Mercurial.
Differential Revision: https://phab.mercurial-scm.org/D8590
Raphaël Gomès <rgomes@octobus.net> [Fri, 17 Apr 2020 10:41:05 +0200] rev 44882
rust: remove duplicate import
Differential Revision: https://phab.mercurial-scm.org/D8456
Manuel Jacob <me@manueljacob.de> [Sat, 30 May 2020 05:27:53 +0200] rev 44881
tests: remove "sslcontext" check
Now that we require the presence of ssl.SSLContext in setup.py, the check
would always return `True`.
Manuel Jacob <me@manueljacob.de> [Sat, 30 May 2020 03:23:58 +0200] rev 44880
sslutil: eliminate `_canloaddefaultcerts` by constant-folding code using it
Manuel Jacob <me@manueljacob.de> [Sat, 30 May 2020 05:08:02 +0200] rev 44879
tests: remove "defaultcacerts" check
`sslutil._canloaddefaultcerts` is always true (and will be removed).
Manuel Jacob <me@manueljacob.de> [Fri, 29 May 2020 21:30:04 +0200] rev 44878
sslutil: eliminate `modernssl` by constant-folding code using it
Manuel Jacob <me@manueljacob.de> [Sat, 30 May 2020 04:59:13 +0200] rev 44877
hgweb: avoid using `sslutil.modernssl`
`sslutil.modernssl` is going to be removed. Since the point of using this
attribute was to check the importability of the `sslutil`, a different
attribute can be used. `sslutil.wrapserversocket` is used because it’s anyway
used a few lines below.
Manuel Jacob <me@manueljacob.de> [Fri, 29 May 2020 22:31:26 +0200] rev 44876
sslutil: remove comments referring to removed SSLContext emulation class
Manuel Jacob <me@manueljacob.de> [Fri, 29 May 2020 21:18:22 +0200] rev 44875
sslutil: remove code checking for presence of ssl.SSLContext
Now that we require the presence of ssl.SSLContext in setup.py, we can remove
this code.
Manuel Jacob <me@manueljacob.de> [Fri, 29 May 2020 21:07:26 +0200] rev 44874
setup: require a Python version with modern SSL features
This increases the minimum security baseline of Mercurial and enables us to
remove compatibility code for supporting older, less secure Python versions.
Manuel Jacob <me@manueljacob.de> [Sat, 30 May 2020 03:46:59 +0200] rev 44873
sslutil: set `_canloaddefaultcerts` to `True` if `ssl.SSLContext` is present
The `load_default_certs()` method was already present when `ssl.SSLContext`
was backported to Python 2.7 (https://hg.python.org/cpython/rev/
221a1f9155e2).
Augie Fackler <augie@google.com> [Thu, 28 May 2020 16:16:13 -0400] rev 44872
filemerge: add __bytes__ for absentfilectx
This will at _least_ aid some upcoming debugging.
Differential Revision: https://phab.mercurial-scm.org/D8592
Augie Fackler <augie@google.com> [Thu, 28 May 2020 16:17:28 -0400] rev 44871
mergestate: move staticmethod _filectxorabsent to module level
I suspect this was a static method just because it made merge.py feel
less messy, but now we have a mergestate package so we can do better.
Differential Revision: https://phab.mercurial-scm.org/D8591
Raphaël Gomès <rgomes@octobus.net> [Fri, 29 May 2020 12:17:59 +0200] rev 44870
rust: remove support for `re2`
With the performance issues with `regex` figured out and fixed in previous
patches and `regex` newly gaining support for empty alternations, there is no
reason to keep `re2` around anymore. It's only *marginally* faster at creating
the regex which saves at most a couple of ms, but gets beaten by `regex` in
every other aspect.
This removes the Rust/C/C++ bridge (hooray!), the `with-re2` feature, the
conditional code that goes with it, the documentation and relevant part of the
debug/module output.
Differential Revision: https://phab.mercurial-scm.org/D8594
Raphaël Gomès <rgomes@octobus.net> [Fri, 29 May 2020 12:12:16 +0200] rev 44869
rust-dependencies: update `regex` to 1.3.9
Version `1.3.8` introduces support for empty alternations, which makes
previously disallowed patterns usable in `regex`.
From a user's perspective, this means that glob patterns like `*.py{,c}` will
no longer generate an "invalid" regex and will use the Rust path.
`1.3.9` is a bugfix release, might as well update to the latest one.
Differential Revision: https://phab.mercurial-scm.org/D8593
Manuel Jacob <me@manueljacob.de> [Fri, 29 May 2020 04:06:16 +0200] rev 44868
cleanup: remove compatibility code for Python < 2.7.4
The minimum supported Python version was recently raised to 2.7.4.
Manuel Jacob <me@manueljacob.de> [Fri, 29 May 2020 03:56:07 +0200] rev 44867
cleanup: eliminate procutil.quotecommand()
After some compatibility code was removed, the function was the identity
function on all platforms.
Manuel Jacob <me@manueljacob.de> [Fri, 29 May 2020 03:43:08 +0200] rev 44866
cleanup: remove compatibility code for Python < 2.7.1
The minimum supported Python version was recently raised to 2.7.4.
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 25 May 2020 17:39:23 -0400] rev 44865
grep: reduce the cost of pathauditor checks when grepping working copy
Running `time hg grep zxczxczxczxczxc -l` on mozilla-central:
before:
real 0m20,000s
user 0m15,796s
sys 0m4,189s
after:
real 0m10,903s
user 0m8,964s
sys 0m1,916s
if vfs didn't call pathauditor at all:
real 0m7,781s
user 0m5,968s
sys 0m1,790s
Differential Revision: https://phab.mercurial-scm.org/D8582
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 25 May 2020 17:32:25 -0400] rev 44864
grep: test that paths get audited
Differential Revision: https://phab.mercurial-scm.org/D8581
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 25 May 2020 17:29:38 -0400] rev 44863
grep: add test coverage of behavior on symlinks
Differential Revision: https://phab.mercurial-scm.org/D8580