D10792: revlog: move `offset_type` to `revlogutils`

2021-05-30 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This multiple module are using this so it make sense to move it at the utility level. REPOSITORY rHG Mercurial BRANCH

D10794: revlog: use the new `entry` function in revlog.py

2021-05-30 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This just make the construction of the tuple clearer. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10796: revlog: use the `entry` function in bundlerepo

2021-05-30 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We can use some of the default value again! REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D10796 AFFECTED

D10795: revlog: use entry in revlogv0.py

2021-05-30 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This make things clearer and we can reply on some of the default value directly. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10791: revlog: move entry documentation alongside new related constants

2021-05-30 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Accessing individual index-entry element is usually done using integer directly. This is presumably for "performance

D10793: revlog: add a function to build index entry tuple

2021-05-30 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Keeping index entry as tuple make sense for performance reason, however it does not means we need to manually build that tuple for all piece of python code

D10787: revlog: store sidedata in there own file

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This make sidedata manipulation simpler result in more compact data when traversing either data or sidedata. REPOSITORY

D10785: revlog: use dedicated code for reading sidedata

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We are about to introduce a new, dedicated, file to store sidedata. Before doing so, we make sidedata reading go through

D10790: censor: drop size limitation on the tombstone

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This limitation seems to date back from a previous implementation of censors, were the revision were censored" in place. For a long while the implementation

D10788: censor: reduce risk of censor test blowing up output limit

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The censored file is really big, and we keep using `hg cat` on it, with the assumption that it is censored. However, when it is not censored, the amount of

D10783: revlog: no longer return sidedata from `_revisiondata`

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY All users have been migrated. When they was introduced sidedata where grouped with the actual revision data and

D10784: revlog: simplify "partial read" error message

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We are about to reuse this message in more places and the current handling is pretty hard to read. So we eat two pie with

D10786: revlog: fix docket.date_filepath docstring

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This was copy-pasted too quickly. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D10786 AFFECTED FILES

D10782: revlog: use `self.sidedata` directly in `revlog.clone`

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We want to change `revlog._revisiondata` signature, so we need to migrate users away. REPOSITORY rHG Mercurial BRANCH

D10780: revlog: implement sidedata without using _revisiondata

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY When they was introduced sidedata where grouped with the actual revision data and unpacking one came with the other.

D10779: revlogv2: drop "sidedatacompression" from the list of todos

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This was implemented in c4dbb7636a12 and 07641bafa646

D10781: revlog: use `self.sidedata` directly to construct changelogrevision

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We want to change `revlog._revisiondata` signature, so we need to migrate users away. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10778: changegroup: fix deltachunk API to be consistent from one class to another

2021-05-28 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Depending of the subclass the 8th index of `chunkdata` items was either a sidedata dict of a proto_flags integer. We have not fixed the inconsistency and we

D10776: revlog: close the index file handle after the data one

2021-05-27 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This make sure the data file is flushed before the index. preventing the index to reference unflushed data. REPOSITORY

D10772: revlogv2: use a unique filename for data

2021-05-27 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Having a unique data will allow for ambiguity less rewriting of revlog content, something useful to clarify handling of

D10775: revlog: simplify the try nesting in the `_writing` context

2021-05-27 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Lets use a single try, with conditional cleanup. This make is easier to add a file handle dedicated to sidedata. REPOSITORY

D10774: revlogv2: add a `get_data` helper to grab the next piece of docket

2021-05-27 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This make the processing more compact but abstracting repetitive processing away. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10771: revlogv2: use a unique filename for index

2021-05-27 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Having a unique index will allow for ambiguity less rewriting of revlog content, something useful to clarify handling of some operation like censoring or

D10773: revlogv2: simplify and clarify the processing of each entry

2021-05-27 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY As we add more entries and some of them has non trivial processing it seems useful to make the processing leaner and clearly separated to simplify futures

D10755: docket: move the uid logic in the `revlogutils.docket` module

2021-05-20 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We want to use it for revlog-v2 (& Co), it seems more logical to have the logic lives inside the `docket` file than the `nodemap` file. REPOSITORY rHG

D10754: persistent-nodemap: use the intended uuid size

2021-05-20 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY I overlooked this in the initial implementation. The format already supporting any uuid size so, nothing horrible should happens. REPOSITORY rHG Mercurial

D10753: persistent-nodemap: add a way to make the picked uid predictable

2021-05-20 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This will make the test less volatile and therefore easier to maintain. I am setting this is for the persistent nodemap docket first, but my target is to use

D10731: updatecaches: deprecate the `full` argument

2021-05-18 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Now that all users were migrated, we can use deprecate the old way. This would give potential extensions code a heads up on the API change. REPOSITORY rHG

D10730: updatecaches: use the `caches` argument instead of a special `full` value

2021-05-18 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY After a clone we want to update most cachem, but not exactly all of them. We can now cleanly express this. REPOSITORY rHG Mercurial BRANCH default

D10729: updatecaches: use the caches argument in `hg debugupdatecaches`

2021-05-18 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This is the new way. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D10729 AFFECTED FILES

D10727: updatecaches: introduce a set of constants to control which are updated

2021-05-18 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Passing around a set of constant to select what need warming will be cleaner and more flexible. We did not changed the API yet, as this changes is already

D10728: updatecaches: adds a `caches` parameters to `repo.updatecaches`

2021-05-18 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY It will superseed the `full` parameters (and its `post-clone` variant from stable). Various caller will be updated in the rest of this series. REPOSITORY

D10695: cache: avoid warming the fnodetags cache after clone

2021-05-07 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY That cache can quite expensive to compute on large repository as not that `hg clone` is warming all cache, this can introduces a significant slowdown for

Re: Manifest handling

2021-05-06 Thread Pierre-Yves David
(We could even move to be the official manifest scheme, using some recursive/commutative hashing) However that would not fully superseed what we currently store in "ChangedFiles" to perform changeset centric copy tracing. So we would need a bit more than just that. I am no

D10660: changelogv2: introduce a "changelogv2" feature

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Right now, this means using revlogv2, but only for the changelog. We will have the format more unique in future changesets.

D10667: changelogv2: use a dedicated on disk format for changelogv2

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We drop two unused entry. This is mostly a proof of concept before starting to actually rework the format. REPOSITORY rHG

D10665: revlog: signal which revlog index are compatible with Rust

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Otherwise, Rust may treat python object like `cindex` object, leading to trouble. The new attribute is an integer because I expect we might need a flag field

D10662: changelogv2: `copies-side-data` now implies `changelogv2`

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY To store information about file changes and copies only requires sidedata support for the changelog. So we only enables `changelogv2`. This is less impactful

D10666: revlog: do not call Rust code if the index is not compatible with it

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This will avoid hitting the TypeError we defined in the previous changesets. REPOSITORY rHG Mercurial BRANCH default

D10663: changelogv2: use a dedicated version number

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY If we want to change the format, we need a new version number. We start with that. REPOSITORY rHG Mercurial BRANCH

D10664: revlog: pass around the `rev` we deal with when packing/unpacking entry

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This will help code to compute some flag on the fly. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D10664

D10658: revlogv2: no longer attempt to use inline for new revlog

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY revlogv2 steered away for the inline feature. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10657: sidedata: use the "feature" to detect that sidedata are enabled

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This is more versatile than relying on the revlogv2 requirements. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10661: changelogv2: allow upgrade from and to this format

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D10661 AFFECTED FILES mercurial/upgrade_utils/actions.py CHANGE DETAILS diff

D10656: revlog: compress sidedata when doing "post-pull" sidedata update

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY All path writing sidedata are now using compression (when appropriate). REPOSITORY rHG Mercurial BRANCH default

D10659: revlogv2: drop the code related to inlined revlogv2

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Tevlogv2 will not use inlined revlog. As a result we can drop the associated code. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10653: revlog: introduce a compression mode for sidedata in the revlog index

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We will use this for compression for the sidedata payload. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10655: revlog: compress sidedata in `_writeentry`

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY When appropriate we store the sidedata in a compressed form. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10654: revlog: apply compression mode while reading sidedata

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Right now, we only store things as PLAIN, but we are ready for some compression now. Future changeset will start using

D10652: revlog: implement a "default compression" mode

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The revlog docker is now storing a default compression engine. When a chunk use that compression, a dedicated mode is used

D10651: revlog: add a `_get_decompressor` method

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This logic is non-trivial and we will need to reuse it. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10646: revlog: add a "data compression mode" entry in the index tuple

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY That will make it possible to keep track of compression information in the revlog index, opening the way to more efficient

D10650: revlog: introduce a plain compression mode

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY That mode is simple it means the chunk contains uncompressed data and can be used directly. REPOSITORY rHG Mercurial

D10649: revlog: use an intermediate variable for `data` in `_chunk`

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This will help us to dispatch this to the right decompressor. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10648: revlogv2: preserve the compression mode on disk

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The value is still the same and still not treated, but now it exists one disk. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10647: revlog: use `format_version` to dispatch different version in index_get

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This is semantically more correct. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D10647 AFFECTED FILES

D10643: revlog: improve documentation of the entry tuple

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The code in revlog, and outside revlog directly use the index's entry tuple, with direct integer indexing. This is a

D10642: revlog: simplify entry update logic in `rewrite_sidedata`

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We don't need to rebuild the full entry. So lets just gather the data we need to pass to `replace_sidedata_info`.

D10645: revlog: fix the `null_item` attribute for V0

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This is not a proper index tuple. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D10645 AFFECTED FILES

D10644: revlog: create a create `null_item` attribute for V0

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This value is currently wrong, but at least it is now -obviously- wrong. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10641: revlog: simplify the replace_sidedata_info code

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We already know how to serialize and de-serialize and enty. So lets just do that and modify the entry tuple directly. This avoid having to duplicated

D10640: revlog: use `rev` instead of `i` in replace_sidedata_info

2021-05-04 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This is clearer. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D10640 AFFECTED FILES

D10632: revlogv2: also keep track for the size of the "data" file

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This is useful to make sure we always start writing at the right location, without effort. REPOSITORY rHG Mercurial

D10631: revlogv2: track pending write in the docket and expose it to hooks

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The docket is now able to write pending data. We could have used a distinct intermediate files, however keeping everything

D10628: revlogv2: track current index size in the docket

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This help use to fix transaction safety on repos. See next changesets for details. REPOSITORY rHG Mercurial BRANCH

D10630: revlog: move the `trypending` logic from the `changelog` to the `revlog`

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We move the -reading- logic for the pending's '.a' suffixed index within the revlog class. This is motivated by the fact the

D10629: revlogv2: delay the update of the changelog docket to transaction end

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This prevent external reader to see the transaction content before it is commited. However this also prevent the hooks to

D10625: revlogv2: store version information in the docket only

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Having it duplicated in the index was both useless and a risk of discrepancy. REPOSITORY rHG Mercurial BRANCH default

D10624: revlogv2: introduce a very basic docket file

2021-05-03 Thread marmoute (Pierre-Yves David)
YPE_FILELOG_OTHER diff --git a/mercurial/revlogutils/docket.py b/mercurial/revlogutils/docket.py new file mode 100644 --- /dev/null +++ b/mercurial/revlogutils/docket.py @@ -0,0 +1,80 @@ +# docket - code related to revlog "docket" +# +# Copyright 2021 Pierre-Yves David +# +# This software

D10627: revlogv2: also test transactionality of revlog v2

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Without surprise, this is broken :-) Now that it is tested, we can fix it. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10617: sidedata: add a 'side-data' repository feature and use it

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Most code don't really care how sidedata support is added, but it needs to know if it is present. To achieve this. we use the `repo.features` attributes with

D10626: revlog: add a new test file focussed on testing transactionally issue

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY What we test here is currently also covered by `test-hooks.t`. However having our own test file allow for more focussed/deep testing and to cover more variant

D10623: revlogv2: mark revlogv2 as requires a full upgrade

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This was overlooked previously. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D10623 AFFECTED FILES

D10620: side-data: drop the associated config and requirements

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This is no longer and extensions of revlog v1, but a part of revlog v2. We no longer needs independent config and requirement management for that. REPOSITORY

D10622: revlog: unify flag processing when loading index

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The new code use a simple declaration to do centralised processing. This is clearer, shorter and less error prone. This will

D10621: revlog: unify checks for supported flag

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The new code use a simple declaration to do centralised checking. This is clearer, shorter and less error prone. This will

D10619: revlog: fix capitalisation of an error

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We don't start error message with capital letters. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10618: test: no longer directly use the sidedata config and requirements

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY They are on their way out, so we simply use revlogv2 in these cases. Some test does not requires explicite request for the revlogv2 format since the

D10613: revlog: determine sidedata support based on the revlog version

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Revlog version "2" support sidedata, previous version does not. So lets make the initialization simpler. REPOSITORY rHG

D10616: statichttp: add the missing `features` attribute

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This make statichttp closer to the interface it is "supposed" to follow. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10612: requirements: no longer drop `generaldelta` requirement with revlogv2

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY A repository could use a mix of revlogv1 and revlogv2, making the requirements still necessary. Overall we should move away from the "requirements" file being

D10614: upgrade: display sidedata before upgrade

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This is a small gratuitous change that help making the test simpler to understand on its own. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10610: revlog: only use the `_indexfp` method for read operation

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This will avoid "other" code to not overlook `_writing` usage. We introduces private method dedicated to writing to make use

D10615: sidedata: use revlogv2 requirement in the test helper

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We are about to drop the requirement dedicated to sidedata (since revlogv2 will support them unconditionally and previous version will not.). To prepare

D10609: revlog: use `_writing` in `rewrite_sidedata`

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Special cases aren't special enough to break the rules. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10611: config: drop the `format.exp-revlogv2.2` option

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY It is oddly named and not used at all. The one used by the code is still `experimental.revlogv2`. So we drop that one option for consistency. We move

D10608: revlog: open files in 'r+' instead of 'a+'

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The code doing actual writing is already doing the necessary seeking, so we could safely use 'r+'. This make the file objecs

D10607: revlog: pass a transaction object to `rewrite_sidedata`

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The `_writing` context need one, so we update the function signature before considering using `_writing` in rewrite_sidedata.

D10605: revlog: introduce a mandatory `_writing` context to update revlog content

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Before this change, various revlog methods where managing the opening and closing of the revlog files manually and passing

D10606: revlog: rename variable in `rewrite_sidedata` to match other code

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Let's call the index file object and `ifh` and the data file object `dfh` as the rest of the revlog code. This will make

D10604: revlog: preindent some code in _enforceinlinesize

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Indenting this beforehand will make a future changeset much simpler. REPOSITORY rHG Mercurial BRANCH default REVISION

D10603: revlog: preindent some code in addgroup

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Indenting this beforehand will make a future changeset much simpler. REPOSITORY rHG Mercurial BRANCH default REVISION

D10602: revlog: rename `indexdata` to entry_data

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Same reasoning as the previous changeset, we might not be looking at index data here. REPOSITORY rHG Mercurial BRANCH

D10601: revlog: use "entry_point" phrasing for loading the revlog

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The main entry for the revlog will not necessary be the index, but a small "docket". So we change the variable names and we

D10600: revlog: directly use self._format_flags when loading index

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The shorthand variable does not bring much, so we drop it to simplify the code. REPOSITORY rHG Mercurial BRANCH default

D10599: revlog: directly use self._format_version when loading index

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The shorthand variable does not bring much, so we drop it to simplify the code. REPOSITORY rHG Mercurial BRANCH default

D10598: revlog: use `_format_flags` to access flags instead of `header`

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY It seems better to reuse the variable we carefully extracted This also open the way to more flexible way to retrieve

D10597: revlog: rename `newversionflags` to `new_header`

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This make it consistent with the previous changeset. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL

D10596: revlog: rename `versionflags` to header

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY The variable is named as such because it contains "version" information and "flags" information. However you mostly needs to

D10595: revlog: move index reading logic in a dedicated method

2021-05-03 Thread marmoute (Pierre-Yves David)
marmoute created this revision. Herald added a reviewer: indygreg. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY They are multiple motivation to do it: - The logic is complicated enough to deserver its own method. - We will need

<    4   5   6   7   8   9   10   11   12   13   >