Add a functions to check for conflicting or duplicated manifest repository definitions in the edkrepo.cfg and the edkrepo_user.cfg files. Two manifest repositories definitions are considered conflicting if they have the same name and at least one of URL, branch or local path differ. Two manifest repository definitions are considered duplicates if the name, URL, branch and local path are the same.
Signed-off-by: Ashley E Desimone <ashley.e.desim...@intel.com> Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> Cc: Puja Pandya <puja.pan...@intel.com> Cc: Erik Bjorge <erik.c.bjo...@intel.com> Cc: Bret Barkelew <bret.barke...@microsoft.com> Cc: Prince Agyeman <prince.agye...@intel.com> --- .../manifest_repos_maintenance.py | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py b/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py index 6e26d4f..ad6ddbc 100644 --- a/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py +++ b/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py @@ -57,3 +57,28 @@ def pull_single_manifest_repo(url, branch, local_path, reset_hard=False): print (humble.CLONE_SINGLE_MAN_REPO.format(local_path, url)) repo = Repo.clone_from(url, local_path, progress=GitProgressHandler(), branch=branch) +def detect_man_repo_conflicts_duplicates(edkrepo_cfg, edkrepo_user_cfg): + ''' + Determines whether there is are conflicting or duplicated manifest + repositories listed in the edkrepo.cfg and the edkrepo_user.cfg. + ''' + conflicts = [] + duplicates = [] + if not edkrepo_user_cfg.manifest_repo_list: + return conflicts, duplicates + else: + config_repos = set(edkrepo_cfg.manifest_repo_list) + user_cfg_repos = set(edkrepo_user_cfg.manifest_repo_list) + if config_repos.isdisjoint(user_cfg_repos): + return conflicts, duplicates + else: + for repo in config_repos.intersection(user_cfg_repos): + if edkrepo_cfg.get_manifest_repo_url(repo) != edkrepo_user_cfg.get_manifest_repo_url(repo): + conflicts.append(repo) + elif edkrepo_cfg.get_manifest_repo_branch(repo) != edkrepo_user_cfg.get_manifest_repo_branch(repo): + conflicts.append(repo) + elif edkrepo_cfg.get_manifest_repo_local_path(repo) != edkrepo_user_cfg.get_manifest_repo_local_path(repo): + conflicts.append(repo) + else: + duplicates.append(repo) + return conflicts, duplicates -- 2.16.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#58489): https://edk2.groups.io/g/devel/message/58489 Mute This Topic: https://groups.io/mt/73391733/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-