manifest: duplicate call to addrevision()

When we start writing submanifests to their own revlogs, we will not
want to write a new revision for a directory if there were no changes
to it. To prepare for this, duplicate the call to addrevision() and
move them earlier where they can more easily be avoided.
This commit is contained in:
Martin von Zweigbergk 2015-04-12 14:37:55 -07:00
parent 8213891de3
commit c1ccc70121

View File

@ -836,6 +836,7 @@ class manifest(revlog.revlog):
arraytext, deltatext = m.fastdelta(self._mancache[p1][1], work)
cachedelta = self.rev(p1), deltatext
text = util.buffer(arraytext)
n = self.addrevision(text, transaction, link, p1, p2, cachedelta)
else:
# The first parent manifest isn't already loaded, so we'll
# just encode a fulltext of the manifest and pass that
@ -843,9 +844,8 @@ class manifest(revlog.revlog):
# process.
text = m.text(self._usemanifestv2)
arraytext = array.array('c', text)
cachedelta = None
n = self.addrevision(text, transaction, link, p1, p2)
n = self.addrevision(text, transaction, link, p1, p2, cachedelta)
self._mancache[n] = (m, arraytext)
return n