D6934: revlog: explicitly set revlogv0 in vfs options
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Tue Oct 1 12:34:20 UTC 2019
marmoute created this revision.
marmoute added reviewers: martinvonz, durin42.
Herald added a reviewer: indygreg.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
Relying on having an attribute or not for something so fundamental seems too
fragile to me. (And indeed I had issue with that later in this series). So we
explicitly record the fact the repository use revlog-v0.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D6934
AFFECTED FILES
mercurial/localrepo.py
mercurial/revlog.py
CHANGE DETAILS
diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -363,7 +363,7 @@
newversionflags = REVLOGV1 | FLAG_INLINE_DATA
if 'generaldelta' in opts:
newversionflags |= FLAG_GENERALDELTA
- elif getattr(self.opener, 'options', None) is not None:
+ elif 'revlogv0' in getattr(self.opener, 'options', {}):
# If options provided but no 'revlog*' found, the repository
# would have no 'requires' file in it, which means we have to
# stick to the old format.
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -748,6 +748,8 @@
# meaningful on such old repos.
if b'revlogv1' in requirements or REVLOGV2_REQUIREMENT in requirements:
options.update(resolverevlogstorevfsoptions(ui, requirements, features))
+ else: # explicitly mark repo as using revlogv0
+ options['revlogv0'] = True
return options
To: marmoute, martinvonz, durin42, indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list