[edk2-devel] [edk2-staging/EdkRepo] [PATCH 7/7] EdkRepo: Add the ability to pull only the global manifest repository for a given workspace.

Ashley E Desimone posted 7 patches 5 years, 9 months ago
[edk2-devel] [edk2-staging/EdkRepo] [PATCH 7/7] EdkRepo: Add the ability to pull only the global manifest repository for a given workspace.
Posted by Ashley E Desimone 5 years, 9 months ago
Add pull_workspace_man_repo() to pull only the global manifest
repository affiliated with a single workspace.

Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
 .../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


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#58272): https://edk2.groups.io/g/devel/message/58272
Mute This Topic: https://groups.io/mt/73340194/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [edk2-staging/EdkRepo] [PATCH 7/7] EdkRepo: Add the ability to pull only the global manifest repository for a given workspace.
Posted by Nate DeSimone 5 years, 9 months ago
Hi Ashley,

Please see comments inline.

Thanks,
Nate

> -----Original Message-----
> From: Desimone, Ashley E <ashley.e.desimone@intel.com>
> Sent: Tuesday, April 28, 2020 2:57 PM
> To: devel@edk2.groups.io
> Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Pandya, Puja
> <puja.pandya@intel.com>; Bjorge, Erik C <erik.c.bjorge@intel.com>; Bret
> Barkelew <Bret.Barkelew@microsoft.com>; Agyeman, Prince
> <prince.agyeman@intel.com>
> Subject: [edk2-staging/EdkRepo] [PATCH 7/7] EdkRepo: Add the ability to
> pull only the global manifest repository for a given workspace.
> 
> Add pull_workspace_man_repo() to pull only the global manifest repository
> affiliated with a single workspace.
> 
> Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Puja Pandya <puja.pandya@intel.com>
> Cc: Erik Bjorge <erik.c.bjorge@intel.com>
> Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
> Cc: Prince Agyeman <prince.agyeman@intel.com>
> ---
>  .../manifest_repos_maintenance.py                  | 23
> ++++++++++++++++++++--
>  1 file changed, 21 insertions(+), 2 deletions(-)
> 
> diff --git
> a/edkrepo/common/workspace_maintenance/manifest_repos_maintenanc
> e.py
> b/edkrepo/common/workspace_maintenance/manifest_repos_maintenanc
> e.py
> index 7b3f866..7a7f946 100644
> ---
> a/edkrepo/common/workspace_maintenance/manifest_repos_maintenanc
> e.py
> +++
> b/edkrepo/common/workspace_maintenance/manifest_repos_maintenanc
> e.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.proje
> ct_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):

All the pre-existing EdkRepo code tends to spell out "manifest" please rename this function to "pull_workspace_man_repo()"

> +    '''
> +    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_r
> epo),
> +                                  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_m
> +an_repo))
> 
> 
> --
> 2.16.2.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#58478): https://edk2.groups.io/g/devel/message/58478
Mute This Topic: https://groups.io/mt/73340194/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-