From 2c1ea6faef52448d0836f070997d5d20f0b53103 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 29 Oct 2011 16:10:13 -0700 Subject: cache/template.__getitem__: filter INHERITED Never return INHERITED, since portdbapi.aux_get() will generate it automatically from _eclasses_, and we want to omit it in comparisons between cache entries like those that egencache uses to avoid redundant writes (see commit 0e120da008c9d0d41c9372c81145c6e153028a6d). --- pym/portage/cache/metadata.py | 1 - pym/portage/cache/template.py | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pym/portage/cache/metadata.py b/pym/portage/cache/metadata.py index 07ec20ebc..9d2c3a5d7 100644 --- a/pym/portage/cache/metadata.py +++ b/pym/portage/cache/metadata.py @@ -72,7 +72,6 @@ class database(flat_hash.database): except KeyError as e: # INHERITED contains a non-existent eclass. raise cache_errors.CacheCorruption(cpv, e) - del d["INHERITED"] else: d["_eclasses_"] = {} elif isinstance(d["_eclasses_"], basestring): diff --git a/pym/portage/cache/template.py b/pym/portage/cache/template.py index 515ba022b..0af6c20ca 100644 --- a/pym/portage/cache/template.py +++ b/pym/portage/cache/template.py @@ -47,6 +47,11 @@ class database(object): self.validation_chf, paths=self.store_eclass_paths) elif "_eclasses_" not in d: d["_eclasses_"] = {} + # Never return INHERITED, since portdbapi.aux_get() will + # generate it automatically from _eclasses_, and we want + # to omit it in comparisons between cache entries like + # those that egencache uses to avoid redundant writes. + d.pop("INHERITED", None) mtime = d.get('_mtime_') if mtime is None: raise cache_errors.CacheCorruption(cpv, -- cgit v1.2.3-1-g7c22