self.updateprotect = protect_obj.updateprotect
self.isprotected = protect_obj.isprotected
self.contentscache=[]
+ self._contents_inodes = None
def lockdb(self):
if self.lock_num == 0:
(for this or a previous version)"""
destfile = normalize_path(
os.path.join(destroot, filename.lstrip(os.path.sep)))
- if not os.path.exists(destfile):
+ try:
+ mylstat = os.lstat(destfile)
+ except OSError:
return True
+
pkgfiles = self.getcontents()
if pkgfiles and filename in pkgfiles:
return True
+ if pkgfiles:
+ if self._contents_inodes is None:
+ self._contents_inodes = set()
+ for x in pkgfiles:
+ try:
+ lstat = os.lstat(x)
+ self._contents_inodes.add((lstat.st_dev, lstat.st_ino))
+ except OSError:
+ pass
+ if (mylstat.st_dev, mylstat.st_ino) in self._contents_inodes:
+ return True
return False