From: Zac Medico Date: Wed, 9 Apr 2008 17:55:09 +0000 (-0000) Subject: When pruning the list of parents for the slot collision display, always X-Git-Tag: v2.2_pre6~213 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=53d7da8137cb1395d4bdc17c2326056f1e8f2e81;p=portage.git When pruning the list of parents for the slot collision display, always show parents that themselves have been pulled into collision slots, since those are more relevant that others. (branches/2.1.2 r9773) svn path=/main/trunk/; revision=9774 --- diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index ba0c8a165..e3f8df792 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -1621,16 +1621,25 @@ class depgraph(object): for parent in parents: if isinstance(parent, DependencyArg): pruned_list.append(parent) - if len(pruned_list) == max_parents: - break + # Prefer Packages instances that themselves have been + # pulled into collision slots. + for parent in parents: + if isinstance(parent, Package) and \ + (parent.slot_atom, parent.root) \ + in self._slot_collision_info: + pruned_list.append(parent) for parent in parents: if not isinstance(parent, DependencyArg): pruned_list.append(parent) - if len(pruned_list) == max_parents: + if len(pruned_list) >= max_parents: break parents = pruned_list msg.append(" pulled in by\n") + shown_parents = set() for parent in parents: + if parent in shown_parents: + continue + shown_parents.add(parent) msg.append(2*indent) msg.append(str(parent)) msg.append("\n")