treemanifest: extract parse method from constructor
When we start to lazily load submanifests, it will be useful to be
able to create an treemanifest instance before manifest data gets
parsed into it. To prepare for this, extract the parsing code from
treemanifest's constructor to a separate method.
--- a/mercurial/manifest.py Sun Apr 12 14:37:55 2015 -0700
+++ b/mercurial/manifest.py Sun Apr 12 23:01:18 2015 -0700
@@ -448,10 +448,7 @@
# Using _lazymanifest here is a little slower than plain old dicts
self._files = {}
self._flags = {}
- for f, n, fl in _parse(text):
- self[f] = n
- if fl:
- self.setflag(f, fl)
+ self.parse(text)
def _subpath(self, path):
return self._dir + path
@@ -740,6 +737,12 @@
_diff(self, m2)
return result
+ def parse(self, text):
+ for f, n, fl in _parse(text):
+ self[f] = n
+ if fl:
+ self.setflag(f, fl)
+
def text(self, usemanifestv2=False):
"""Get the full data of this manifest as a bytestring."""
flags = self.flags