From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id B6EC11381FA for ; Tue, 3 Jun 2014 19:33:09 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B6CF2E0874; Tue, 3 Jun 2014 19:33:08 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 20619E0874 for ; Tue, 3 Jun 2014 19:33:08 +0000 (UTC) Received: from spoonbill.gentoo.org (spoonbill.gentoo.org [81.93.255.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 2389D33FDBA for ; Tue, 3 Jun 2014 19:33:07 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by spoonbill.gentoo.org (Postfix) with ESMTP id 629FB182D5 for ; Tue, 3 Jun 2014 19:33:05 +0000 (UTC) From: "Brian Dolbec" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Brian Dolbec" Message-ID: <1401823938.1005c1b750558ed3e13cb82f0985b1f1294ba24c.dol-sen@gentoo> Subject: [gentoo-commits] proj/portage:repoman commit in: pym/repoman/ X-VCS-Repository: proj/portage X-VCS-Files: pym/repoman/main.py X-VCS-Directories: pym/repoman/ X-VCS-Committer: dol-sen X-VCS-Committer-Name: Brian Dolbec X-VCS-Revision: 1005c1b750558ed3e13cb82f0985b1f1294ba24c X-VCS-Branch: repoman Date: Tue, 3 Jun 2014 19:33:05 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 81b0aaee-2c42-4f61-af59-55e6aefafad5 X-Archives-Hash: f9426261d4453fa80fa0578748b62815 commit: 1005c1b750558ed3e13cb82f0985b1f1294ba24c Author: Brian Dolbec gentoo org> AuthorDate: Tue Jun 3 19:32:18 2014 +0000 Commit: Brian Dolbec gmail com> CommitDate: Tue Jun 3 19:32:18 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=1005c1b7 repoman/main.py: Move the check class instantiations out of the xpkg loop This should help reduce overall run time when doing large repoman full runs. It instead re-uses the class instances for each pkg checked. --- pym/repoman/main.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/pym/repoman/main.py b/pym/repoman/main.py index 37319a3..b347369 100755 --- a/pym/repoman/main.py +++ b/pym/repoman/main.py @@ -263,6 +263,19 @@ if options.if_modified == "y": chain(changed.changed, changed.new, changed.removed), repolevel, reposplit, categories)) +####### initialize our checks classes here before the big xpkg loop +manifester = Manifests(options, qatracker, repoman_settings) +is_ebuild = IsEbuild(repoman_settings, repo_settings, portdb, qatracker) +filescheck = FileChecks(qatracker, repoman_settings, repo_settings, portdb, + vcs_settings) +status_check = VCSStatus(vcs_settings, qatracker) +fetchcheck = FetchChecks(qatracker, repoman_settings, repo_settings, portdb, + vcs_settings) +pkgmeta = PkgMetadata(options, qatracker, repoman_settings) +thirdparty = ThirdPartyMirrors(repoman_settings, qatracker) +use_flag_checks = USEFlagChecks(qatracker, uselist) + + for xpkg in effective_scanlist: # ebuilds and digests added to cvs respectively. logging.info("checking package %s" % xpkg) @@ -279,7 +292,6 @@ for xpkg in effective_scanlist: checkdir_relative = os.path.join(".", checkdir_relative) ##################### - manifester = Manifests(options, qatracker, repoman_settings) if manifester.run(checkdir, portdb): continue if not manifester.generated_manifest: @@ -292,7 +304,6 @@ for xpkg in effective_scanlist: checkdirlist = os.listdir(checkdir) ###################### - is_ebuild = IsEbuild(repoman_settings, repo_settings, portdb, qatracker) pkgs, allvalid = is_ebuild.check(checkdirlist, checkdir, xpkg) if is_ebuild.continue_: # If we can't access all the metadata then it's totally unsafe to @@ -310,26 +321,20 @@ for xpkg in effective_scanlist: ebuildlist = sorted(pkgs.values()) ebuildlist = [pkg.pf for pkg in ebuildlist] ####################### - filescheck = FileChecks(qatracker, repoman_settings, repo_settings, portdb, - vcs_settings) filescheck.check(checkdir, checkdirlist, checkdir_relative, changed.changed, changed.new) ####################### - status_check = VCSStatus(vcs_settings, qatracker) status_check.check(check_ebuild_notadded, checkdir, checkdir_relative, xpkg) eadded.extend(status_check.eadded) ################# - fetchcheck = FetchChecks(qatracker, repoman_settings, repo_settings, portdb, - vcs_settings) fetchcheck.check(xpkg, checkdir, checkdir_relative, changed.changed, changed.new) ################# if check_changelog and "ChangeLog" not in checkdirlist: qatracker.add_error("changelog.missing", xpkg + "/ChangeLog") ################# - pkgmeta = PkgMetadata(options, qatracker, repolevel, repoman_settings) - pkgmeta.check(xpkg, checkdir, checkdirlist) + pkgmeta.check(xpkg, checkdir, checkdirlist, repolevel) muselist = frozenset(pkgmeta.musedict) ################# @@ -387,7 +392,6 @@ for xpkg in effective_scanlist: if not fetchcheck.src_uri_error: ####################### - thirdparty = ThirdPartyMirrors(repoman_settings, qatracker) thirdparty.check(myaux, ebuild.relative_path) ####################### if myaux.get("PROVIDE"): @@ -616,7 +620,6 @@ for xpkg in effective_scanlist: badprovsyntax = badprovsyntax > 0 ################# - use_flag_checks = USEFlagChecks(qatracker, uselist) use_flag_checks.check(pkg, xpkg, ebuild, y_ebuild, muselist) ebuild_used_useflags = use_flag_checks.getUsedUseFlags()