Simon Sapin <simon.sapin@octobus.net> [Fri, 17 Dec 2021 14:15:08 +0100] rev 48501
dirstate-v2: Apply SECOND_AMBIGUOUS to directory mtimes too
This would only be relevant in contrived scenarios such as a dirstate file
being written with a libc that supports sub-second precision in mtimes,
then transfered (at the filesystem level, not `hg clone`) to another
system where libc *doesn’t* have sub-second precision and truncates the stored
mtime of a directory to integer seconds.
Differential Revision: https://phab.mercurial-scm.org/D11939
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Dec 2021 15:28:41 +0100] rev 48500
rank: actually persist revision's rank in changelog-v2
The changelog v2 format is now persisting whatever "rank" value is recorded.
However keep in mind that for we do not record any value.
Differential Revision: https://phab.mercurial-scm.org/D11937
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Dec 2021 23:56:38 +0100] rev 48499
rank: add a "rank" value to the revlog-entry tuple
The rank of a revision is the size of sub-graph it defines as a head. In other
words, the rank of X is the size of `ancestors(X)` (X included).
This is a property that can help various algorithm and we intend to store it in
changelog-v2. We start with adding this new information to the "entry tuple",
with a default value. We will start to compute and persist the rank later.
Differential Revision: https://phab.mercurial-scm.org/D11936
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Dec 2021 14:50:07 +0100] rev 48498
changelog-v2: fix an assertion error to display the right data
We were checking on thing and displaying the other.
Differential Revision: https://phab.mercurial-scm.org/D11935
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Dec 2021 19:24:24 +0100] rev 48497
changelog-v2: use helper constant in the code to pack/unpack entries
This makes the code simpler to read and modify. This is probably less
efficient, but we are talking about the Python implementation here, so
performance is concerne secondary to readability.
Differential Revision: https://phab.mercurial-scm.org/D11934
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Dec 2021 15:28:30 +0100] rev 48496
revlog: add some information about the revision we cannot find
Parameter to Exception are good, use them.
Differential Revision: https://phab.mercurial-scm.org/D11933
Simon Sapin <simon.sapin@octobus.net> [Thu, 16 Dec 2021 17:34:51 +0100] rev 48495
rhg: Use binary search in manifest lookup
… instead of linear scan, when looking for a single entry based on its path.
Manifest entries are sorted by path, but are variable-size so we can’t use
the standard library’s `[T]::binary_search`. We can still jump to a byte
index and then look around for entry boundaries.
Differential Revision: https://phab.mercurial-scm.org/D11932
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 29 Nov 2021 12:27:33 +0000] rev 48494
sparse: lock the store when updating requirements config
Differential Revision: https://phab.mercurial-scm.org/D11817
Arseniy Alekseyev <aalekseyev@janestreet.com> [Tue, 16 Nov 2021 17:35:57 +0000] rev 48493
sparse: demonstrate a bug when used with safe-share
sparse: lock the store when updating requirements config
Differential Revision: https://phab.mercurial-scm.org/D11766
Simon Sapin <simon.sapin@octobus.net> [Fri, 17 Dec 2021 11:46:30 +0100] rev 48492
rust: Upgrade to format-bytes 0.3
This removes use of the proc-macro-hack crate, which is possible now that
we don’t support Rust 1.41 to 1.44 anymore.
This in turn fixes spurious errors reported by rust-analyser:
https://github.com/rust-analyzer/rust-analyzer/issues/9606#issuecomment-
919240134
Differential Revision: https://phab.mercurial-scm.org/D11938
Matt Harbison <matt_harbison@yahoo.com> [Tue, 14 Dec 2021 20:13:10 -0500] rev 48491
pytype: stop excluding ssutil.py
Pytype simply can't distinguish the type for this one entry's value from the
other values:
File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 142, in _hostsettings:
No attribute 'append' on None [attribute-error]
In Optional[Union[Any, List[nothing], bool, bytes]]
File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 142, in _hostsettings:
No attribute 'append' on bool [attribute-error]
In Optional[Union[Any, List[nothing], bool, bytes]]
File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 142, in _hostsettings:
No attribute 'append' on bytes [attribute-error]
In Optional[Union[Any, List[nothing], bool, bytes]]
File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 147, in _hostsettings:
No attribute 'append' on None [attribute-error]
In Optional[Union[Any, List[Tuple[Any, Any]], bool, bytes]]
File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 147, in _hostsettings:
No attribute 'append' on bool [attribute-error]
In Optional[Union[Any, List[Tuple[Any, Any]], bool, bytes]]
File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 147, in _hostsettings:
No attribute 'append' on bytes [attribute-error]
In Optional[Union[Any, List[Tuple[Any, Any]], bool, bytes]]
Differential Revision: https://phab.mercurial-scm.org/D11931
Matt Harbison <matt_harbison@yahoo.com> [Tue, 14 Dec 2021 19:13:30 -0500] rev 48490
pytype: stop excluding wireprotoserver.py
The `config` entry is a 2 part tuple, which has `__iter__()`:
File "/mnt/c/Users/Matt/hg/mercurial/wireprotoserver.py", line 253, in _availableapis:
No attribute '__iter__' on Callable[[Any, Any], Any] [attribute-error]
In Union[Callable[[Any, Any, Any, Any, Any], None], Callable[[Any, Any], Any]]
File "/mnt/c/Users/Matt/hg/mercurial/wireprotoserver.py", line 253, in _availableapis:
No attribute '__iter__' on Callable[[Any, Any, Any, Any, Any], None] [attribute-error]
In Union[Callable[[Any, Any, Any, Any, Any], None], Callable[[Any, Any], Any]]
Differential Revision: https://phab.mercurial-scm.org/D11930