##// END OF EJS Templates
manifest: remove dependency on manifestrevlog being able to create trees...
Durham Goode -
r30368:ed45283a default
parent child Browse files
Show More
@@ -1183,7 +1183,7 b' class manifestrevlog(revlog.revlog):'
1183 1183 self._dirlogcache)
1184 1184 return self._dirlogcache[dir]
1185 1185
1186 def add(self, m, transaction, link, p1, p2, added, removed):
1186 def add(self, m, transaction, link, p1, p2, added, removed, readtree=None):
1187 1187 if (p1 in self.fulltextcache and util.safehasattr(m, 'fastdelta')
1188 1188 and not self._usemanifestv2):
1189 1189 # If our first parent is in the manifest cache, we can
@@ -1206,9 +1206,10 b' class manifestrevlog(revlog.revlog):'
1206 1206 # through to the revlog layer, and let it handle the delta
1207 1207 # process.
1208 1208 if self._treeondisk:
1209 m1 = self.read(p1)
1210 m2 = self.read(p2)
1211 n = self._addtree(m, transaction, link, m1, m2)
1209 assert readtree, "readtree must be set for treemanifest writes"
1210 m1 = readtree(self._dir, p1)
1211 m2 = readtree(self._dir, p2)
1212 n = self._addtree(m, transaction, link, m1, m2, readtree)
1212 1213 arraytext = None
1213 1214 else:
1214 1215 text = m.text(self._usemanifestv2)
@@ -1220,14 +1221,15 b' class manifestrevlog(revlog.revlog):'
1220 1221
1221 1222 return n
1222 1223
1223 def _addtree(self, m, transaction, link, m1, m2):
1224 def _addtree(self, m, transaction, link, m1, m2, readtree):
1224 1225 # If the manifest is unchanged compared to one parent,
1225 1226 # don't write a new revision
1226 1227 if m.unmodifiedsince(m1) or m.unmodifiedsince(m2):
1227 1228 return m.node()
1228 1229 def writesubtree(subm, subp1, subp2):
1229 1230 sublog = self.dirlog(subm.dir())
1230 sublog.add(subm, transaction, link, subp1, subp2, None, None)
1231 sublog.add(subm, transaction, link, subp1, subp2, None, None,
1232 readtree=readtree)
1231 1233 m.writesubtrees(m1, m2, writesubtree)
1232 1234 text = m.dirtext(self._usemanifestv2)
1233 1235 # Double-check whether contents are unchanged to one parent
@@ -1449,8 +1451,10 b' class memtreemanifestctx(object):'
1449 1451 return self._treemanifest
1450 1452
1451 1453 def write(self, transaction, link, p1, p2, added, removed):
1454 def readtree(dir, node):
1455 return self._repo.manifestlog.get(dir, node).read()
1452 1456 return self._revlog().add(self._treemanifest, transaction, link, p1, p2,
1453 added, removed)
1457 added, removed, readtree=readtree)
1454 1458
1455 1459 class treemanifestctx(object):
1456 1460 def __init__(self, repo, dir, node):
General Comments 0
You need to be logged in to leave comments. Login now