summaryrefslogtreecommitdiffstats
path: root/pym/cache
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-02-03 12:05:01 +0000
committerZac Medico <zmedico@gentoo.org>2007-02-03 12:05:01 +0000
commit1d2947b922b8566589f33683b020a5a6b9fba31f (patch)
tree6ae040368310d8d18ad2bb286da6140a01311db1 /pym/cache
parentc9e632d62383d028f5277456fec0c5079ed8ffb8 (diff)
downloadportage-1d2947b922b8566589f33683b020a5a6b9fba31f.tar.gz
portage-1d2947b922b8566589f33683b020a5a6b9fba31f.tar.bz2
portage-1d2947b922b8566589f33683b020a5a6b9fba31f.zip
In order to correctly handl the case of target caches that don't have complete eclass entries, validate the set of interited eclasses to make sure it is correct (since timestamp validation is not applicable). (trunk r5880)
svn path=/main/branches/2.1.2/; revision=5881
Diffstat (limited to 'pym/cache')
-rw-r--r--pym/cache/util.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/pym/cache/util.py b/pym/cache/util.py
index 6393deef5..ac09c132c 100644
--- a/pym/cache/util.py
+++ b/pym/cache/util.py
@@ -39,7 +39,9 @@ def mirror_cache(valid_nodes_iterable, src_cache, trg_cache, eclass_cache=None,
trg = None
try:
trg = trg_cache[x]
- if long(trg["_mtime_"]) == long(entry["_mtime_"]) and eclass_cache.is_eclass_data_valid(trg["_eclasses_"]):
+ if long(trg["_mtime_"]) == long(entry["_mtime_"]) and \
+ eclass_cache.is_eclass_data_valid(trg["_eclasses_"]) and \
+ set(trg["_eclasses_"]) == set(entry["_eclasses_"]):
write_it = False
except (cache_errors.CacheError, KeyError):
pass