summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-02-19 07:33:24 +0000
committerZac Medico <zmedico@gentoo.org>2007-02-19 07:33:24 +0000
commitec2b3443f9707eee8217aad2cd730a65d6b1036d (patch)
tree8a86110ce238f1a016f50b017400948e2744ac51 /pym
parent22f6dca5b85430ed7e47b25bd9cb846938095da0 (diff)
downloadportage-ec2b3443f9707eee8217aad2cd730a65d6b1036d.tar.gz
portage-ec2b3443f9707eee8217aad2cd730a65d6b1036d.tar.bz2
portage-ec2b3443f9707eee8217aad2cd730a65d6b1036d.zip
Optimize order for --tree display of circular dependencies.
svn path=/main/trunk/; revision=6014
Diffstat (limited to 'pym')
-rw-r--r--pym/emerge/__init__.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py
index 5567bb3e0..50e91d64c 100644
--- a/pym/emerge/__init__.py
+++ b/pym/emerge/__init__.py
@@ -2101,10 +2101,21 @@ class depgraph:
# Display the USE flags that are enabled on nodes that are part
# of dependency cycles in case that helps the user decide to
# disable some of them.
+ display_order = []
+ tempgraph = mygraph.copy()
+ while not tempgraph.empty():
+ nodes = tempgraph.leaf_nodes()
+ if not nodes:
+ node = tempgraph.order[0]
+ else:
+ node = nodes[0]
+ display_order.append(list(node))
+ tempgraph.remove(node)
+ display_order.reverse()
self.myopts.pop("--quiet", None)
self.myopts.pop("--verbose", None)
self.myopts["--tree"] = True
- self.display([list(node) for node in mygraph.order])
+ self.display(display_order)
print "!!! Error: circular dependencies:"
print
mygraph.debug_print()