Blockers that depend on merge order must be validated by depgraph.altlist(reversed...
authorZac Medico <zmedico@gentoo.org>
Mon, 16 Oct 2006 22:04:52 +0000 (22:04 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 16 Oct 2006 22:04:52 +0000 (22:04 -0000)
svn path=/main/trunk/; revision=4729

bin/emerge

index ab5fe2fc1697d0998d12ce0eb07e45a46d2d28cc..ff5a8901fd865174b7b6a6df62632fbb8d6efa40 100755 (executable)
@@ -1466,9 +1466,13 @@ class depgraph:
 
                for node in myblockers.root_nodes():
                        retlist.append(node.split())
-                       for parent in self.blocker_parents[node]:
-                               # Valid blockers need to be in the digraph for --tree support.
-                               self.digraph.add(node, parent)
+                       if not reversed:
+                               """ Valid blockers need to be in the digraph for --tree
+                               support.  Blocker validation does not work with reverse mode,
+                               so self.altlist() should first be called with reverse disabled
+                               so that blockers are properly validated."""
+                               for parent in self.blocker_parents[node]:
+                                       self.digraph.add(node, parent)
 
                return retlist
 
@@ -3785,6 +3789,9 @@ def action_build(settings, trees, mtimedb,
                        mydepgraph.display(mymergelist)
                        prompt="Would you like to resume merging these packages?"
                else:
+                       """ Blockers that depend on merge order must first be validated by
+                       altlist(reversed=False)."""
+                       mydepgraph.altlist()
                        mydepgraph.display(
                                mydepgraph.altlist(reversed=("--tree" in myopts)))
                        mergecount=0