summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-06-13 05:40:40 +0000
committerZac Medico <zmedico@gentoo.org>2007-06-13 05:40:40 +0000
commitd5248c7ce0a5533d05f7c32505b766f9028792bf (patch)
treef194f950f0fb273f6f5b8faff8d58bab5c6a505c
parent508b26fefac889837c98557b2b2e1b43647b9714 (diff)
downloadportage-d5248c7ce0a5533d05f7c32505b766f9028792bf.tar.gz
portage-d5248c7ce0a5533d05f7c32505b766f9028792bf.tar.bz2
portage-d5248c7ce0a5533d05f7c32505b766f9028792bf.zip
Use cached dblink instances for collision-protect.
svn path=/main/trunk/; revision=6825
-rw-r--r--pym/portage/dbapi/vartree.py20
1 files changed, 3 insertions, 17 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index d1f46bc45..a8364e1d1 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -1363,7 +1363,7 @@ class dblink(object):
del preserve_paths
- def _collision_protect(self, srcroot, destroot, otherversions, mycontents, mysymlinks):
+ def _collision_protect(self, srcroot, destroot, mypkglist, mycontents, mysymlinks):
collision_ignore = set([normalize_path(myignore) for myignore in \
self.settings.get("COLLISION_IGNORE", "").split()])
@@ -1377,21 +1377,6 @@ class dblink(object):
stopmerge = False
i=0
-
- otherpkg=[]
- mypkglist=[]
-
- if self.pkg in otherversions:
- otherversions.remove(self.pkg) # we already checked this package
-
- myslot = self.settings["SLOT"]
- for v in otherversions:
- # only allow versions with same slot to overwrite files
- if myslot == self.vartree.dbapi.aux_get("/".join((self.cat, v)), ["SLOT"])[0]:
- mypkglist.append(
- dblink(self.cat, v, destroot, self.settings,
- vartree=self.vartree))
-
collisions = []
print green("*")+" checking "+str(len(mycontents))+" files for package collisions"
@@ -1604,7 +1589,8 @@ class dblink(object):
if mylinklist == None:
mylinklist = filter(os.path.islink, [os.path.join(srcroot, x) for x in listdir(srcroot, recursive=1, filesonly=0, followSymlinks=False)])
mylinklist = [x[len(srcroot):] for x in mylinklist]
- self._collision_protect(srcroot, destroot, otherversions, myfilelist+mylinklist, mylinklist)
+ self._collision_protect(srcroot, destroot, others_in_slot,
+ myfilelist+mylinklist, mylinklist)
if os.stat(srcroot).st_dev == os.stat(destroot).st_dev:
""" The merge process may move files out of the image directory,