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