Raphaël Gomès <rgomes@octobus.net> [Mon, 28 Mar 2022 23:34:30 +0200] rev 49169
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 49168
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 49167
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 49166
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 49165
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 49164
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 49163
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 49162
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 49161
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 49160
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 49159
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 49158
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 49157
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 49156
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 49155
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 49154
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 49153
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 49152
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 49151
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 49150
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 49149
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 49148
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 49147
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 49146
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 49145
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 49144
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 49143
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 49142
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