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
Aay Jay Chan <aayjaychan@itopia.com.hk> [Fri, 22 May 2020 22:20:37 +0800] rev 44862
help: fix description of revlog version 2
Differential Revision: https://phab.mercurial-scm.org/D8576
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Tue, 26 May 2020 08:15:09 -0400] rev 44861
files: speed up `hg files` when no flags change display
It's not the first time I see slowness from this command slow down
tools built on top of hg.
The majority of the time is spent merely printing the result before
this change, which is clearly not how it should be (especially since
the computation of the result also looks slow).
Running `hg files` in mozilla-central:
parent revision: 1,260s
this commit: 0,683s
this commit without batching ui.write: 0,931s
this commit replacing the body of the loop with `pass`: 0,566s
This looks like a prime candidate for a rust fast path, but until
then, it seems reasonable to optimize the python.
Differential Revision: https://phab.mercurial-scm.org/D8586
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 25 May 2020 22:47:12 -0400] rev 44860
sshpeer: make client print (likely) server errors on stderr (BC)
so `hg clone -q` or `hg pull -q` don't print `abort: no suitable
response from remote hg!` with no indication of what went wrong.
There are other errors still silenced by -q (like failing to push due
to a server hook), but the current change covers a good fraction of
the problem (all errors setting up the ssh connection, no such remote
repository, no access to the repository).
Differential Revision: https://phab.mercurial-scm.org/D8584
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 25 May 2020 20:02:15 -0400] rev 44859
sshpeer: add test showing that -q silences remote errors
Differential Revision: https://phab.mercurial-scm.org/D8583