Raphaël Gomès <rgomes@octobus.net> [Mon, 28 Mar 2022 23:34:30 +0200] rev 49114
rust-dirstatemap: remove `__settitem__`
This is not used anywhere now.
Differential Revision: https://phab.mercurial-scm.org/D12512
Raphaël Gomès <rgomes@octobus.net> [Mon, 28 Mar 2022 18:30:08 +0200] rev 49113
rust-dirstatemap: remove unused `_refresh_entry` implementation
This was only used in the newer APIs, all of which have been rewritten in Rust
Differential Revision: https://phab.mercurial-scm.org/D12511
Raphaël Gomès <rgomes@octobus.net> [Wed, 23 Mar 2022 17:19:32 +0100] rev 49112
rust-distatemap: remove `addfile` API
All of its users have been migrated to the new API
Differential Revision: https://phab.mercurial-scm.org/D12510
Raphaël Gomès <rgomes@octobus.net> [Wed, 23 Mar 2022 17:16:10 +0100] rev 49111
rust-dirstatemap: remove `removefile` API
Its callers have been migrated to the newer dirstate API.
Differential Revision: https://phab.mercurial-scm.org/D12509
Raphaël Gomès <rgomes@octobus.net> [Mon, 28 Mar 2022 18:26:24 +0200] rev 49110
rhg: use the new `set_clean` API
Differential Revision: https://phab.mercurial-scm.org/D12508
Raphaël Gomès <rgomes@octobus.net> [Mon, 28 Mar 2022 18:15:11 +0200] rev 49109
dirstatemap: move `set_untracked` out of the common methods
There is a dedicated Rust implementation now
Differential Revision: https://phab.mercurial-scm.org/D12507
Raphaël Gomès <rgomes@octobus.net> [Mon, 28 Mar 2022 18:13:58 +0200] rev 49108
rust-dirstatemap: add `set_untracked` method
This is the new API that Python has already migrated to
Differential Revision: https://phab.mercurial-scm.org/D12506
Raphaël Gomès <rgomes@octobus.net> [Mon, 28 Mar 2022 18:10:19 +0200] rev 49107
dirstatemap: move `set_possibly_dirty` out of the common methods
There exists now a dedicated Rust implementation
Differential Revision: https://phab.mercurial-scm.org/D12505
Raphaël Gomès <rgomes@octobus.net> [Mon, 28 Mar 2022 18:09:01 +0200] rev 49106
rust-dirstatemap: add `set_possibly_dirty` method
This is the new API that Python has already migrated to.
Differential Revision: https://phab.mercurial-scm.org/D12504
Raphaël Gomès <rgomes@octobus.net> [Mon, 28 Mar 2022 18:02:45 +0200] rev 49105
dirstatemap: move `set_clean` out of common methods
This now has a dedicated Rust implementation
Differential Revision: https://phab.mercurial-scm.org/D12503
Raphaël Gomès <rgomes@octobus.net> [Mon, 28 Mar 2022 18:02:50 +0200] rev 49104
rust-dirstatemap: add `set_clean` method
This is the new dirstate API that has already been moved to in Python.
Differential Revision: https://phab.mercurial-scm.org/D12502
Raphaël Gomès <rgomes@octobus.net> [Wed, 23 Mar 2022 17:13:18 +0100] rev 49103
dirstatemap: remove `_insert_entry`
This was needed as a compatibility layer for the Python and Rust
implementations, but it is not called from anywhere in Rust anymore.
The two remaining calls have been inlined.
Differential Revision: https://phab.mercurial-scm.org/D12501
Raphaël Gomès <rgomes@octobus.net> [Wed, 23 Mar 2022 17:25:42 +0100] rev 49102
dirstatemap: move `reset_state` out of common methods
Now that we have a Rust implementation, we defer to that accordingly.
Differential Revision: https://phab.mercurial-scm.org/D12500
Raphaël Gomès <rgomes@octobus.net> [Wed, 23 Mar 2022 17:27:58 +0100] rev 49101
rust-dirstatemap: add Rust implementation of `reset_state`
This is the new API which has already been defined in Python
Differential Revision: https://phab.mercurial-scm.org/D12499
Raphaël Gomès <rgomes@octobus.net> [Wed, 23 Mar 2022 17:38:59 +0100] rev 49100
rust-dirstate: introduce intermediate struct for dirstate-v2 data
This is passed often as a long tuple that is not easy to know the form of, so
we refactor everything in this struct.
This also renames `wdir_tracked` to follow the Python `wc_tracked`, even though
the on-disk format uses `WDIR_TRACKED`.
I think a single naming scheme is better, but we can't easily break the Python
impl now because of extensions, so this is low-effort enough and facilitates
grepping.
Differential Revision: https://phab.mercurial-scm.org/D12498
Raphaël Gomès <rgomes@octobus.net> [Wed, 23 Mar 2022 16:32:31 +0100] rev 49099
dirstatemap: remove unused parameter from `reset_state`
This has no callers using it and is not used inside the method itself.
Differential Revision: https://phab.mercurial-scm.org/D12497
Raphaël Gomès <rgomes@octobus.net> [Wed, 23 Mar 2022 15:19:43 +0100] rev 49098
dirstatemap: move `set_tracked` out of common methods and plug in Rust
We now have a Rust-specific implementation of this method, it is no longer
shared between both implementations.
Differential Revision: https://phab.mercurial-scm.org/D12496
Raphaël Gomès <rgomes@octobus.net> [Wed, 23 Mar 2022 15:18:12 +0100] rev 49097
rust-dirstatemap: add `set_tracked` method
This is the new dirstate API that has already been moved to in Python.
It will be used in place of the old `addfile`/`removefile` one.
Differential Revision: https://phab.mercurial-scm.org/D12495
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Apr 2022 23:15:25 -0700] rev 49096
changelog: avoid copying changeset data into `ChangesetRevisionData`
Differential Revision: https://phab.mercurial-scm.org/D12548
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Apr 2022 21:34:18 -0700] rev 49095
rust-nodemap: remove unnecessary explicit lifetime
Differential Revision: https://phab.mercurial-scm.org/D12486
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Apr 2022 21:56:57 -0700] rev 49094
rust-revlog: add tests for p1/p2 getters, as promised in D12442
Differential Revision: https://phab.mercurial-scm.org/D12565
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Apr 2022 18:20:41 -0700] rev 49093
rust-revlog: make `IndexEntryBuilder` build a whole entry
The `IndexEntryBuilder` we have in tests only built part of a revlog
entry before this patch. It's more useful if it can build a full
entry. As part of fixing that, I also added a (non-test)
`IndexEntry::link_revision()`.
Differential Revision: https://phab.mercurial-scm.org/D12564
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Apr 2022 17:06:10 -0700] rev 49092
rust-revlog: change default version from 2 to 1 in test builder
Version 1 is the only version we support, so it seems like the natural
choice for making it easy to create valid revlogs.
Differential Revision: https://phab.mercurial-scm.org/D12563
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Apr 2022 09:39:27 -0700] rev 49091
rust-repo: extract a function for checking nodemap requirement
Differential Revision: https://phab.mercurial-scm.org/D12562
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Apr 2022 09:37:13 -0700] rev 49090
rust-revlog: make `Changelog` and `ManifestLog` unaware of `Repo`
As with other recent patches, this makes the types easier to test and
reuse.
Differential Revision: https://phab.mercurial-scm.org/D12561
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Apr 2022 21:25:56 -0700] rev 49089
rust-revlog: make unaware of `Repo`
Differential Revision: https://phab.mercurial-scm.org/D12547
Martin von Zweigbergk <martinvonz@google.com> [Thu, 14 Apr 2022 09:09:45 -0700] rev 49088
rust-filelog: don't use persistent nodemap (to match Python)
Differential Revision: https://phab.mercurial-scm.org/D12558
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Apr 2022 11:40:37 -0700] rev 49087
rust-revlog: move check for nodemap requirement to caller
It's good for both making `Revlog` testable and reusable to have it
not depend on the higher-level `Repo` type. This patch is one step in
towards that. Additionally, this change in particular gives the
callers more control over when to use a nodemap.
Differential Revision: https://phab.mercurial-scm.org/D12546
Martin von Zweigbergk <martinvonz@google.com> [Thu, 31 Mar 2022 22:54:33 -0700] rev 49086
rust-nodemap-docket: make unaware of `Repo`
Differential Revision: https://phab.mercurial-scm.org/D12545
Martin von Zweigbergk <martinvonz@google.com> [Thu, 31 Mar 2022 22:59:19 -0700] rev 49085
rust-nodemap-docket: move check of nodemap requirement to caller
I think it's cleaner if `NodeMapDocket` doesn't know about the `Repo`
type. That makes it more easily reusable and testable. This patch
moves out one of the uses of `Repo` out of it.
Differential Revision: https://phab.mercurial-scm.org/D12544