summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/__init__.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-01-12 08:27:18 +0000
committerZac Medico <zmedico@gentoo.org>2009-01-12 08:27:18 +0000
commit980eed3f36cdff6ec6e7c06a8a3d8b8e480746c0 (patch)
treedecf7f9899b0d917295e8a224b69d8261436e8a2 /pym/_emerge/__init__.py
parent81b1161f92acccc7dd4e176f5891113b8b37fa1e (diff)
downloadportage-980eed3f36cdff6ec6e7c06a8a3d8b8e480746c0.tar.gz
portage-980eed3f36cdff6ec6e7c06a8a3d8b8e480746c0.tar.bz2
portage-980eed3f36cdff6ec6e7c06a8a3d8b8e480746c0.zip
When displaying parents of unsolved blockers, reduce noise by pruning packages
that are only pulled in by other conflict packages. (trunk r12420) svn path=/main/branches/2.1.6/; revision=12476
Diffstat (limited to 'pym/_emerge/__init__.py')
-rw-r--r--pym/_emerge/__init__.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index bb9dac73f..4f292ea41 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -7224,6 +7224,21 @@ class depgraph(object):
conflict_pkgs[pkg] = parent_atoms
if conflict_pkgs:
+ # Reduce noise by pruning packages that are only
+ # pulled in by other conflict packages.
+ pruned_pkgs = set()
+ for pkg, parent_atoms in conflict_pkgs.iteritems():
+ relevant_parent = False
+ for parent, atom in parent_atoms:
+ if parent not in conflict_pkgs:
+ relevant_parent = True
+ break
+ if not relevant_parent:
+ pruned_pkgs.add(pkg)
+ for pkg in pruned_pkgs:
+ del conflict_pkgs[pkg]
+
+ if conflict_pkgs:
msg = []
msg.append("\n")
indent = " "