Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Aug 2021 17:09:49 +0200] rev 47962
dirstate-item: implement `from_p2` in a simpler way
We can simply use the underlying attribute.
Differential Revision: https://phab.mercurial-scm.org/D11368
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Aug 2021 17:09:06 +0200] rev 47961
dirstate-item: implement `merged` in a simpler way
We can simply use the underlying attribute.
Differential Revision: https://phab.mercurial-scm.org/D11367
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Aug 2021 17:07:56 +0200] rev 47960
dirstate-item: implement `added` in a simpler way
We can simply use the underlying attribute.
Differential Revision: https://phab.mercurial-scm.org/D11366
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Aug 2021 17:07:12 +0200] rev 47959
dirstate-item: implement `tracked` in a simpler way
We can simply use the underlying attribute.
Differential Revision: https://phab.mercurial-scm.org/D11365
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Aug 2021 15:10:21 +0200] rev 47958
dirstate-item: keep the full information in memory (for pure form)
This changeset is finally reaching the area where we have been headed this whole
time. Since all implementation details are contained inside de DirstateItem
logic, we can change the way it is implemented.
So we store the information that are passed to the object and use them to
dynamically compute the "legacy" value.
For now we only do this for the Pure implementation, as this is a good
demonstration for the logic is fully insulated.
The next step will be the update the C code too, to implement the various method
with the new attribute (instead of the legacy one) and then start seriously
thinking about the parameters we feed into DirstateItem.
Differential Revision: https://phab.mercurial-scm.org/D11364
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Aug 2021 16:50:14 +0200] rev 47957
dirstate-item: have all the logic go through the v1_ accessors
We are about to change the internal attribute. Having all the logic using the
old "legacy" accessors will help to have a smooth transition.
Differential Revision: https://phab.mercurial-scm.org/D11363
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Aug 2021 16:39:00 +0200] rev 47956
dirstate-item: drop the deprecated __getitem__ variante
This is deprecated since 5.9.
Differential Revision: https://phab.mercurial-scm.org/D11362
Raphaël Gomès <rgomes@octobus.net> [Mon, 30 Aug 2021 12:25:57 +0200] rev 47955
branching: merge stable into default
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Fri, 27 Aug 2021 09:09:10 -0400] rev 47954
tests: normalize the way some debug output it matched
Differential Revision: https://phab.mercurial-scm.org/D11361
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 02 Aug 2021 23:46:26 -0400] rev 47953
tests: drop hgrc bits that have become the default
Differential Revision: https://phab.mercurial-scm.org/D11247
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 02 Aug 2021 23:43:40 -0400] rev 47952
tests: manual cleanup now that dummyssh usage is implied
Differential Revision: https://phab.mercurial-scm.org/D11246
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 02 Aug 2021 21:25:01 -0400] rev 47951
tests: rely on dummyssh being the default
This commit is exactly the result of running this command:
sed -i -e 's! *\(-e \|--ssh \|--config ui.ssh=\)[ \"]*$PYTHON[ \"]*$\(RUN\|\)TESTDIR/dummyssh[\"]* *! !g' -e '/^[ >]*ssh *=[ "]*$PYTHON[ "]*$\(RUN\|\)TESTDIR\/dummyssh[ "]*$/d' -e 's/^\( [$] .*[^ ]\) *$/\1/' *.t *.sh
Sometimes the tests can be simplified further, but I think it's
preferable to do the simplification separately.
Differential Revision: https://phab.mercurial-scm.org/D11245
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 02 Aug 2021 21:10:42 -0400] rev 47950
tests: setup dummyssh as the default ssh
To significantly reduce boilerplate in tests. One test is updated to
show that it works, I expect to do the rest in follow up commits.
Differential Revision: https://phab.mercurial-scm.org/D11244
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Aug 2021 21:25:35 +0200] rev 47949
dirstate: drop the `_otherparent` method
It only has one caller with a lot of the logic already implemented. So lets
inline it and cleans things up further.
Differential Revision: https://phab.mercurial-scm.org/D11353
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Aug 2021 21:18:28 +0200] rev 47948
dirstate: drop the `_normal` method
It only has one caller so lets inline it and cleans things up further.
Differential Revision: https://phab.mercurial-scm.org/D11352
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Aug 2021 21:16:48 +0200] rev 47947
dirstate: drop the `_merge` method
It only has one caller that only use one of the branch, so lets inline that
branch and clean things up further.
Differential Revision: https://phab.mercurial-scm.org/D11351
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Aug 2021 21:12:39 +0200] rev 47946
dirstate: drop the deprecated `drop` method
eh ;-)
Differential Revision: https://phab.mercurial-scm.org/D11350
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Aug 2021 21:11:57 +0200] rev 47945
dirstate: drop the deprecated `merge` method
The method was deprecated in 5.9.
Differential Revision: https://phab.mercurial-scm.org/D11349
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Aug 2021 21:11:42 +0200] rev 47944
dirstate: drop the deprecated `remove` method
The method was deprecated in 5.9.
Differential Revision: https://phab.mercurial-scm.org/D11348
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Aug 2021 21:09:20 +0200] rev 47943
dirstate: drop the deprecated `add` method
The method was deprecated in 5.9.
Differential Revision: https://phab.mercurial-scm.org/D11347
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Aug 2021 21:09:01 +0200] rev 47942
dirstate: drop the deprecated `otherparent` method
The method was deprecated in 5.9.
Differential Revision: https://phab.mercurial-scm.org/D11346
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Aug 2021 21:08:37 +0200] rev 47941
dirstate: drop the deprecated `normallookup` method
The method was deprecated in 5.9.
Differential Revision: https://phab.mercurial-scm.org/D11345
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Aug 2021 21:08:09 +0200] rev 47940
dirstate: drop the deprecated `normal` method
The method was deprecated in 5.9.
Differential Revision: https://phab.mercurial-scm.org/D11344
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Aug 2021 22:07:50 +0200] rev 47939
dirstate: also wrap the new method in `dirstatenonnormalcheck`
The goal of this is to make sure we set the data right, so we need to make sure
it run after the new method, that we actually call, in addition to the old one,
that we no longer call.
Differential Revision: https://phab.mercurial-scm.org/D11343
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Aug 2021 16:12:33 +0200] rev 47938
dirstatemap: also discard item from sets
This seems more consistent to do that. I don't think any test was actually
barking about it, but the code feels a bit more robust now.
Differential Revision: https://phab.mercurial-scm.org/D11332
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 18:25:01 +0200] rev 47937
dirstatemap: drop unused internal constant definition
All that logic now moved within the DirstateItem itself, so we can finally drop
this implementation details from the "higher" level.
Differential Revision: https://phab.mercurial-scm.org/D11331
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 18:12:27 +0200] rev 47936
dirstate-item: add dedicated "legacy" constructor for `addfile` case
This way the internal details of how a DirstateItem is encoded is encapsulated
within the DirstateItem. This will finally give use some latitude to change the
data we store in a DirstateItem.
The addfile logic will likely be rewritten eventually and these dedicated
constructor can be removed at that time.
In the mean-time this should help with hiding internal details of DirstateItem
and to migrate it to new internal storage and logic.
Differential Revision: https://phab.mercurial-scm.org/D11330
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 17:32:40 +0200] rev 47935
dirstatemap: use the default code to handle "merged" case
This simplify the conditionnal a bit since most of it is handled by the common
code.
Differential Revision: https://phab.mercurial-scm.org/D11329
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 17:29:16 +0200] rev 47934
dirstatemap: use the default code to handle "added" case
This one is very easy too.
Differential Revision: https://phab.mercurial-scm.org/D11328
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 17:23:40 +0200] rev 47933
dirstatemap: use the default code to handle "removed" case
This one is very easy.
Differential Revision: https://phab.mercurial-scm.org/D11327
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 17:20:17 +0200] rev 47932
dirstatemap: use the default code to handle "clean-p2" case
This simplify the conditionnal a bit since most of it is handled by the common
code.
Differential Revision: https://phab.mercurial-scm.org/D11326
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 17:14:56 +0200] rev 47931
dirstatemap: use the default code to handle "p2-tracked" case
We juste have to do minor value adjustement and the default code will do the rest.
This kind of change highglight that "clean_p2" is probably not the right name,
for that value. However this is all thing to be figured out and cleaned up once
are done moving logic at lower level.
Differential Revision: https://phab.mercurial-scm.org/D11325
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 17:10:52 +0200] rev 47930
dirstatemap: use the default code to handle "possibly_dirty" case
This case is quite simple too
Differential Revision: https://phab.mercurial-scm.org/D11324
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 17:08:41 +0200] rev 47929
dirstatemap: use the default code to handle normal entry
This case is quite simple.
Differential Revision: https://phab.mercurial-scm.org/D11323
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 17:03:39 +0200] rev 47928
dirstatemap: conclude `reset_state` with logic using the new __init__
Now the DirstateItem can deal with most of the logic related to its
initialization, our goal is to migrate the function to a more "unified" way were
minimal processing is done early before more generic code gets into play.
Nobody is calling this code yet, but this is about to change.
Differential Revision: https://phab.mercurial-scm.org/D11322
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 16:29:16 +0200] rev 47927
dirstatemap: temporarily return early in `reset_state`
We are about to migrate `addfile` to the new `DirstateItem__init__` and having
these early return will the new series of patches to be clearer.
Differential Revision: https://phab.mercurial-scm.org/D11321
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 16:52:53 +0200] rev 47926
dirstate-item: feed more information to `__init__`
Instead of processing the "rich" value at the `dirstatemap` level, we can now directly pass them to the DirstateItem object. This will make the object free to store whatever its want and to implements it logic whatever its want.
For now… we simply process the flag and store the same good old value. However
this pave the way for doing things differently once the rest of dirstatemap
code is updated.
Nobody call this code yet.
Differential Revision: https://phab.mercurial-scm.org/D11320
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Aug 2021 22:35:52 +0200] rev 47925
rust-dirstatemap: temporarily use `from_v1_data` in `addfile`
We are about to change the `__init__` for `DirstateItem`. To make the
transition easier, we move existing caller to `DirstateItem.from_v1_data`.
The Rust dirstate map will need an overall once the durst settle anyway.
Differential Revision: https://phab.mercurial-scm.org/D11319
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jul 2021 16:30:52 +0200] rev 47924
dirstatemap: temporarily use `from_v1_data` in `addfile`
We are about to change the `__init__` for `DirstateItem`. To make the
transition easier, we move existing caller to `DirstateItem.from_v1_data`.
Differential Revision: https://phab.mercurial-scm.org/D11318
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Aug 2021 18:11:49 +0200] rev 47923
dirstate-item: fix the declaration of the Cext `from_v1_meth`
This method is apparently not called from anywhere since the declaration was
garbage.
We will start calling it in the next changeset.
Differential Revision: https://phab.mercurial-scm.org/D11317
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Aug 2021 22:30:30 +0200] rev 47922
dirstate-item: fix Cext declaration of dm_nonnormal and dm_otherparent
These are property, not method.
Differential Revision: https://phab.mercurial-scm.org/D11316
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Aug 2021 11:27:01 +0200] rev 47921
dirstatemap: replace `removefile` by an explicit `entry.set_untracked()`
All the other caller goes through `reset_state`, so we can safely have an
explicit method on `DirstateItem` object.
This means that all the logic to preserve the previous state (from p2, merged,
etc) is now properly encapsulated within the DirstateItem. This pave the way to
using different storage for these information.
Differential Revision: https://phab.mercurial-scm.org/D11315
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Aug 2021 11:23:52 +0200] rev 47920
dirstate: forward `remove` call to newer `API`
The `_remove` method was only called in the deprecated `remove` function. We
merge the two and express it in terms of call to new API methods.
Differential Revision: https://phab.mercurial-scm.org/D11314
Raphaël Gomès <rgomes@octobus.net> [Wed, 25 Aug 2021 15:15:19 +0200] rev 47919
branching: merge stable into default
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 02 Aug 2021 08:05:13 -0400] rev 47918
store: return just one filename in walk functions
Various walk functions return `(revlog_type, decoded, encoded)` where
decoded could be None. But no-one cares about `encoded` and expects
`unencoded` to be present, except verify (because this can only happen
with old repo formats).
Simplify all this by either failing outright if a decoding a filename
fails (instead of almost certainly failing with a type error due to
treating None as a bytes), or skipping the filename but providing in
an out argument for hg verify.
Differential Revision: https://phab.mercurial-scm.org/D11248
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Sun, 01 Aug 2021 10:57:21 -0400] rev 47917
tests: rename test-clone-uncompressed.t
as clone --uncompressed is deprecated in favor of --stream
Differential Revision: https://phab.mercurial-scm.org/D11237
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Fri, 06 Aug 2021 16:27:17 -0400] rev 47916
debugrebuildfncache: add a cheaper option to rebuild the fncache
On my repository, debugrebuildfncache takes 5-10min with the lock.
With the flag added in this commit, it takes 10s. The tradeoff is that
it only recovers from certain kinds of corruptions. It is intended to
to recover faster from fncaches broken by a revlog split during a
transaction that ends up being rolled back.
Differential Revision: https://phab.mercurial-scm.org/D11265
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Fri, 06 Aug 2021 16:17:17 -0400] rev 47915
test: reduce noise, so the important bits stand out
Differential Revision: https://phab.mercurial-scm.org/D11264