Mercurial > hg
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'] |