Rev 321: Use old inventory to obtain old file ids, saving a rather expensive in http://people.samba.org/bzr/jelmer/bzr-svn/bzr.dev

Jelmer Vernooij jelmer at samba.org
Wed Jan 3 00:30:16 GMT 2007


------------------------------------------------------------
revno: 321
revision-id: jelmer at samba.org-20061228165251-rr0jtciqj4f1xwya
parent: jelmer at samba.org-20061228044650-1hvjud25we4tb4tr
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: main
timestamp: Thu 2006-12-28 17:52:51 +0100
message:
  Use old inventory to obtain old file ids, saving a rather expensive 
  path_to_file_id() call.
modified:
  fetch.py                       fetch.py-20060625004942-x2lfaib8ra707a8p-1
=== modified file 'fetch.py'
--- a/fetch.py	2006-12-27 04:21:19 +0000
+++ b/fetch.py	2006-12-28 16:52:51 +0000
@@ -44,7 +44,8 @@
 class RevisionBuildEditor(svn.delta.Editor):
     def __init__(self, source, target, branch_path, revnum, prev_inventory, revid, svn_revprops, id_map, parent_branch, parent_id_map):
         self.branch_path = branch_path
-        self.inventory = prev_inventory
+        self.old_inventory = prev_inventory
+        self.inventory = copy(prev_inventory)
         self.revid = revid
         self.revnum = revnum
         self.id_map = id_map
@@ -120,7 +121,8 @@
     def open_directory(self, path, parent_baton, base_revnum, pool):
         file_id, revision_id = self.id_map[path]
         assert base_revnum >= 0
-        base_file_id, base_revid = self.source.path_to_file_id(base_revnum, os.path.join(self.parent_branch, path))
+        base_file_id = self.old_inventory.path2id(path)
+        base_revid = self.old_inventory[base_file_id].revision
         if file_id == base_file_id:
             self.dir_baserev[file_id] = [base_revid]
             ie = self.inventory[file_id]
@@ -192,7 +194,8 @@
         return path
 
     def open_file(self, path, parent_id, base_revnum, pool):
-        base_file_id, base_revid = self.source.path_to_file_id(base_revnum, os.path.join(self.parent_branch, path))
+        base_file_id = self.old_inventory.path2id(path)
+        base_revid = self.old_inventory[base_file_id].revision
         file_id, revid = self.id_map[path]
         self.is_executable = None
         self.is_symlink = (self.inventory[base_file_id].kind == 'symlink')




More information about the bazaar-commits mailing list