Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 03:26:12 +0200] rev 48162
dirstate-item: drop the `from_p2` property
It has no user anymore.
Differential Revision: https://phab.mercurial-scm.org/D11594
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 03:24:57 +0200] rev 48161
dirstate-item: directly use `p2_info` in `v1_size`
This is simpler.
Differential Revision: https://phab.mercurial-scm.org/D11593
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 04:04:38 +0200] rev 48160
dirstate-item: use the `p2_info` property to replace more verbose call
Differential Revision: https://phab.mercurial-scm.org/D11592
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Sep 2021 02:06:04 +0200] rev 48159
status: process `from_p2` file the same as `merged` one
What matters here is that the file constains information coming from the second
parent and should be considered `modified` on plain `hg status.
So we can process `from_p2` file sooner. It also highlight that we probably
don't need the merged/from_p2 distinction at higher level.
Differential Revision: https://phab.mercurial-scm.org/D11591
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 02:43:39 +0200] rev 48158
dirstate: drop an incorrect comment
We are actually checking that we are only in a case were the file might needs
lookup before doing this. So the comment is not relevant.
Differential Revision: https://phab.mercurial-scm.org/D11590
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 01:45:20 +0200] rev 48157
dirstate: drop some duplicated code
The same operation is done a handful a line lower.
Differential Revision: https://phab.mercurial-scm.org/D11589
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 30 Sep 2021 16:33:12 +0200] rev 48156
dirstate: align the dirstate's API to the lower level ones
This conclude the refactoring of this API. We can now finalize the dirstate v2
on disk format.
Differential Revision: https://phab.mercurial-scm.org/D11587
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 04:07:21 +0200] rev 48155
dirstate-item: introduce a `p1_tracked` property
It is useful to simplify various conditional that use `any_tracked and not
added`.
Differential Revision: https://phab.mercurial-scm.org/D11586
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 04:04:09 +0200] rev 48154
dirstate-item: introduce a `p2_info` property that combine two others
The `merged` and `from_p2` property are always used together so we can expose a
combined property instead.
Differential Revision: https://phab.mercurial-scm.org/D11585
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 02:01:12 +0200] rev 48153
dirstate: narrow gathering of parent data
The parent data are only going to be useful is the file might be clean. And it
might only be clean if it is tracked in both p1 and the working copy.
Differential Revision: https://phab.mercurial-scm.org/D11584
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 01:27:53 +0200] rev 48152
dirstate: align the dirstatemap's API to the data change
We are passing different data, so lets simplify the dirstatemap API too.
Differential Revision: https://phab.mercurial-scm.org/D11583
Simon Sapin <simon.sapin@octobus.net> [Fri, 01 Oct 2021 18:49:33 +0200] rev 48151
dirstate-v2: Store a bitfield on disk instead of v1-like state
Differential Revision: https://phab.mercurial-scm.org/D11558
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 20:35:30 +0200] rev 48150
dirstate-item: change the internal storage and constructor value
This should be closer to what we do need and what we can actually reliably
record.
In practice it means that we abandon the prospect of storing much more refined
data for now. We don't have the necessary information nor code using it right
now. So it seems safer to just use a clearer version of what we had so far.
See the documentation changes for details.
Differential Revision: https://phab.mercurial-scm.org/D11557
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Oct 2021 11:39:57 +0200] rev 48149
dirstatemap: drop legacy method on the dirstatemap wrapper
They are no longer in use now that the Rust wrapper version of the Dirstatemap
are back in line with the Python one.
Differential Revision: https://phab.mercurial-scm.org/D11582
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Oct 2021 00:15:24 +0200] rev 48148
dirstatemap: align the Rust wrapper implementation of `setparent`
We move to using `drop_merge_data` as intended.
Differential Revision: https://phab.mercurial-scm.org/D11581
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Oct 2021 00:44:17 +0200] rev 48147
dirstatemap: fix copymap.pop in Rust to return the value it pops
I guess this was overlooked in the initial implementation?
Without this, the next patch would, loose copy information in setparent.
Differential Revision: https://phab.mercurial-scm.org/D11580
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Oct 2021 00:14:32 +0200] rev 48146
dirstate-item: implement `drop_merge_data` on the Rust DirstateItem
It was currently missing and we want to be able to use in it the Rust case too.
Differential Revision: https://phab.mercurial-scm.org/D11579
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Oct 2021 00:02:55 +0200] rev 48145
dirstatemap: use a common implement for reset_state
Same logic as for `set_untracked` this make sure both implementation are aligned.
The `reset_state` implementation for the Rust wrapped had signicantly diverged,
this change finally put it back in line.
Differential Revision: https://phab.mercurial-scm.org/D11578
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 02 Oct 2021 00:01:56 +0200] rev 48144
dirstatemap: add a common `_drop_entry` method for dirstatemap
This method is called to remove DirstateItem from the map.
Each variant have a different implementation (which is … the point).
Differential Revision: https://phab.mercurial-scm.org/D11577
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 23:49:40 +0200] rev 48143
dirstatemap: use common code for set_clean
Same logic before this make sure both implementation use the same logic for this.
Differential Revision: https://phab.mercurial-scm.org/D11576
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 23:42:24 +0200] rev 48142
dirstatemap: use common code for set_possibly_dirty
Same logic before this make sure both implementation use the same logic for this.
Differential Revision: https://phab.mercurial-scm.org/D11575
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 23:24:01 +0200] rev 48141
dirstatemap: use a common implement for set_tracked
Same logic as for `set_untracked` this make sure both implementation use the
same logic for this.
Differential Revision: https://phab.mercurial-scm.org/D11574
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 23:13:44 +0200] rev 48140
dirstatemap: add a common `_insert_entry` method for dirstatemap
This method is called to add a new DirstateItem to the map.
Each variant have a different implementation (which is … the point).
Differential Revision: https://phab.mercurial-scm.org/D11573
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Oct 2021 19:14:09 +0200] rev 48139
dirstatemap: use a common implementation for `dirstatemap.set_untracked`
We can now make sure they use the same code, and drop the older, out of sync,
implementation of `set_untracked` for the rust wrapper.
Differential Revision: https://phab.mercurial-scm.org/D11572