Rev 263: When post-processing the delta stream, don't ask to generate a full inventory to check for deletions. in lp:~jameinel/bzr-fastimport/mutable-inv-check
John Arbash Meinel
john at arbash-meinel.com
Mon Nov 30 21:31:33 GMT 2009
At lp:~jameinel/bzr-fastimport/mutable-inv-check
------------------------------------------------------------
revno: 263
revision-id: john at arbash-meinel.com-20091130213131-j9re4s9j2ofemqso
parent: ian.clatworthy at canonical.com-20091129103732-v5ldw0hh7cokrskt
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: mutable-inv-check
timestamp: Mon 2009-11-30 15:31:31 -0600
message:
When post-processing the delta stream, don't ask to generate a full inventory to check for deletions.
Instead, just use 'create_by_apply_delta'.
-------------- next part --------------
=== modified file 'bzr_commit_handler.py'
--- a/bzr_commit_handler.py 2009-11-04 01:52:34 +0000
+++ b/bzr_commit_handler.py 2009-11-30 21:31:31 +0000
@@ -651,16 +651,22 @@
def _get_proposed_inventory(self, delta):
if len(self.parents):
- new_inv = self.basis_inventory._get_mutable_inventory()
+ # new_inv = self.basis_inventory._get_mutable_inventory()
+ # Note that this will create unreferenced chk pages if we end up
+ # deleting entries, because this 'test' inventory won't end up
+ # used. However, it is cheaper than having to create a full copy of
+ # the inventory for every commit.
+ new_inv = self.basis_inventory.create_by_apply_delta(delta,
+ 'not-a-valid-revision-id:')
else:
new_inv = inventory.Inventory(revision_id=self.revision_id)
# This is set in the delta so remove it to prevent a duplicate
del new_inv[inventory.ROOT_ID]
- try:
- new_inv.apply_delta(delta)
- except errors.InconsistentDelta:
- self.mutter("INCONSISTENT DELTA IS:\n%s" % "\n".join([str(de) for de in delta]))
- raise
+ try:
+ new_inv.apply_delta(delta)
+ except errors.InconsistentDelta:
+ self.mutter("INCONSISTENT DELTA IS:\n%s" % "\n".join([str(de) for de in delta]))
+ raise
return new_inv
def _add_entry(self, entry):
More information about the bazaar-commits
mailing list