diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -396,6 +396,11 @@ class revlog(object): 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. + newversionflags = REVLOGV0 else: newversionflags = REVLOG_DEFAULT_VERSION diff --git a/tests/test-clone.t b/tests/test-clone.t --- a/tests/test-clone.t +++ b/tests/test-clone.t @@ -717,6 +717,9 @@ Test clone from the repository in (emula $ hg -R src commit -m '#0' $ hg -R src log -q 0:e1bab28bca43 + $ hg -R src debugrevlog -c | egrep 'format|flags' + format : 0 + flags : (none) $ hg clone -U -q src dst $ hg -R dst log -q 0:e1bab28bca43