From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com []) by mx.groups.io with SMTP id smtpd.web11.4932.1588309989257688147 for ; Thu, 30 Apr 2020 22:13:10 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=fail (domain: intel.com, ip: , mailfrom: ashley.e.desimone@intel.com) IronPort-SDR: iUFxk8b66Lt7U5ksV9FB17O1qW28Q4cc7P1UFu1Sk+uz9MLa83UHxo5xFpX9YFit/mAmiRFrxF 0qE5ocHeu7qw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2020 22:13:08 -0700 IronPort-SDR: YLPQ5pKcggjEHn8XAFhYLOGqk7eX1o2eFfXH18t/kd7EG/DkI8LZmqFOamLHA6LHpyBkygEaMY pIc66Xj7SJoA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,338,1583222400"; d="scan'208";a="283096093" Received: from aedesimo-desk.amr.corp.intel.com ([10.212.210.118]) by fmsmga004.fm.intel.com with ESMTP; 30 Apr 2020 22:12:49 -0700 From: "Ashley E Desimone" To: devel@edk2.groups.io Cc: Nate DeSimone , Puja Pandya , Erik Bjorge , Bret Barkelew , Prince Agyeman Subject: [edk2-staging/EdkRepo] [PATCH V2 7/8] EdkRepo: Add the ability to pull only the global manifest repository for a given workspace. Date: Thu, 30 Apr 2020 22:12:38 -0700 Message-Id: <20200501051239.13976-8-ashley.e.desimone@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 In-Reply-To: <20200501051239.13976-1-ashley.e.desimone@intel.com> References: <20200501051239.13976-1-ashley.e.desimone@intel.com> Add pull_workspace_man_repo() to pull only the global manifest repository affiliated with a single workspace. Signed-off-by: Ashley E Desimone Cc: Nate DeSimone Cc: Puja Pandya Cc: Erik Bjorge Cc: Bret Barkelew Cc: Prince Agyeman --- .../manifest_repos_maintenance.py | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py b/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py index 7b3f866..7a7f946 100644 --- a/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py +++ b/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py @@ -199,7 +199,7 @@ def find_project_in_all_indices (project, edkrepo_cfg, edkrepo_user_cfg, except_ return repo, 'edkrepo_user_cfg', os.path.join(dirpath, project) -def find_source_man_repo (project_manifest, edkrepo_cfg, edkrepo_user_cfg): +def find_source_man_repo(project_manifest, edkrepo_cfg, edkrepo_user_cfg, man_repo=None): ''' Finds the source manifest repo for a given project. ''' @@ -213,6 +213,25 @@ def find_source_man_repo (project_manifest, edkrepo_cfg, edkrepo_user_cfg): humble.SOURCE_MAN_REPO_NOT_FOUND.format(project_manifest.project_info.codename), man_repo=None) project_manifest.write_source_manifest_repo(src_man_repo) - return src_man_repo + return src_man_repo + +def pull_workspace_man_repo(project_manifest, edkrepo_cfg, edkrepo_user_cfg, man_repo=None, reset_hard=False): + ''' + Pulls only the global manifest repo for the current workspace. + ''' + src_man_repo = find_source_man_repo(project_manifest, edkrepo_cfg, edkrepo_user_cfg, man_repo) + config_repos, user_config_repos, conflicts = list_available_man_repos(edkrepo_cfg, edkrepo_user_cfg) + if src_man_repo in config_repos: + pull_single_manifest_repo(edkrepo_cfg.get_manifest_repo_url(src_man_repo), + edkrepo_cfg.get_manifest_repo_branch(src_man_repo), + edkrepo_cfg.get_manifest_repo_local_path(src_man_repo), + reset_hard) + elif src_man_repo in user_config_repos: + pull_single_manifest_repo(edkrepo_user_cfg.get_manifest_repo_url(src_man_repo), + edkrepo_user_cfg.get_manifest_repo_branch(src_man_repo), + edkrepo_user_cfg.get_manifest_repo_local_path(src_man_repo), + reset_hard) + elif src_man_repo in conflicts: + raise EdkrepoInvalidParametersException(humble.CONFLICT_NO_CLONE.format(src_man_repo)) -- 2.16.2.windows.1