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 diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -363,10 +363,7 @@ newversionflags = REVLOGV1 | FLAG_INLINE_DATA if 'generaldelta' in opts: newversionflags |= FLAG_GENERALDELTA - elif getattr(self.opener, 'options', None) is not None: - # 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. + elif 'revlogv0' in getattr(self.opener, 'options', {}): newversionflags = REVLOGV0 else: newversionflags = REVLOG_DEFAULT_VERSION