mercurial/manifest.py
changeset 39518 c29548ba4a75
parent 39517 8798be5f04fc
child 39521 154e4f84b51c
equal deleted inserted replaced
39517:8798be5f04fc 39518:c29548ba4a75
  1175     def writesubtrees(self, m1, m2, writesubtree):
  1175     def writesubtrees(self, m1, m2, writesubtree):
  1176         self._load() # for consistency; should never have any effect here
  1176         self._load() # for consistency; should never have any effect here
  1177         m1._load()
  1177         m1._load()
  1178         m2._load()
  1178         m2._load()
  1179         emptytree = treemanifest()
  1179         emptytree = treemanifest()
  1180         # OPT: Do we really need to load everything? Presumably things in lazy
  1180         def getnode(m, d):
  1181         # aren't dirty and don't need to be written.
  1181             ld = m._lazydirs.get(d)
  1182         self._loadalllazy()
  1182             if ld:
  1183         m1._loadalllazy()
  1183                 return ld[1]
  1184         m2._loadalllazy()
  1184             return m._dirs.get(d, emptytree)._node
       
  1185 
  1185         for d, subm in self._dirs.iteritems():
  1186         for d, subm in self._dirs.iteritems():
  1186             subp1 = m1._dirs.get(d, emptytree)._node
  1187             subp1 = getnode(m1, d)
  1187             subp2 = m2._dirs.get(d, emptytree)._node
  1188             subp2 = getnode(m2, d)
  1188             if subp1 == nullid:
  1189             if subp1 == nullid:
  1189                 subp1, subp2 = subp2, subp1
  1190                 subp1, subp2 = subp2, subp1
  1190             writesubtree(subm, subp1, subp2)
  1191             writesubtree(subm, subp1, subp2)
  1191 
  1192 
  1192     def walksubtrees(self, matcher=None):
  1193     def walksubtrees(self, matcher=None):