From 6542c6325ff2dc047dd729aa18c0f27ca27cdc68 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 10 Oct 2006 11:03:25 +0000 Subject: Only unlink .installed after the collision-protect has completed successfully (reported by axxo). svn path=/main/trunk/; revision=4648 --- pym/portage.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'pym/portage.py') diff --git a/pym/portage.py b/pym/portage.py index b66486fb7..1aa41ae88 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -5978,17 +5978,6 @@ class dblink: # This blocks until we can get the dirs to ourselves. self.lockdb() - if os.stat(srcroot).st_dev == os.stat(destroot).st_dev: - """ The merge process may move files out of the image directory, - which causes invalidation of the .installed flag.""" - try: - os.unlink(os.path.join( - os.path.dirname(normalize_path(srcroot)), ".installed")) - except OSError, e: - if e.errno != errno.ENOENT: - raise - del e - otherversions=[] for v in self.vartree.dbapi.cp_list(self.mysplit[0]): otherversions.append(v.split("/")[1]) @@ -6078,6 +6067,16 @@ class dblink: except: pass + if os.stat(srcroot).st_dev == os.stat(destroot).st_dev: + """ The merge process may move files out of the image directory, + which causes invalidation of the .installed flag.""" + try: + os.unlink(os.path.join( + os.path.dirname(normalize_path(srcroot)), ".installed")) + except OSError, e: + if e.errno != errno.ENOENT: + raise + del e # get old contents info for later unmerging oldcontents = self.getcontents() -- cgit v1.2.3-1-g7c22