egencache: skip metadata-transfer more often
authorZac Medico <zmedico@gentoo.org>
Sat, 8 Sep 2012 16:50:19 +0000 (09:50 -0700)
committerZac Medico <zmedico@gentoo.org>
Sat, 8 Sep 2012 16:50:19 +0000 (09:50 -0700)
bin/egencache

index 18ab45ddedf6001a3b0ad8e6ddf6c64045485e3b..1b4fa0cb81912728661d11403a0ff843536311fd 100755 (executable)
@@ -35,7 +35,6 @@ import portage
 from portage import os, _encodings, _unicode_encode, _unicode_decode
 from _emerge.MetadataRegen import MetadataRegen
 from portage.cache.cache_errors import CacheError, StatCollision
-from portage.cache.flat_hash import md5_database
 from portage.manifest import guessManifestFileType
 from portage.util import cmp_sort_key, writemsg_level
 from portage import cpv_getkey
@@ -887,8 +886,10 @@ def egencache_main(args):
                cache = repo_config.get_pregenerated_cache(
                        portage.dbapi.dbapi._known_keys, readonly=True)
                if cache is not None:
-                       if isinstance(cache, md5_database) and \
-                               os.path.isdir(cache.location):
+                       if cache.complete_eclass_entries:
+                               # If the portdbapi's pregenerated cache supports eclass
+                               # validation, then there's no need to forcibly enable
+                               # metadata-transfer.
                                metadata_transfer = False
                        cache = None