From: Zac Medico Date: Fri, 22 Sep 2006 09:55:27 +0000 (-0000) Subject: Revert r4495, since conversion from nomerge to merge may put the depgraph into an... X-Git-Tag: v2.1.1-r1~39 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=f98d48b871f7edac527f8d8b59bbe6aacaf7a069;p=portage.git Revert r4495, since conversion from nomerge to merge may put the depgraph into an inconsistent state du to USE flag mismatch. This can be solved by checking all args prior to marking packages as nomerge. svn path=/main/trunk/; revision=4496 --- diff --git a/bin/emerge b/bin/emerge index a8af02919..afd107080 100755 --- a/bin/emerge +++ b/bin/emerge @@ -717,12 +717,13 @@ class depgraph: return 1 jbigkey = " ".join(mybigkey) + " nomerge" if self.digraph.hasnode(jbigkey): + """XXX: It's possible that this package has been explicitly + requested as a command line argument. This can be solved by + checking all args prior to marking packages as nomerge""" if rev_dep and myparent: self.digraph.addnode(myparent, jbigkey, soft_dep=soft_dep) else: self.digraph.addnode(jbigkey, myparent, soft_dep=soft_dep) - if arg: - self.digraph.replace(jbigkey, " ".join(mybigkey) + " merge") return 1 self.spinner.update() diff --git a/pym/portage.py b/pym/portage.py index a97c50171..104f1a279 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -364,32 +364,6 @@ class digraph: del self.nodes[node] self.order.remove(node) - def replace(self, oldnode, newnode): - """Replace all references to oldnode with references to newnode. - This is useful for upgrading a "nomerge" node to a "merge" node. - - @return: - 1. None on success. - 2. Raise a KeyError if oldnode does not exist. - 3. Raise a ValueError if newnode already exists. - """ - if not self.contains(oldnode): - raise KeyError(oldnode) - if oldnode == newnode: - return - if newnode in self.nodes: - raise ValueError(newnode) - for parent in self.nodes[oldnode][1]: - self.nodes[parent][0][newnode] = self.nodes[parent][0][oldnode] - del self.nodes[parent][0][oldnode] - for child in self.nodes[oldnode][0]: - self.nodes[child][1][newnode] = self.nodes[child][1][oldnode] - del self.nodes[child][1][oldnode] - self.nodes[newnode] = self.nodes[oldnode] - del self.nodes[oldnode] - oldindex = self.order.index(oldnode) - self.order[oldindex] = newnode - def contains(self, node): """Checks if the digraph contains mynode""" return node in self.nodes