comparison mercurial/manifest.py @ 30209:9d06b65c5df2

manifest: don't store None in fulltextcache When we read a value from fulltextcache, we expect it to be an array, so we should not store None in it. Found while working on narrowhg.
author Martin von Zweigbergk <martinvonz@google.com>
date Mon, 17 Oct 2016 22:51:22 -0700
parents abe723002509
children 3c8811efdddc
comparison
equal deleted inserted replaced
30208:87a7c0d403ff 30209:9d06b65c5df2
1208 else: 1208 else:
1209 text = m.text(self._usemanifestv2) 1209 text = m.text(self._usemanifestv2)
1210 n = self.addrevision(text, transaction, link, p1, p2) 1210 n = self.addrevision(text, transaction, link, p1, p2)
1211 arraytext = array.array('c', text) 1211 arraytext = array.array('c', text)
1212 1212
1213 self.fulltextcache[n] = arraytext 1213 if arraytext is not None:
1214 self.fulltextcache[n] = arraytext
1214 1215
1215 return n 1216 return n
1216 1217
1217 def _addtree(self, m, transaction, link, m1, m2): 1218 def _addtree(self, m, transaction, link, m1, m2):
1218 # If the manifest is unchanged compared to one parent, 1219 # If the manifest is unchanged compared to one parent,
1504 else: 1505 else:
1505 text = self.revision(node) 1506 text = self.revision(node)
1506 m = self._newmanifest(text) 1507 m = self._newmanifest(text)
1507 arraytext = array.array('c', text) 1508 arraytext = array.array('c', text)
1508 self._mancache[node] = m 1509 self._mancache[node] = m
1509 self.fulltextcache[node] = arraytext 1510 if arraytext is not None:
1511 self.fulltextcache[node] = arraytext
1510 return m 1512 return m
1511 1513
1512 def readshallow(self, node): 1514 def readshallow(self, node):
1513 '''Reads the manifest in this directory. When using flat manifests, 1515 '''Reads the manifest in this directory. When using flat manifests,
1514 this manifest will generally have files in subdirectories in it. Does 1516 this manifest will generally have files in subdirectories in it. Does