# HG changeset patch # User Durham Goode <dur...@fb.com> # Date 1488304382 28800 # Tue Feb 28 09:53:02 2017 -0800 # Node ID 0a5e6ad0a25c348384bb6c14a51057b3587e2857 # Parent 88203f26ea57627cabd7cf9c4f7843661d6c43ae manifest: allow specifying the revlog filename
Previously we had hardcoded the manifest filename to be 00manifest.i. In our external treemanifest extension, we want to allow writing a treemanifest side by side with a flat manifest, so we need to be able to store the root revisions at a different location (in our extension we use 00manifesttree.i). This patches moves the revlog name to a parameter so we can adjust it. diff --git a/mercurial/manifest.py b/mercurial/manifest.py --- a/mercurial/manifest.py +++ b/mercurial/manifest.py @@ -1132,7 +1132,13 @@ class manifestrevlog(revlog.revlog): '''A revlog that stores manifest texts. This is responsible for caching the full-text manifest contents. ''' - def __init__(self, opener, dir='', dirlogcache=None): + def __init__(self, opener, dir='', dirlogcache=None, + indexfile='00manifest.i'): + """Constructs a new manifest revlog + + `indexfile` - used by extensions to have two manifests at once, like + when transitioning between flatmanifeset and treemanifests. + """ # During normal operations, we expect to deal with not more than four # revs at a time (such as during commit --amend). When rebasing large # stacks of commits, the number can go up, hence the config knob below. @@ -1150,12 +1156,11 @@ class manifestrevlog(revlog.revlog): self._fulltextcache = util.lrucachedict(cachesize) - indexfile = "00manifest.i" if dir: assert self._treeondisk, 'opts is %r' % opts if not dir.endswith('/'): dir = dir + '/' - indexfile = "meta/" + dir + "00manifest.i" + indexfile = "meta/" + dir + indexfile self._dir = dir # The dirlogcache is kept on the root manifest log if dir: _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel