summaryrefslogtreecommitdiffstats
path: root/bin/repoman
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-11-02 06:25:08 +0000
committerZac Medico <zmedico@gentoo.org>2007-11-02 06:25:08 +0000
commitc65e25b59f39ef07615374ee3bbbba2d14691254 (patch)
treecce164e9e04dc4396a8c2934d78766dfeb428527 /bin/repoman
parent9c885277a8170524aaafb5a02db227417c9e30e8 (diff)
downloadportage-c65e25b59f39ef07615374ee3bbbba2d14691254.tar.gz
portage-c65e25b59f39ef07615374ee3bbbba2d14691254.tar.bz2
portage-c65e25b59f39ef07615374ee3bbbba2d14691254.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). (trunk r8313) svn path=/main/branches/2.1.2/; revision=8368
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 9579903c5..499e4f720 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -889,6 +889,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.
if verbose:
@@ -1567,6 +1569,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