summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-12-17 10:17:54 +0000
committerZac Medico <zmedico@gentoo.org>2006-12-17 10:17:54 +0000
commit69b510521c04b5a743b725c13647bafc7d9315dc (patch)
tree51256e60d4eeea59096badec63dde61ae61a5f28 /bin/emerge
parentforce environment.bz2 to be clobbered if it already exists (diff)
downloadportage-multirepo-69b510521c04b5a743b725c13647bafc7d9315dc.tar.gz
portage-multirepo-69b510521c04b5a743b725c13647bafc7d9315dc.tar.bz2
portage-multirepo-69b510521c04b5a743b725c13647bafc7d9315dc.zip
In depgraph.altlist(), pop as many leaf nodes as possible when no relationship has been ignored. This can halve the time taken for a large merge order calculation.
svn path=/main/trunk/; revision=5308
Diffstat (limited to 'bin/emerge')
-rwxr-xr-xbin/emerge8
1 files changed, 7 insertions, 1 deletions
diff --git a/bin/emerge b/bin/emerge
index 771e61a9..7bbd94d2 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1745,7 +1745,13 @@ class depgraph:
selected_nodes = None
if nodes:
if ignore_priority <= DepPriority.SOFT:
- selected_nodes = [nodes[0]]
+ if ignore_priority is None:
+ # Greedily pop all of these nodes since no relationship
+ # has been ignored.
+ selected_nodes = nodes
+ else:
+ # Only pop one node for optimal merge order.
+ selected_nodes = [nodes[0]]
else:
"""Recursively gather a group of nodes that RDEPEND on
eachother. This ensures that they are merged as a group