[Pkg-bazaar-commits] ./bzr-gtk/unstable r30: separate sorting and colouring
David Allouche
david.allouche at canonical.com
Fri Apr 10 07:15:41 UTC 2009
------------------------------------------------------------
revno: 30
committer: David Allouche <david.allouche at canonical.com>
timestamp: Sat 2005-12-03 03:48:52 +0100
message:
separate sorting and colouring
modified:
graph.py
-------------- next part --------------
=== modified file 'graph.py'
--- a/graph.py 2005-12-03 02:19:44 +0000
+++ b/graph.py 2005-12-03 02:48:52 +0000
@@ -149,7 +149,7 @@
if pending_count == 0:
ancestor_ids_of[parent_id] = None
- def sort_revisions_and_set_colours(self, sorted_revids):
+ def sort_revisions(self, sorted_revids):
revisions = self.revisions
parent_ids_of = self.parent_ids_of
children_of_id = self.children_of_id
@@ -173,12 +173,11 @@
expected_id = pending_ids.pop(0)
skipped_revids.append(revid)
sorted_revids[:0] = skipped_revids
- skipped_revids = []
+ del skipped_revids[:]
break
else:
# all children are here, push!
distances[revid] = len(distances)
- self.choose_colour(revision, distances)
# all parents will need to be pushed as soon as possible
for parent in parent_ids_of[revision]:
if parent not in pending_ids:
@@ -192,10 +191,11 @@
pos = skipped_revids.index(expected_id)
sorted_revids[:0] = skipped_revids[pos:]
del skipped_revids[pos:]
+ self.distances = distances
return sorted(distances, key=distances.get)
- def choose_colour(self, revision, distances):
- revid = revision.revision_id
+ def choose_colour(self, revid):
+ revision = self.revisions[revid]
children_of_id = self.children_of_id
parent_ids_of = self.parent_ids_of
colours = self.colours
@@ -210,7 +210,7 @@
else:
self.choose_colour_one_child(revision, child)
else:
- self.choose_colour_many_children(revision, the_children, distances)
+ self.choose_colour_many_children(revision, the_children)
def choose_colour_one_child(self, revision, child):
revid = revision.revision_id
@@ -233,7 +233,8 @@
else:
self.colours[revid] = self.last_colour = self.last_colour + 1
- def choose_colour_many_children(self, revision, the_children, distances):
+ def choose_colour_many_children(self, revision, the_children):
+ distances = self.distances
revid = revision.revision_id
direct_parent_of = self.direct_parent_of
# multiple children, get the colour of the last displayed child
@@ -273,9 +274,15 @@
distance = DistanceMethod(branch, start)
distance.fill_caches()
sorted_revids = distance.first_ancestry_traversal()
+ print 'removing redundant parents'
distance.remove_redundant_parents(sorted_revids)
children = distance.make_children_map()
- sorted_revids = distance.sort_revisions_and_set_colours(sorted_revids)
+ print 'sorting'
+ sorted_revids = distance.sort_revisions(sorted_revids)
+ print 'colouring'
+ for revid in sorted_revids:
+ distance.choose_colour(revid)
+ print 'done'
revisions = distance.revisions
colours = distance.colours
More information about the Pkg-bazaar-commits
mailing list