Rev 1827: use revmeta to find parent during fetch. in file:///data/jelmer/bzr-svn/trunk/

Jelmer Vernooij jelmer at samba.org
Sat Sep 6 13:55:33 BST 2008


At file:///data/jelmer/bzr-svn/trunk/

------------------------------------------------------------
revno: 1827
revision-id: jelmer at samba.org-20080906125532-3awjtlzrf5f63hjq
parent: jelmer at samba.org-20080906124325-0xkg4y7ju3q2uwd5
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Sat 2008-09-06 14:55:32 +0200
message:
  use revmeta to find parent during fetch.
modified:
  fetch.py                       fetch.py-20060625004942-x2lfaib8ra707a8p-1
=== modified file 'fetch.py'
--- a/fetch.py	2008-09-05 22:31:29 +0000
+++ b/fetch.py	2008-09-06 12:55:32 +0000
@@ -588,7 +588,6 @@
         """Find all revisions from the source repository that are not 
         yet in the target repository.
         """
-        parents = {}
         meta_map = {}
         graph = self.source.get_graph()
         available_revs = set()
@@ -598,8 +597,7 @@
             meta_map[revid] = revmeta
         missing = available_revs.difference(self.target.has_revisions(available_revs))
         needed = list(graph.iter_topo_order(missing))
-        parents = graph.get_parent_map(needed)
-        return [(revid, parents[revid][0], meta_map[revid]) for revid in needed]
+        return [(meta_map[revid], mapping) for revid in needed]
 
     def _find_branches(self, branches, find_ghosts=False, pb=None):
         set_needed = set()
@@ -637,7 +635,6 @@
             revs = []
             meta_map = {}
             needed = []
-            lhs_parent = {}
             try:
                 (branch_path, revnum, mapping) = \
                     self.source.lookup_revision_id(revision_id)
@@ -650,7 +647,6 @@
                               revnum-revmeta.revnum, revnum)
                 revid = revmeta.get_revision_id(mapping)
                 parent_ids = revmeta.get_parent_ids(mapping)
-                lhs_parent[revid] = parent_ids[0]
                 meta_map[revid] = revmeta
                 if revid in checked:
                     # This revision (and its ancestry) has already been checked
@@ -661,7 +657,7 @@
                 elif not find_ghosts:
                     break
                 checked.add(revid)
-            return [(revid, lhs_parent[revid], meta_map[revid]) 
+            return [(meta_map[revid], mapping) 
                       for revid in reversed(revs)]
 
         needed = check_revid(revision_id)
@@ -698,32 +694,36 @@
             nested_pb = pb
         else:
             nested_pb = None
-        num = 0
         prev_inv = None
 
         try:
-            for (revid, parent_revid, revmeta) in revids:
+            for num, (revmeta, mapping) in enumerate(revids):
+                revid = revmeta.get_revision_id(mapping)
                 assert revid != NULL_REVISION
                 pb.update('copying revision', num, len(revids))
 
+                parent_revmeta = revmeta.get_lhs_parent_revmeta(mapping)
+                if parent_revmeta is None:
+                    parent_revid = NULL_REVISION
+                    parent_inv = Inventory(root_id=None)
+                else:
+                    parent_revid = parent_revmeta.get_revision_id(mapping)
+                    if prev_revid != parent_revid:
+                        if "validate" in debug.debug_flags:
+                            assert self.target.has_revision(parent_revid)
+                        parent_inv = self.target.get_inventory(parent_revid)
+                    else:
+                        parent_inv = prev_inv
+
                 assert parent_revid is not None and parent_revid != revid
 
                 if parent_revid == NULL_REVISION:
-                    parent_inv = Inventory(root_id=None)
-                elif prev_revid != parent_revid:
-                    if "validate" in debug.debug_flags:
-                        assert self.target.has_revision(parent_revid)
-                    parent_inv = self.target.get_inventory(parent_revid)
-                else:
-                    parent_inv = prev_inv
-
-                if parent_revid == NULL_REVISION:
                     parent_branch = revmeta.branch_path
                     parent_revnum = revmeta.revnum
                     start_empty = True
                 else:
-                    (parent_branch, parent_revnum, mapping) = \
-                            self.source.lookup_revision_id(parent_revid)
+                    parent_branch = parent_revmeta.branch_path
+                    parent_revnum = parent_revmeta.revnum
                     start_empty = False
 
                 if not self.target.is_in_write_group():
@@ -761,7 +761,6 @@
 
                 prev_inv = editor.inventory
                 prev_revid = revid
-                num += 1
             if self.target.is_in_write_group():
                 self.target.commit_write_group()
         finally:




More information about the bazaar-commits mailing list