Page MenuHomePhabricator

revlog: introduce v2 format
Needs RevisionPublic

Authored by Alphare on Jan 20 2021, 3:45 PM.

Details

Reviewers
indygreg
durin42
Group Reviewers
hg-reviewers
Summary

As documented in [1], this is still tentative and could be subject to change,
but we need to lay down the foundations in order to work on the next abstraction
layers.

[1] https://www.mercurial-scm.org/wiki/RevlogV2Plan

Diff Detail

Repository
rHG Mercurial
Branch
default
Lint
No Linters Available
Unit
No Unit Test Coverage

Event Timeline

Alphare created this revision.Jan 20 2021, 3:45 PM

Can we get space for extra flags for things not supported by the filesystem? I'm thinking specifically +x and symlink support on Windows.

https://www.mercurial-scm.org/wiki/DirState#Proposed_extensions

Can we get space for extra flags for things not supported by the filesystem? I'm thinking specifically +x and symlink support on Windows.
https://www.mercurial-scm.org/wiki/DirState#Proposed_extensions

That would be a dirstate thing, not a revlog thing, right ?

Can we get space for extra flags for things not supported by the filesystem? I'm thinking specifically +x and symlink support on Windows.
https://www.mercurial-scm.org/wiki/DirState#Proposed_extensions

That would be a dirstate thing, not a revlog thing, right ?

Oops, yeah. It’s been one of those days...

pulkit added a subscriber: pulkit.Jan 22 2021, 11:40 AM

Couple of changes from this patch can be separated and send individually as prepare for revlog v2 which will help speed up review.

mercurial/localrepo.py
3639 ↗(On Diff #25185)

This can be a separate patch and will be easy one to push.

mercurial/pure/parsers.py
45

IIUC, this change can also be a separate patch.

I'm not going to review this right now, but I have prior art at https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-February/093657.html and https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-May/097960.html that might be worth a read. I believe the wiki page on this format only contains a subset of the deficiencies I outlined in the 1st link.

Alphare marked an inline comment as done.Thu, Jan 28, 10:02 AM

I'm not going to review this right now, but I have prior art at https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-February/093657.html and https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-May/097960.html that might be worth a read. I believe the wiki page on this format only contains a subset of the deficiencies I outlined in the 1st link.

Thanks for pasting these links. I'll look at them pretty soon, and we'll definitely have to account for whatever deficiencies I haven't covered in the plan page before we actually settle on a format.

This patch series is still valid for the short-term because it enables work around side-data and copytracing that would not be possible without a new format.

baymax updated this revision to Diff 25603.Fri, Feb 12, 7:46 AM

✅ refresh by Heptapod after a successful CI run (🐙 💚)

baymax updated this revision to Diff 25615.Fri, Feb 12, 6:58 PM

✅ refresh by Heptapod after a successful CI run (🐙 💚)

baymax updated this revision to Diff 25664.Fri, Feb 19, 6:12 AM

✅ refresh by Heptapod after a successful CI run (🐙 💚)

durin42 added inline comments.
mercurial/revlogutils/constants.py
17

Was this change intentional? Don't we want to _not_ use 2 for this version until the format is locked down?

marmoute added inline comments.Wed, Feb 24, 11:20 AM
mercurial/revlogutils/constants.py
17

+1 on Augie comment

durin42 requested changes to this revision.Wed, Feb 24, 11:21 AM

(marking as request changes in that case)

This revision now requires changes to proceed.Wed, Feb 24, 11:21 AM