Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 09 Mar 2022 16:44:48 +0100] rev 48955
debugdiscovery: fix a typo in the help
Differential Revision: https://phab.mercurial-scm.org/D12372
Raphaël Gomès <rgomes@octobus.net> [Wed, 09 Mar 2022 11:28:51 +0100] rev 48954
rust-hg-cypython: upgrade dependencies
This upgrades all dependencies to their latest version. This is routinely done
to keep-up.
Differential Revision: https://phab.mercurial-scm.org/D12359
Raphaël Gomès <rgomes@octobus.net> [Wed, 09 Mar 2022 11:22:22 +0100] rev 48953
rust-hg-core: upgrade dependencies
This upgrades all dependencies to their latest version, except `clap` and `zstd`
whose latest versions do not support our minimum supported Rust version 1.48.0.
Same as for `rhg`, it contains security fix for `regex` which does not affect
us too much, but doesn't hurt, and the rest of the upgrades are there simply
to keep up.
Differential Revision: https://phab.mercurial-scm.org/D12358
Raphaël Gomès <rgomes@octobus.net> [Wed, 09 Mar 2022 11:17:09 +0100] rev 48952
rhg: upgrade dependencies
This upgrades all dependencies to their latest version, except `clap`, which
is upgraded to the last 2.x series version, since 3.x does not support our
minimum supported Rust version of 1.48.0.
This contains a security fix for `regex` which does not affect us too much, but
doesn't hurt, and the rest of the upgrades are there simply to keep up.
Differential Revision: https://phab.mercurial-scm.org/D12357
Yuya Nishihara <yuya@tcha.org> [Fri, 04 Mar 2022 10:28:46 +0900] rev 48951
chgserver: remove Python 2 file descriptor logic
Follows up
0bb28b7736bc "chgserver: remove Python 2 support code."
On Python 2, we had to close newfp prior to restoring the original file
description since "delete newfp" would otherwise close the file descriptor
shared with the long-lived fp:
in attachio():
newfp = os.fdopen(fp.fileno(), mode, bufsize)
in _restoreio():
newfp.close() # temporarily close newfp.fileno() (= fp.fileno())
os.dup2(fd, fp.fileno()) # reopen fp.fileno() with original fd
On the other hand, we shouldn't call newfp.close() on Python 3 since
any function calls are proxied to the underlying file object by
procutil.LineBufferedWrapper.
Simon Sapin <simon.sapin@octobus.net> [Tue, 08 Feb 2022 15:51:52 +0100] rev 48950
dirstate-tree: optimize HashMap lookups with raw_entry_mut
This switches to using `HashMap` from the hashbrown crate,
in order to use its `raw_entry_mut` method.
The standard library’s `HashMap` is also based on this same crate,
but `raw_entry_mut` is not yet stable there:
https://github.com/rust-lang/rust/issues/56167
Using version 0.9 because 0.10 is yanked and 0.11 requires Rust 1.49
This replaces in `DirstateMap::get_or_insert_node` a call to
`HashMap<K, V>::entry` with `K = WithBasename<Cow<'on_disk, HgPath>>`.
`entry` takes and consumes an "owned" `key: K` parameter, in case a new entry
ends up inserted. This key is converted by `to_cow` from a value that borrows
the `'path` lifetime.
When this function is called by `Dirstate::new_v1`, `'path` is in fact
the same as `'on_disk` so `to_cow` can return an owned key that contains
`Cow::Borrowed`.
For other callers, `to_cow` needs to create a `Cow::Owned` and thus make
a costly heap memory allocation. This is wasteful if this key was already
present in the map. Even when inserting a new node this is typically the case
for its ancestor nodes (assuming most directories have numerous descendants).
Differential Revision: https://phab.mercurial-scm.org/D12317
Raphaël Gomès <rgomes@octobus.net> [Fri, 04 Mar 2022 13:33:55 +0100] rev 48949
heptapod-ci: remove useless mentions of Python 3
Now that we don't have Python 2 jobs, we can go with shorter names.
Differential Revision: https://phab.mercurial-scm.org/D12354
Martin von Zweigbergk <martinvonz@google.com> [Fri, 04 Mar 2022 13:01:13 -0800] rev 48948
revlog: remove unused `rank` variable from D12209
Differential Revision: https://phab.mercurial-scm.org/D12355
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 13:10:22 -0700] rev 48947
demandimport: delete demandimportpy2 module
We no longer support Python 2.
Differential Revision: https://phab.mercurial-scm.org/D12353
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 13:08:28 -0700] rev 48946
py3: use class X: instead of class X(object):
The inheritance from object is implied in Python 3. So this should
be equivalent.
This change was generated via an automated search and replace. So there
may have been some accidental changes.
Differential Revision: https://phab.mercurial-scm.org/D12352
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 13:03:43 -0700] rev 48945
check-code: remove ban on old-style classes
In Python 3, `class foo:` is equivalent to `class foo(object):`. So
we can allow the former form now.
Differential Revision: https://phab.mercurial-scm.org/D12351
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 12:46:27 -0700] rev 48944
tests: remove Python 2 support code
Differential Revision: https://phab.mercurial-scm.org/D12350
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 12:44:41 -0700] rev 48943
tests: remove Python < 3 check
We require Python 3 now.
Differential Revision: https://phab.mercurial-scm.org/D12349
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 01 Mar 2022 20:53:52 -0800] rev 48942
cborutil: remove Python 2 definition of _elementtointeger()
Differential Revision: https://phab.mercurial-scm.org/D12348
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 12:42:48 -0700] rev 48941
py3: stop using util.iterfile()
The Python 3 implementation is a no-op. So this is equivalent.
We still keep util.iterfile() around for backwards API compatibility to
help the Python 3 migration. It can be deleted in a future release.
Differential Revision: https://phab.mercurial-scm.org/D12347
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 03 Mar 2022 07:56:47 -0800] rev 48940
util: remove iterfile() variant for buggy EINTR handling
The workaround for Python 2 is no longer needed. So we can delete some
code.
Differential Revision: https://phab.mercurial-scm.org/D12346
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 12:36:57 -0700] rev 48939
statprof: remove superfluous sys.version_info check
Always true since we require Python 3 now.
Differential Revision: https://phab.mercurial-scm.org/D12345
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 12:36:04 -0700] rev 48938
policy: remove Python 2.7 compatibility code
Differential Revision: https://phab.mercurial-scm.org/D12344
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 12:35:29 -0700] rev 48937
lsprof: remove some Python 2.7 compatibility code
Differential Revision: https://phab.mercurial-scm.org/D12343
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 12:34:22 -0700] rev 48936
url: remove Python 2.7 support code
Differential Revision: https://phab.mercurial-scm.org/D12342
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 01 Mar 2022 20:52:32 -0800] rev 48935
py3: replace pycompat.itervalues(x) with x.values()
pycompat.itervalues(x) just calls x.values(). So this is equivalent.
The rewrite was perfomed via an automated search and replace.
Differential Revision: https://phab.mercurial-scm.org/D12341
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Feb 2022 11:24:57 -0700] rev 48934
py3: use str instead of pycompat.unicode
pycompat.unicode is an alias to str.
Differential Revision: https://phab.mercurial-scm.org/D12340
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 08 Mar 2022 10:58:22 +0100] rev 48933
ui: use input() directly
pycompat.rawinput() is an alias to input()
Differential Revision: https://phab.mercurial-scm.org/D12339
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 01 Mar 2022 20:50:34 -0800] rev 48932
py3: use int instead of pycompat.long
pycompat.long is aliased to int. So this should have no change in
functionality.
Differential Revision: https://phab.mercurial-scm.org/D12338