diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -472,6 +472,8 @@ self._sparserevlog = False self._withsparseread = False + self._io = revlogv0io() + elif fmt == REVLOGV1: if flags & ~REVLOGV1_FLAGS: raise error.RevlogError(_('unknown flags (%#04x) in version %d ' @@ -486,6 +488,8 @@ # sparse-revlog forces sparse-read self._withsparseread = self._sparserevlog or withsparseread + self._io = revlogv1io() + elif fmt == REVLOGV2: if flags & ~REVLOGV2_FLAGS: raise error.RevlogError(_('unknown flags (%#04x) in version %d ' @@ -499,15 +503,14 @@ self._sparserevlog = versionflags & FLAG_SPARSE_DELTA_CHAINS self._withsparseread = versionflags & FLAG_SPARSE_DELTA_CHAINS + self._io = revlogv1io() + else: raise error.RevlogError(_('unknown version (%d) in revlog %s') % (fmt, self.indexfile)) self._storedeltachains = True - self._io = revlogv1io() - if self.version == REVLOGV0: - self._io = revlogv0io() try: d = self._io.parseindex(indexdata, self._inline) except (ValueError, IndexError):