revlog: use separate variables to track version flags
It wasn't obvious to me that "versionflags" is used both to
define the default version+features value for new revlogs and
to track the value read from a revlog.
We rename the former use and add explicit assignment of
"versionflags" later to differentiate between the two.
Differential Revision: https://phab.mercurial-scm.org/D5564
--- a/mercurial/revlog.py Wed Jan 09 16:18:00 2019 -0800
+++ b/mercurial/revlog.py Wed Jan 09 19:54:01 2019 -0800
@@ -391,13 +391,13 @@
opts = getattr(self.opener, 'options', {}) or {}
if 'revlogv2' in opts:
- versionflags = REVLOGV2 | FLAG_INLINE_DATA
+ newversionflags = REVLOGV2 | FLAG_INLINE_DATA
elif 'revlogv1' in opts:
- versionflags = REVLOGV1 | FLAG_INLINE_DATA
+ newversionflags = REVLOGV1 | FLAG_INLINE_DATA
if 'generaldelta' in opts:
- versionflags |= FLAG_GENERALDELTA
+ newversionflags |= FLAG_GENERALDELTA
else:
- versionflags = REVLOG_DEFAULT_VERSION
+ newversionflags = REVLOG_DEFAULT_VERSION
if 'chunkcachesize' in opts:
self._chunkcachesize = opts['chunkcachesize']
@@ -446,10 +446,14 @@
if len(indexdata) > 0:
versionflags = versionformat_unpack(indexdata[:4])[0]
self._initempty = False
+ else:
+ versionflags = newversionflags
except IOError as inst:
if inst.errno != errno.ENOENT:
raise
+ versionflags = newversionflags
+
self.version = versionflags
flags = versionflags & ~0xFFFF