comparison mercurial/revlog.py @ 41303:c953c2a94d68 stable

revlog: fix resolution of revlog version 0 This partially backs out cecf3f8bccd3, "revlog: always process opener options." My understanding is that if there's no "revlog1" nor "revlog2" in .hg/requires, the repository should stick to the v0 format. The reasoning is briefly described in 31a5973fcf96, "revlog: get rid of defversion." Maybe we can drop support for missing opener options, but I didn't do that in this patch.
author Yuya Nishihara <yuya@tcha.org>
date Mon, 21 Jan 2019 22:14:29 +0900
parents 13c23396c7fe
children ab0d762d89ef
comparison
equal deleted inserted replaced
41301:13c23396c7fe 41303:c953c2a94d68
394 newversionflags = REVLOGV2 | FLAG_INLINE_DATA 394 newversionflags = REVLOGV2 | FLAG_INLINE_DATA
395 elif 'revlogv1' in opts: 395 elif 'revlogv1' in opts:
396 newversionflags = REVLOGV1 | FLAG_INLINE_DATA 396 newversionflags = REVLOGV1 | FLAG_INLINE_DATA
397 if 'generaldelta' in opts: 397 if 'generaldelta' in opts:
398 newversionflags |= FLAG_GENERALDELTA 398 newversionflags |= FLAG_GENERALDELTA
399 elif getattr(self.opener, 'options', None) is not None:
400 # If options provided but no 'revlog*' found, the repository
401 # would have no 'requires' file in it, which means we have to
402 # stick to the old format.
403 newversionflags = REVLOGV0
399 else: 404 else:
400 newversionflags = REVLOG_DEFAULT_VERSION 405 newversionflags = REVLOG_DEFAULT_VERSION
401 406
402 if 'chunkcachesize' in opts: 407 if 'chunkcachesize' in opts:
403 self._chunkcachesize = opts['chunkcachesize'] 408 self._chunkcachesize = opts['chunkcachesize']