Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 14 Oct 2023 03:24:13 +0200] rev 51084
revlog: avoid opening and closing the file for each cloned revision
The previous code was flushing files after each new revision, slowing things
down.
For exemple, with this change, the evolve repository can run
`hg debugupgraderepo --run --optimize re-delta-parent` in about 3.4s instead of
4.5 seconds.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2023 23:21:46 +0200] rev 51083
censor: accept censored revision during upgrade
They can simply be passed by as censored.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2023 22:40:10 +0200] rev 51082
censor: show that censored revision prevent repository upgrade
This is not great.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 03:15:12 +0200] rev 51081
debug-delta-chain: print less data by default
This is faster and simpler to read.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 03:00:44 +0200] rev 51080
debugdeltachain: add a parameter to display all info
This will be useful with the next changeset that change the defaul output to display the minimum amount of information.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 02:20:49 +0200] rev 51079
debug-delta-chain: actually skip unrequested computation
Doing quick test on mozilla-unified show we can run up to 2× faster by skipping
some of these computation.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 01:53:03 +0200] rev 51078
debug-delta-chain: add options to control what we compute
Currently this mostly controls what we display, but actual computation saving
will come soon.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2023 01:24:10 +0200] rev 51077
debug-delta-chaing: add a parameter to select revision to look at
This allows for much faster runtime when we are interrested in some revisions only.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Sep 2023 23:37:06 +0200] rev 51076
delta-chain: extract some debugdeltachain logic is object
Moving from a closure to an object's method will help us to extend the command
logic.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Sep 2023 23:26:00 +0200] rev 51075
delta-chain: move the debugdeltachain command in revlogutils
There is a dedicated `mercurial.revlogutils.debug` module were this code fits
well.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 12 Oct 2023 09:04:12 +0200] rev 51074
dirstate: document the `changing_*` context manager
The methods that requires them have documentation, but the context themselves
had none. This is now fixed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:47:46 +0200] rev 51073
revlog: deprecate the compatibility config property
Now that core is no longer use them, we can deprecated them.
Let us aim at removing them in the next version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 12:03:02 +0200] rev 51072
revlog: remove legacy usage of `_lazydeltabase`
All core code is now getting the setting from the DeltaConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:36:55 +0200] rev 51071
revlog: remove legacy usage of `_lazydelta`
All core code is now getting the setting from the DeltaConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:36:34 +0200] rev 51070
revlog: remove legacy usage of `canonical_parent_order`
All core code is now getting the setting from the FeatureConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:36:23 +0200] rev 51069
revlog: remove legacy usage of `_compute_rank`
All core code is now getting the setting from the DeltaConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:33:33 +0200] rev 51068
revlog: remove legacy usage of `_srmingapsize`
All core code is now getting the setting from the DataConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:30:07 +0200] rev 51067
revlog: remove legacy usage of `_srdensitythreshold`
All core code is now getting the setting from the DataConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:29:19 +0200] rev 51066
revlog: remove legacy usage of `hassidedata`
All core code is now getting the setting from the FeatureConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:27:39 +0200] rev 51065
revlog: remove legacy usage of `_sparserevlog`
All core code is now getting the setting from the DeltaConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:24:37 +0200] rev 51064
revlog: remove legacy usage of `_withsparseread`
All core code is now getting the setting from the DeltaConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:16:07 +0200] rev 51063
revlog: remove legacy usage of `_maxdeltachainspan`
All core code is now getting the setting from the DeltaConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:13:24 +0200] rev 51062
revlog: remove legacy usage of `_compengineopts`
All core code is now getting the setting from the FeatureConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:12:06 +0200] rev 51061
revlog: remove legacy usage of `_compengine`
All core code is now getting the setting from the FeatureConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Oct 2023 00:04:23 +0200] rev 51060
revlog: remove legacy usage of `_candidate_group_chunk_size`
All core code is now getting the setting from the DeltaConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Oct 2023 00:04:08 +0200] rev 51059
revlog: remove legacy usage of `_debug_delta`
All core code is now getting the setting from the DeltaConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:07:15 +0200] rev 51058
revlog: remove legacy usage of `_deltabothparents`
All core code is now getting the setting from the DeltaConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:05:54 +0200] rev 51057
revlog: remove legacy usage of `_maxchainlen`
All core code is now getting the setting from the DeltaConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:04:40 +0200] rev 51056
revlog: remove legacy usage of `_chunkcachesize`
All core code is now getting the setting from the DataConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:04:07 +0200] rev 51055
revlog: remove legacy usage of `_censorable`
All core code is now getting the setting from the FeatureConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:02:24 +0200] rev 51054
revlog: remove legacy usage of `_mmaplargeindex`
All core code is now getting the setting from the DataConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 11:02:00 +0200] rev 51053
revlog: remove legacy usage of `_checkambig`
All core code is now getting the setting from the DataConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:58:28 +0200] rev 51052
revlog: drop the _generaldelta attribute from the imanifeststorage interface
It never belonged here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:56:42 +0200] rev 51051
revlog: remove legacy usage of `_generaldelta`
All core code is now getting the setting from the DeltaConfig object.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 18:02:20 +0200] rev 51050
revlog: use the new Config classes in _testrevlog
the mock object need to follow the new interface. We allow ourself a small
hacky import since this is testing code.
The legacy attribute are still here because some code still use them. We will
drop them when this code is updated.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:04:06 +0200] rev 51049
revlog: skip opener options to pass sparse reading values
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:58 +0200] rev 51048
revlog: skip opener options to pass sparse_revlog value
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:50 +0200] rev 51047
revlog: skip opener options to pass mmap_index_threshold value
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:42 +0200] rev 51046
revlog: skip opener options to pass enable_ellipsis
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:34 +0200] rev 51045
revlog: skip opener options to pass compression option values
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:26 +0200] rev 51044
revlog: skip opener options to pass compression_engine value
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:18 +0200] rev 51043
revlog: skip opener options to pass max_chain_len
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:09 +0200] rev 51042
revlog: skip opener options to pass max_deltachain_span
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:03:01 +0200] rev 51041
revlog: skip opener options to pass lazy_delta values
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:53 +0200] rev 51040
revlog: skip opener options to pass debug_delta value
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:45 +0200] rev 51039
revlog: skip opener options to pass candidate_group_chunk_size value
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:37 +0200] rev 51038
revlog: skip opener option to pass delta_both_parents value
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:29 +0200] rev 51037
revlog: skip opener option to pass chunk_cache_size value
We can directly set the option in the config object now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:21 +0200] rev 51036
revlog: create the revlog object at the repository level
There is currently no value set in it, but we will be able to start centralise
config parsing at the repository level.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:13 +0200] rev 51035
revlog: overwrite revlog config through copy of the config object
The new objects allow for this kind of blanket approach that make things
cleaner.
If we have more cases, it would probably deserve a context manager, but since we
only have two usage, I don't think it is worth it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:02:05 +0200] rev 51034
revlog: move configuration attribute into dedicated object
First this make things clearer as the number of configuration attributes has
grown out of control, so gathering them make things clearer.
Second, this will make future sharing them at different level simpler.
Third it will allow us to make initialisation and temporary override simpler
soon.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2023 10:01:57 +0200] rev 51033
manifestrevlog: flag some inconsistency in bundle/union repo inheritance
This "work" but still, this is weird, let us point it out.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 30 Sep 2023 02:02:36 +0200] rev 51032
randomaccessfile: drop explicit passing of file description
The goal of this object is to manage IO, we still have to open the file if
necessary, but this is all internal now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2023 02:54:50 +0200] rev 51031
revlog: drop more file description passing between private function
They are no longer used as we are covered by the `reading` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2023 02:49:18 +0200] rev 51030
revlog: use a `reading` context in `_enforceinlinesize`
We are about to enforce reading context on various operation, so we make sure
top level method are in the right context.
In the future we might move the responsibility of opening the revlog for reading
higher in the call chain but lets limit the disruption for now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2023 00:55:49 +0200] rev 51029
revlog: drop the df argument to `sidedata`
The intend of this argument is better filled by the `revlog.reading` or
`revlog._writing` context. So we drop it to leave rooms for further cleanup and
improvements.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2023 00:54:46 +0200] rev 51028
revlog: drop the df argument to `rawdata`
The intend of this argument is better filled by the `revlog.reading` or
`revlog._writing` context. So we drop it to leave rooms for further cleanup and
improvements.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 22:52:01 +0200] rev 51027
revlog: drop the df argument to `revision`
The intend of this argument is better filled by the `revlog.reading` or
`revlog._writing` context. So we drop it to leave rooms for further cleanup and
improvements.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2023 01:05:02 +0200] rev 51026
interfaces: drop the `raw` parameters on ifiledata interface
In practice it was not implemented since forever. The `rawdata` method fit that
purpose. The interface checking does not detect that because it seems to confuse
the `_df` argument for the `raw` one.
Dropping that `_df` argument in a descendant changesets revealed the issue.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 22:51:57 +0200] rev 51025
delta-computer: stop explicitly taking file handle
The revlog has all the logic for opening and caching such handles, so no need to
duplicate it here. In addition, this let the revlog handle that logic by itself
which is better.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 16:47:55 +0200] rev 51024
censors: simply use `revlog.reading` to keep things open dring rewrite
We have a dedicated context now, we can simply use it.
In practice, we cannot "simply" use it, as `finddeltainfo` still requires the
file pointer to be passed explicitly. We will keep the old context manager open
for a small bit until we get rid of it in a future changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 17:18:40 +0200] rev 51023
stream-clone: use `revlog.reading` in `revlog.get_streams`
We can get the same result while using more standard method, so we do.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 16:57:53 +0200] rev 51022
debug-revlog: keep the revlog open for the analysis duration
This is more explicit. No performance differences were observed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 25 Sep 2023 16:36:17 +0200] rev 51021
repo-upgrade: keep the revlog open while cloning
This is more explicit. No performance differences were observed.