Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jul 2021 19:15:30 +0200] rev 47489
dirstate: introduce a symbolic constant for the AMBIGUOUS_TIME marker
This is going to be clearer and easier to track than -1. Ultimately I would
like to get ride of this special value everywhere but in the lower level,
however we need to clarify the API first. This changeset is part of such
clarification.
Differential Revision: https://phab.mercurial-scm.org/D10928
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jul 2021 19:15:22 +0200] rev 47488
dirstate: introduce a symbolic constant for the NONNORMAL marker
This is going to be clearer and easier to track than -1. Ultimately I would
like to get ride of this special value everywhere but in the lower level,
however we need to clarify the API first. This changeset is part of such
clarification.
Differential Revision: https://phab.mercurial-scm.org/D10927
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jul 2021 19:04:11 +0200] rev 47487
dirstate: introduce a symbolic constant for the FROM_P2 marker
This is going to be clearer and easier to track than -2. Ultimately I would
like to get ride of this special value everywhere but in the lower level,
however we need to clarify the API first. This changeset is part of such
clarification.
Differential Revision: https://phab.mercurial-scm.org/D10926
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jul 2021 18:59:29 +0200] rev 47486
dirstate: split a not-so-one-liner
This is shorter and simpler to read.
Differential Revision: https://phab.mercurial-scm.org/D10925
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jul 2021 18:57:35 +0200] rev 47485
dirstate: split a not-so-one-liner
This is simpler to read.
Differential Revision: https://phab.mercurial-scm.org/D10924
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jul 2021 18:56:34 +0200] rev 47484
dirstate: split a not-so-one-liner
This is shorter and simpler to read.
Differential Revision: https://phab.mercurial-scm.org/D10923
Simon Sapin <simon.sapin@octobus.net> [Mon, 28 Jun 2021 16:50:19 +0200] rev 47483
dirstate-tree: Keep a counter of descendant nodes that have an entry
… and change the `DirstateMap::has_dir` method to be based on this counter
being non-zero instead of the mere presence of a node.
A node with zero descendent with an entry currently should be removed from
the tree, but soon we’ll make the dirstate track additional nodes.
(Specifically, for non-ignored directories in order to keep track of their
mtime and optimize status by doing fewer `read_dir` calls.)
Differential Revision: https://phab.mercurial-scm.org/D10922
Simon Sapin <simon.sapin@octobus.net> [Mon, 28 Jun 2021 15:52:10 +0200] rev 47482
dirstate: Removed unused instances of `DirsMultiset`
… in Rust-backed dirstatemap.
The Python class `dirstatemap` had cached properties `_dirs` and `_alldirs`
that were not used for `hastrackeddir` and `hasdir` since they were redundant
with corresponding fields for the Rust `DirstateMap` struct.
`dirfoldmap` is modified to reuse instead the directory iterator introduced
in 3b9914b28133c0918186b6e8b9e4f1916e21338d.
Differential Revision: https://phab.mercurial-scm.org/D10921
Simon Sapin <simon.sapin@octobus.net> [Mon, 28 Jun 2021 15:41:50 +0200] rev 47481
dirstate-v2: Use 32-bit integers instead of 64-bit for offsets
This saves 12 bytes per node. (Nodes representing files or directories.)
These are offsets to other parts of the file. This would only be a limitation
for a `.hg/dirstate` file larger than 4 GiB, which would only happen for a
repository with dozens of millions of files and directories.
Differential Revision: https://phab.mercurial-scm.org/D10920
Simon Sapin <simon.sapin@octobus.net> [Thu, 24 Jun 2021 21:54:14 +0200] rev 47480
status: Extend read_dir caching to directories with ignored files
See code comments
Differential Revision: https://phab.mercurial-scm.org/D10909