Rev 2149: Use Inventory.has_id() rather than Inventory.__contains__ - the first is quicker for CHKInventory's. in http://people.samba.org/bzr/jelmer/bzr-svn/0.5

Jelmer Vernooij jelmer at samba.org
Thu Dec 4 00:02:36 GMT 2008


At http://people.samba.org/bzr/jelmer/bzr-svn/0.5

------------------------------------------------------------
revno: 2149
revision-id: jelmer at samba.org-20081204000226-ybaa70qv8j5mjmjv
parent: jelmer at samba.org-20081203204126-sj7162wop3gy4m9x
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.5
timestamp: Thu 2008-12-04 01:02:26 +0100
message:
  Use Inventory.has_id() rather than Inventory.__contains__ - the first is quicker for CHKInventory's.
modified:
  fetch.py                       fetch.py-20060625004942-x2lfaib8ra707a8p-1
=== modified file 'fetch.py'
--- a/fetch.py	2008-12-03 20:36:59 +0000
+++ b/fetch.py	2008-12-04 00:02:26 +0000
@@ -297,7 +297,7 @@
         self.parent_revids = parent_revids
         self._metadata_changed = False
         self.new_ie = InventoryDirectory(self.new_id, urlutils.basename(self.path), parent_file_id)
-        if self.new_id in self.editor.old_inventory:
+        if self.editor.old_inventory.has_id(self.new_id):
             self.new_ie.revision = self.editor.old_inventory[self.new_id].revision
 
     def _delete_entry(self, path, revnum):
@@ -310,7 +310,7 @@
         rec_del(self.editor.old_inventory[self.editor._get_old_id(self.old_id, path)])
 
     def _close(self):
-        if (not self.new_id in self.editor.old_inventory or 
+        if (not self.editor.old_inventory.has_id(self.new_id) or 
             (self._metadata_changed and self.path != "") or 
             self.new_ie != self.editor.old_inventory[self.new_id] or
             self.old_path != self.path or 
@@ -333,7 +333,7 @@
     def _add_directory(self, path, copyfrom_path=None, copyfrom_revnum=-1):
         file_id = self.editor._get_new_id(path)
 
-        if file_id in self.editor.old_inventory:
+        if self.editor.old_inventory.has_id(file_id):
             # This directory was moved here from somewhere else, but the 
             # other location hasn't been removed yet. 
             if copyfrom_path is None:
@@ -364,7 +364,7 @@
 
     def _add_file(self, path, copyfrom_path=None, copyfrom_revnum=-1):
         file_id = self.editor._get_new_id(path)
-        if file_id in self.editor.old_inventory:
+        if self.editor.old_inventory.has_id(file_id):
             # This file was moved here from somewhere else, but the 
             # other location hasn't been removed yet. 
             if copyfrom_path is None:
@@ -447,7 +447,7 @@
 
         assert self.is_symlink in (True, False)
 
-        if self.file_id in self.editor.old_inventory:
+        if self.editor.old_inventory.has_id(self.file_id):
             if self.is_executable is None:
                 self.is_executable = self.editor.old_inventory[self.file_id].executable
 
@@ -489,24 +489,24 @@
         rev = self.revmeta.get_revision(self.mapping)
         # Escaping the commit message is really the task of the serialiser
         rev.message = escape_commit_message(rev.message)
-        if getattr(self.old_inventory, "create_by_apply_delta", None) is not None:
-            self.inventory = self.old_inventory.create_by_apply_delta(self._inv_delta, rev.revision_id)
-        else:
-            self.inventory = self.old_inventory
-            self.inventory.apply_delta(self._inv_delta)
-            self.inventory.revision_id = rev.revision_id
-
         if getattr(self.target, "add_inventory_delta", None) is not None:
             try:
                 basis_id = rev.parent_ids[0]
             except IndexError:
                 basis_id = NULL_REVISION
-            rev.inventory_sha1 = self.target.add_inventory_delta(basis_id,
+            rev.inventory_sha1, self.inventory = self.target.add_inventory_delta(basis_id,
                                   self._inv_delta, rev.revision_id,
                                   [r for r in rev.parent_ids if self.target.has_revision(r)])
         else:
-            rev.inventory_sha1 = self.target.add_inventory(rev.revision_id, 
-                    self.inventory, rev.parent_ids)
+            if getattr(self.old_inventory, "create_by_apply_delta", None) is not None:
+                self.inventory = self.old_inventory.create_by_apply_delta(self._inv_delta, rev.revision_id)
+            else:
+                self.inventory = self.old_inventory
+                self.inventory.apply_delta(self._inv_delta)
+                self.inventory.revision_id = rev.revision_id
+
+                rev.inventory_sha1 = self.target.add_inventory(rev.revision_id, 
+                        self.inventory, rev.parent_ids)
         self.target.add_revision(self.revid, rev)
 
         # Only fetch signature if it's cheap




More information about the bazaar-commits mailing list