Mon, 28 Jun 2021 15:52:10 +0200 dirstate: Removed unused instances of `DirsMultiset`
Simon Sapin <simon.sapin@octobus.net> [Mon, 28 Jun 2021 15:52:10 +0200] rev 47477
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
Mon, 28 Jun 2021 15:41:50 +0200 dirstate-v2: Use 32-bit integers instead of 64-bit for offsets
Simon Sapin <simon.sapin@octobus.net> [Mon, 28 Jun 2021 15:41:50 +0200] rev 47476
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
Thu, 24 Jun 2021 21:54:14 +0200 status: Extend read_dir caching to directories with ignored files
Simon Sapin <simon.sapin@octobus.net> [Thu, 24 Jun 2021 21:54:14 +0200] rev 47475
status: Extend read_dir caching to directories with ignored files See code comments Differential Revision: https://phab.mercurial-scm.org/D10909
Fri, 04 Jun 2021 15:26:38 +0200 dirstate-v2: Drop cached read_dir results after .hgignore changes
Simon Sapin <simon.sapin@octobus.net> [Fri, 04 Jun 2021 15:26:38 +0200] rev 47474
dirstate-v2: Drop cached read_dir results after .hgignore changes Soon we’ll want the status algorithm to be able to skip `std::fs::read_dir` in more cases, notabling when listing unknown files but not ignored files. When ignore patterns change (which we detect by their hash, added to the dirstate-v2 format in a previous changeset), a formerly-ignored file could become unknown without changing its parent directory’s modification time. Therefore we remove any directory mtime from the dirstate, effictively invalidating the existing caches. Differential Revision: https://phab.mercurial-scm.org/D10907
Tue, 22 Jun 2021 22:52:08 +0200 censor: split the core of the logic into its own function
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jun 2021 22:52:08 +0200] rev 47473
censor: split the core of the logic into its own function We now have a "generic" rewrite function (only able to do censoring for now) and a thin wrapper that implement the `censor` API with it. We are now ready to start incorporating strip specific changes. Differential Revision: https://phab.mercurial-scm.org/D10904
Tue, 22 Jun 2021 23:20:32 +0200 censor: migrate the logic to a set of `censor_revs`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jun 2021 23:20:32 +0200] rev 47472
censor: migrate the logic to a set of `censor_revs` Instead of considering a special unique censored revision within the code, we consider a set of revision (currently always of size 1). This make the main code less censor-centric and prepare for the usage of a similar approach for stripping changesets. Differential Revision: https://phab.mercurial-scm.org/D10903
Tue, 22 Jun 2021 22:35:37 +0200 censor: rename `rl` to `revlog` in the main function
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jun 2021 22:35:37 +0200] rev 47471
censor: rename `rl` to `revlog` in the main function Now that the bulk of the code moved to smaller function we are less restricted on line length and we can use more explicite naming. Differential Revision: https://phab.mercurial-scm.org/D10902
Tue, 22 Jun 2021 22:28:51 +0200 censor: extract the part about creating and opening new files in a function
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jun 2021 22:28:51 +0200] rev 47470
censor: extract the part about creating and opening new files in a function The v2_censor function is huge, now that its content has settled a bit it is a good time to split individual part inside dedicated function. The last part is the file copying and opening logic. It now have its own function. Differential Revision: https://phab.mercurial-scm.org/D10901
Tue, 22 Jun 2021 22:10:22 +0200 censor: extract the part about recomputing delta in a function
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jun 2021 22:10:22 +0200] rev 47469
censor: extract the part about recomputing delta in a function The v2_censor function is huge, now that its content has settled a bit it is a good time to split individual part inside dedicated function. It is now the turn of the logic that recompute new delta to replace the one based on the revision that are going away. Differential Revision: https://phab.mercurial-scm.org/D10900
Tue, 22 Jun 2021 21:49:31 +0200 censor: extract the part about writing the other revision in a function
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jun 2021 21:49:31 +0200] rev 47468
censor: extract the part about writing the other revision in a function The v2_censor function is huge, now that its content has settled a bit it is a good time to split individual part inside dedicated function. We continue with a small function that add a non-censored revision back to the revlog. Differential Revision: https://phab.mercurial-scm.org/D10899
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 tip