Mercurial > hg
changeset 22852:e994b034e91e
obsolete: add a "format.obsstore-version" config option
This option controls what version of the binary format to use when creating a new
obsstore file.
Default is still the old format. No safeguards are currently placed around the
option value, but no clueless users are in danger of harm since it is
undocumented.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Tue, 16 Sep 2014 17:52:40 -0700 |
parents | 974389427e5f |
children | 9a7d0f7e0561 |
files | mercurial/localrepo.py mercurial/obsolete.py |
diffstat | 2 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Thu Oct 09 00:10:10 2014 -0700 +++ b/mercurial/localrepo.py Tue Sep 16 17:52:40 2014 -0700 @@ -400,7 +400,13 @@ @storecache('obsstore') def obsstore(self): - store = obsolete.obsstore(self.sopener) + # read default format for new obsstore. + defaultformat = self.ui.configint('format', 'obsstore-version', None) + # rely on obsstore class default when possible. + kwargs = {} + if defaultformat is not None: + defaultformat['defaultformat'] = defaultformat + store = obsolete.obsstore(self.sopener, **kwargs) if store and not obsolete._enabled: # message is rare enough to not be translated msg = 'obsolete feature not enabled but %i markers found!\n'
--- a/mercurial/obsolete.py Thu Oct 09 00:10:10 2014 -0700 +++ b/mercurial/obsolete.py Tue Sep 16 17:52:40 2014 -0700 @@ -450,7 +450,7 @@ # parents: (tuple of nodeid) or None, parents of precursors # None is used when no data has been recorded - def __init__(self, sopener): + def __init__(self, sopener, defaultformat=_fm0version): # caches for various obsolescence related cache self.caches = {} self._all = [] @@ -459,7 +459,7 @@ self.children = {} self.sopener = sopener data = sopener.tryread('obsstore') - self._version = _fm0version + self._version = defaultformat if data: self._version, markers = _readmarkers(data) self._load(markers)