fix graph traversal in commands.bundle (it wasn't O(n))

This commit is contained in:
Benoit Boissinot 2006-10-25 18:22:04 +02:00
parent 48fd160764
commit 821330610a

View File

@ -839,6 +839,7 @@ def bundle(ui, repo, fname, dest=None, **opts):
visit = list(revs)
else:
visit = repo.changelog.heads()
seen = sets.Set(visit)
while visit:
n = visit.pop(0)
parents = [p for p in repo.changelog.parents(n)
@ -846,7 +847,10 @@ def bundle(ui, repo, fname, dest=None, **opts):
if len(parents) == 0:
o.insert(0, n)
else:
visit.extend(parents)
for p in parents:
if p not in seen:
seen.add(p)
visit.append(p)
else:
setremoteconfig(ui, opts)
dest = ui.expandpath(dest or 'default-push', dest or 'default')