# HG changeset patch # User Gregory Szorc # Date 1496984070 25200 # Node ID c8177792fef664ed8754502fbbb833056ab6f97c # Parent 3e8eb6d84a5cc8c4fb99688d9780a74b34133475 obsolete: move obsstore creation logic from localrepo This code has more to do with obsolete.py than localrepo.py. Let's move it there. diff -r 3e8eb6d84a5c -r c8177792fef6 mercurial/localrepo.py --- a/mercurial/localrepo.py Thu Jun 08 22:18:17 2017 -0700 +++ b/mercurial/localrepo.py Thu Jun 08 21:54:30 2017 -0700 @@ -524,21 +524,7 @@ @storecache('obsstore') def obsstore(self): - # read default format for new obsstore. - # developer config: format.obsstore-version - defaultformat = self.ui.configint('format', 'obsstore-version', None) - # rely on obsstore class default when possible. - kwargs = {} - if defaultformat is not None: - kwargs['defaultformat'] = defaultformat - readonly = not obsolete.isenabled(self, obsolete.createmarkersopt) - store = obsolete.obsstore(self.svfs, readonly=readonly, - **kwargs) - if store and readonly: - self.ui.warn( - _('obsolete feature not enabled but %i markers found!\n') - % len(list(store))) - return store + return obsolete.makestore(self.ui, self) @storecache('00changelog.i') def changelog(self): diff -r 3e8eb6d84a5c -r c8177792fef6 mercurial/obsolete.py --- a/mercurial/obsolete.py Thu Jun 08 22:18:17 2017 -0700 +++ b/mercurial/obsolete.py Thu Jun 08 21:54:30 2017 -0700 @@ -753,6 +753,22 @@ seennodes |= pendingnodes return seenmarkers +def makestore(ui, repo): + """Create an obsstore instance from a repo.""" + # read default format for new obsstore. + # developer config: format.obsstore-version + defaultformat = ui.configint('format', 'obsstore-version', None) + # rely on obsstore class default when possible. + kwargs = {} + if defaultformat is not None: + kwargs['defaultformat'] = defaultformat + readonly = not isenabled(repo, createmarkersopt) + store = obsstore(repo.svfs, readonly=readonly, **kwargs) + if store and readonly: + ui.warn(_('obsolete feature not enabled but %i markers found!\n') + % len(list(store))) + return store + def _filterprunes(markers): """return a set with no prune markers""" return set(m for m in markers if m[1])