##// END OF EJS Templates
manifest: make treemanifestctx store the repo...
Durham Goode -
r30221:f2c5b9d4 stable
parent child Browse files
Show More
@@ -1274,7 +1274,7 b' class manifestlog(object):'
1274 1274 return cachemf
1275 1275
1276 1276 if self._treeinmem:
1277 m = treemanifestctx(self._revlog, '', node)
1277 m = treemanifestctx(self._repo, '', node)
1278 1278 else:
1279 1279 m = manifestctx(self._repo, node)
1280 1280 if node != revlog.nullid:
@@ -1344,9 +1344,8 b' class manifestctx(object):'
1344 1344 return manifestdict(d)
1345 1345
1346 1346 class treemanifestctx(object):
1347 def __init__(self, revlog, dir, node):
1348 revlog = revlog.dirlog(dir)
1349 self._revlog = revlog
1347 def __init__(self, repo, dir, node):
1348 self._repo = repo
1350 1349 self._dir = dir
1351 1350 self._data = None
1352 1351
@@ -1359,23 +1358,27 b' class treemanifestctx(object):'
1359 1358 #rev = revlog.rev(node)
1360 1359 #self.linkrev = revlog.linkrev(rev)
1361 1360
1361 def _revlog(self):
1362 return self._repo.manifestlog._revlog.dirlog(self._dir)
1363
1362 1364 def read(self):
1363 1365 if not self._data:
1366 rl = self._revlog()
1364 1367 if self._node == revlog.nullid:
1365 1368 self._data = treemanifest()
1366 elif self._revlog._treeondisk:
1369 elif rl._treeondisk:
1367 1370 m = treemanifest(dir=self._dir)
1368 1371 def gettext():
1369 return self._revlog.revision(self._node)
1372 return rl.revision(self._node)
1370 1373 def readsubtree(dir, subm):
1371 return treemanifestctx(self._revlog, dir, subm).read()
1374 return treemanifestctx(self._repo, dir, subm).read()
1372 1375 m.read(gettext, readsubtree)
1373 1376 m.setnode(self._node)
1374 1377 self._data = m
1375 1378 else:
1376 text = self._revlog.revision(self._node)
1379 text = revlog.revision(self._node)
1377 1380 arraytext = array.array('c', text)
1378 self._revlog.fulltextcache[self._node] = arraytext
1381 rl.fulltextcache[self._node] = arraytext
1379 1382 self._data = treemanifest(dir=self._dir, text=text)
1380 1383
1381 1384 return self._data
@@ -1385,9 +1388,9 b' class treemanifestctx(object):'
1385 1388
1386 1389 def readdelta(self):
1387 1390 # Need to perform a slow delta
1388 revlog = self._revlog
1391 revlog = self._revlog()
1389 1392 r0 = revlog.deltaparent(revlog.rev(self._node))
1390 m0 = treemanifestctx(revlog, self._dir, revlog.node(r0)).read()
1393 m0 = treemanifestctx(self._repo, self._dir, revlog.node(r0)).read()
1391 1394 m1 = self.read()
1392 1395 md = treemanifest(dir=self._dir)
1393 1396 for f, ((n0, fl0), (n1, fl1)) in m0.diff(m1).iteritems():
@@ -1398,7 +1401,7 b' class treemanifestctx(object):'
1398 1401 return md
1399 1402
1400 1403 def readfast(self):
1401 rl = self._revlog
1404 rl = self._revlog()
1402 1405 r = rl.rev(self._node)
1403 1406 deltaparent = rl.deltaparent(r)
1404 1407 if deltaparent != revlog.nullrev and deltaparent in rl.parentrevs(r):
General Comments 0
You need to be logged in to leave comments. Login now