summaryrefslogtreecommitdiffstats
path: root/bin/repoman
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-10-26 18:06:07 +0000
committerZac Medico <zmedico@gentoo.org>2007-10-26 18:06:07 +0000
commit9915319b594ce940893a7449fec755b24ea73d50 (patch)
treecc15011bd9d41664b4d081bde60174867352dc3e /bin/repoman
parent33adea25f18c496592b4505a582bbb64af647eac (diff)
downloadportage-9915319b594ce940893a7449fec755b24ea73d50.tar.gz
portage-9915319b594ce940893a7449fec755b24ea73d50.tar.bz2
portage-9915319b594ce940893a7449fec755b24ea73d50.zip
Optimize repoman to share portdbapi.cp_list() results
between all profiles since those results never change. The cached results also propagate to the xmatch match-all when appropriate (old-style virtuals are excluded since they are profile dependent). svn path=/main/trunk/; revision=8313
Diffstat (limited to 'bin/repoman')
-rwxr-xr-xbin/repoman3
1 files changed, 3 insertions, 0 deletions
diff --git a/bin/repoman b/bin/repoman
index a57c30052..fec17e138 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -810,6 +810,8 @@ if isCvs:
dofail = 0
arch_caches={}
arch_xmatch_caches = {}
+shared_xmatch_caches = {"cp-list":{}}
+
for x in scanlist:
#ebuilds and digests added to cvs respectively.
logging.info("checking package %s" % x)
@@ -1430,6 +1432,7 @@ for x in scanlist:
portdb.melt()
portdb.freeze()
xcache = portdb.xcache
+ xcache.update(shared_xmatch_caches)
arch_xmatch_caches[xmatch_cache_key] = xcache
trees["/"]["porttree"].settings = dep_settings