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 |
m |
|
|
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