public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support
@ 2020-05-11  0:50 Ashley E Desimone
  2020-05-11  0:50 ` [edk2-stagin/EdkRepo] [PATCH 1/4] EdkRepo: Update sync to support multiple manifest repositories Ashley E Desimone
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Ashley E Desimone @ 2020-05-11  0:50 UTC (permalink / raw)
  To: devel
  Cc: Nate DeSimone, Puja Pandya, Erik Bjorge, Bret Barkelew,
	Prince Agyeman

Finalize integration of multiple manifest repository
support. By adding support to remaining commands and
by removing support for the Manifest-Repo section of
the edkrepo.cfg file.

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>

Ashley E Desimone (4):
  EdkRepo: Update sync to support multiple manifest repositories
  EdkRepo: Remove unused functions from common_repo_functions.py
  EdkRepo: Add support for multiple manifest repostories to command
    completions
  EdkRepo: Remove support for deprecated Manifest-Repo content in
    edkrepo.cfg

 edkrepo/command_completion_edkrepo.py   | 48 ++++++++++++-------
 edkrepo/commands/clone_command.py       |  3 +-
 edkrepo/commands/manifest_command.py    |  2 +-
 edkrepo/commands/sync_command.py        | 42 +++++++++-------
 edkrepo/common/common_repo_functions.py | 85 +++++++++++----------------------
 edkrepo/common/humble.py                |  4 +-
 edkrepo/config/config_factory.py        | 12 +----
 edkrepo_installer/Vendor/edkrepo.cfg    |  5 --
 edkrepo_manifest_parser/edk_manifest.py | 42 ++++++++++++----
 9 files changed, 124 insertions(+), 119 deletions(-)

-- 
2.16.2.windows.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [edk2-stagin/EdkRepo] [PATCH 1/4] EdkRepo: Update sync to support multiple manifest repositories
  2020-05-11  0:50 [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support Ashley E Desimone
@ 2020-05-11  0:50 ` Ashley E Desimone
  2020-05-11  0:50 ` [edk2-staing/EdkRepo] [PATCH 2/4] EdkRepo: Remove unused functions from common_repo_functions.py Ashley E Desimone
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Ashley E Desimone @ 2020-05-11  0:50 UTC (permalink / raw)
  To: devel
  Cc: Nate DeSimone, Puja Pandya, Erik Bjorge, Bret Barkelew,
	Prince Agyeman

Update the sync command to only update the global manifest repository
that the workspace is based on and to only check the source manfiest
repository for manifest updates.

Update the manifest parser to ignore the 'SourceManifestRepository'
field when conducting an equality operation.

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>
---
 edkrepo/commands/sync_command.py        | 36 +++++++++++++++++-----------
 edkrepo_manifest_parser/edk_manifest.py | 42 +++++++++++++++++++++++++--------
 2 files changed, 54 insertions(+), 24 deletions(-)

diff --git a/edkrepo/commands/sync_command.py b/edkrepo/commands/sync_command.py
index 82f5247..d1db4f1 100644
--- a/edkrepo/commands/sync_command.py
+++ b/edkrepo/commands/sync_command.py
@@ -18,7 +18,7 @@ from git import Repo
 
 # Our modules
 from edkrepo.commands.edkrepo_command import EdkrepoCommand
-from edkrepo.commands.edkrepo_command import DryRunArgument, SubmoduleSkipArgument
+from edkrepo.commands.edkrepo_command import DryRunArgument, SubmoduleSkipArgument, SourceManifestRepoArgument
 import edkrepo.commands.arguments.sync_args as arguments
 from edkrepo.common.progress_handler import GitProgressHandler
 from edkrepo.common.edkrepo_exception import EdkrepoUncommitedChangesException, EdkrepoManifestNotFoundException
@@ -32,8 +32,8 @@ from edkrepo.common.humble import MIRROR_BEHIND_PRIMARY_REPO, SYNC_NEEDS_REBASE,
 from edkrepo.common.humble import SYNC_BRANCH_CHANGE_ON_LOCAL, SYNC_INCOMPATIBLE_COMBO
 from edkrepo.common.humble import SYNC_REBASE_CALC_FAIL
 from edkrepo.common.pathfix import get_actual_path
-from edkrepo.common.common_repo_functions import pull_latest_manifest_repo, clone_repos, sparse_checkout_enabled
-from edkrepo.common.common_repo_functions import reset_sparse_checkout, sparse_checkout, verify_manifest_data
+from edkrepo.common.common_repo_functions import clone_repos, sparse_checkout_enabled
+from edkrepo.common.common_repo_functions import reset_sparse_checkout, sparse_checkout, verify_single_manifest
 from edkrepo.common.common_repo_functions import checkout_repos, check_dirty_repos
 from edkrepo.common.common_repo_functions import update_editor_config
 from edkrepo.common.common_repo_functions import update_repo_commit_template, get_latest_sha
@@ -41,8 +41,12 @@ from edkrepo.common.common_repo_functions import has_primary_repo_remote, fetch_
 from edkrepo.common.common_repo_functions import update_hooks, maintain_submodules, combinations_in_manifest
 from edkrepo.common.common_repo_functions import write_included_config, remove_included_config
 from edkrepo.common.workspace_maintenance.workspace_maintenance import generate_name_for_obsolete_backup
+from edkrepo.common.workspace_maintenance.manifest_repos_maintenance import pull_workspace_manifest_repo
+from edkrepo.common.workspace_maintenance.manifest_repos_maintenance import find_source_manifest_repo
+from edkrepo.common.workspace_maintenance.manifest_repos_maintenance import list_available_manifest_repos
 from edkrepo.common.ui_functions import init_color_console
 from edkrepo.config.config_factory import get_workspace_path, get_workspace_manifest, get_edkrepo_global_data_directory
+from edkrepo.config.config_factory import get_workspace_manifest_file
 from edkrepo_manifest_parser.edk_manifest import CiIndexXml, ManifestXml
 
 
@@ -71,23 +75,30 @@ class SyncCommand(EdkrepoCommand):
                      'required' : False,
                      'help-text' : arguments.OVERRIDE_HELP})
         args.append(SubmoduleSkipArgument)
+        args.append(SourceManifestRepoArgument)
         return metadata
 
     def run_command(self, args, config):
         update_editor_config(config)
+
         workspace_path = get_workspace_path()
         initial_manifest = get_workspace_manifest()
         current_combo = initial_manifest.general_config.current_combo
         initial_sources = initial_manifest.get_repo_sources(current_combo)
         initial_hooks = initial_manifest.repo_hooks
 
-        pull_latest_manifest_repo(args, config)
+        source_global_manifest_repo = find_source_manifest_repo(initial_manifest, config['cfg_file'], config['user_cfg_file'], args.source_manifest_repo)
+        pull_workspace_manifest_repo(initial_manifest, config['cfg_file'], config['user_cfg_file'], args.source_manifest_repo, False)
+        cfg_manifest_repos, user_cfg_manifest_repos, conflicts = list_available_manifest_repos(config['cfg_file'], config['user_cfg_file'])
+        if source_global_manifest_repo in cfg_manifest_repos:
+            global_manifest_directory = config['cfg_file'].manifest_repo_abs_path(source_global_manifest_repo)
+            verify_single_manifest(config['cfg_file'], source_global_manifest_repo, get_workspace_manifest_file(), args.verbose)
+        elif source_global_manifest_repo in user_cfg_manifest_repos:
+            global_manifest_directory = config['user_cfg_file'].manifest_repo_abs_path(source_global_manifest_repo)
+            verify_single_manifest(config['user_cfg_file'], source_global_manifest_repo, get_workspace_manifest_file(), args.verbose)
 
-        # Verify that the latest version of the manifest in the global manifest repository is not broken
-        global_manifest_directory = config['cfg_file'].manifest_repo_abs_local_path
-        verify_manifest_data(global_manifest_directory, config, verbose=args.verbose, verify_proj=initial_manifest.project_info.codename)
         if not args.update_local_manifest:
-            self.__check_for_new_manifest(args, config, initial_manifest, workspace_path)
+            self.__check_for_new_manifest(args, config, initial_manifest, workspace_path, global_manifest_directory)
         check_dirty_repos(initial_manifest, workspace_path)
         # Determine if sparse checkout needs to be disabled for this operation
         sparse_settings = initial_manifest.sparse_settings
@@ -103,7 +114,7 @@ class SyncCommand(EdkrepoCommand):
 
         # Get the latest manifest if requested
         if args.update_local_manifest: #NOTE: hyphens in arg name replaced with underscores due to argparse
-            self.__update_local_manifest(args, config, initial_manifest, workspace_path)
+            self.__update_local_manifest(args, config, initial_manifest, workspace_path, global_manifest_directory)
         manifest = get_workspace_manifest()
         if args.update_local_manifest:
             try:
@@ -199,7 +210,7 @@ class SyncCommand(EdkrepoCommand):
             print(SPARSE_CHECKOUT)
             sparse_checkout(workspace_path, repo_sources_to_sync, manifest)
 
-    def __update_local_manifest(self, args, config, initial_manifest, workspace_path):
+    def __update_local_manifest(self, args, config, initial_manifest, workspace_path, global_manifest_directory):
         local_manifest_dir = os.path.join(workspace_path, 'repo')
         current_combo = initial_manifest.general_config.current_combo
         initial_sources = initial_manifest.get_repo_sources(current_combo)
@@ -210,8 +221,6 @@ class SyncCommand(EdkrepoCommand):
             origin = repo.remotes.origin
             origin.fetch()
 
-        global_manifest_directory = config['cfg_file'].manifest_repo_abs_local_path
-
         #see if there is an entry in CiIndex.xml that matches the prject name of the current manifest
         index_path = os.path.join(global_manifest_directory, 'CiIndex.xml')
         ci_index_xml = CiIndexXml(index_path)
@@ -364,8 +373,7 @@ class SyncCommand(EdkrepoCommand):
                         break
         return repos_to_checkout
 
-    def __check_for_new_manifest(self, args, config, initial_manifest, workspace_path):
-        global_manifest_directory = config['cfg_file'].manifest_repo_abs_local_path
+    def __check_for_new_manifest(self, args, config, initial_manifest, workspace_path, global_manifest_directory):
         #see if there is an entry in CiIndex.xml that matches the prject name of the current manifest
         index_path = os.path.join(global_manifest_directory, 'CiIndex.xml')
         ci_index_xml = CiIndexXml(index_path)
diff --git a/edkrepo_manifest_parser/edk_manifest.py b/edkrepo_manifest_parser/edk_manifest.py
index 69583b1..1e2b111 100644
--- a/edkrepo_manifest_parser/edk_manifest.py
+++ b/edkrepo_manifest_parser/edk_manifest.py
@@ -425,6 +425,7 @@ class ManifestXml(BaseXmlHelper):
         element = subroot.find('SourceManifestRepository')
         if element is None:
             element = ET.SubElement(subroot, 'SourceManifestRepository')
+            element.tail = '\n'
         element.attrib['manifest_repo'] = manifest_repo
         self._tree.write(filename)
         self.__general_config.source_manifest_repo = manifest_repo
@@ -549,7 +550,16 @@ class ManifestXml(BaseXmlHelper):
         if element1.text != element2.text:
             return False
         if element1.tail != element2.tail:
-            return False
+            if element1.tail is not None:
+                tail1 = element1.tail.strip()
+            else:
+                tail1 = ''
+            if element2.tail is not None:
+                tail2 = element2.tail.strip()
+            else:
+                tail2 = ''
+            if tail1 != tail2:
+                return False
         if element1.attrib != element2.attrib:
             return False
         if len(element1) != len(element2):
@@ -558,25 +568,37 @@ class ManifestXml(BaseXmlHelper):
 
     def equals(self, other, ignore_current_combo=False):
         status = self._compare_elements(self._tree.getroot(), other._tree.getroot())
-        if not status and ignore_current_combo:
+        if not status:
             tree1 = copy.deepcopy(self._tree.getroot())
             tree2 = copy.deepcopy(other._tree.getroot())
             subroot = tree1.find('GeneralConfig')
             if subroot is None:
                 return False
-            element = subroot.find('CurrentClonedCombo')
+            if ignore_current_combo:
+                element = subroot.find('CurrentClonedCombo')
+                if element is None:
+                    element = ET.SubElement(subroot, 'CurrentClonedCombo')
+                    element.tail = '\n'
+                element.attrib['combination'] = ''
+            element = subroot.find('SourceManifestRepository')
             if element is None:
-                element = ET.SubElement(subroot, 'CurrentClonedCombo')
-                element.tail = '\n'
-            element.attrib['combination'] = ''
+                element = ET.SubElement(subroot, 'SourceManifestRepository')
+                element.tail ='\n'
+            element.attrib['manifest_repo'] = ''
             subroot = tree2.find('GeneralConfig')
             if subroot is None:
                 return False
-            element = subroot.find('CurrentClonedCombo')
+            if ignore_current_combo:
+                element = subroot.find('CurrentClonedCombo')
+                if element is None:
+                    element = ET.SubElement(subroot, 'CurrentClonedCombo')
+                    element.tail = '\n'
+                element.attrib['combination'] = ''
+            element = subroot.find('SourceManifestRepository')
             if element is None:
-                element = ET.SubElement(subroot, 'CurrentClonedCombo')
-                element.tail = '\n'
-            element.attrib['combination'] = ''
+                element = ET.SubElement(subroot, 'SourceManifestRepository')
+                element.tail ='\n'
+            element.attrib['manifest_repo'] = ''
             status = self._compare_elements(tree1, tree2)
         return status
 
-- 
2.16.2.windows.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [edk2-staing/EdkRepo] [PATCH 2/4] EdkRepo: Remove unused functions from common_repo_functions.py
  2020-05-11  0:50 [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support Ashley E Desimone
  2020-05-11  0:50 ` [edk2-stagin/EdkRepo] [PATCH 1/4] EdkRepo: Update sync to support multiple manifest repositories Ashley E Desimone
@ 2020-05-11  0:50 ` Ashley E Desimone
  2020-05-11  0:50 ` [edk2-staging/EdkRepo] [PATCH 3/4] EdkRepo: Add support for multiple manifest repostories to command completions Ashley E Desimone
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Ashley E Desimone @ 2020-05-11  0:50 UTC (permalink / raw)
  To: devel
  Cc: Nate DeSimone, Puja Pandya, Erik Bjorge, Bret Barkelew,
	Prince Agyeman

Remove unused functions from common_repo_functions.py and remove
any remaining imports of them.

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>
---
 edkrepo/commands/manifest_command.py    |  2 +-
 edkrepo/common/common_repo_functions.py | 40 ---------------------------------
 edkrepo/common/humble.py                |  4 ++--
 3 files changed, 3 insertions(+), 43 deletions(-)

diff --git a/edkrepo/commands/manifest_command.py b/edkrepo/commands/manifest_command.py
index bb6252d..5c6184f 100644
--- a/edkrepo/commands/manifest_command.py
+++ b/edkrepo/commands/manifest_command.py
@@ -16,7 +16,7 @@ from edkrepo.commands.edkrepo_command import EdkrepoCommand
 from edkrepo.commands.edkrepo_command import ColorArgument
 import edkrepo.commands.arguments.manifest_args as arguments
 from edkrepo.common.edkrepo_exception import EdkrepoWorkspaceInvalidException, EdkrepoManifestNotFoundException
-from edkrepo.common.common_repo_functions import pull_latest_manifest_repo, validate_manifest_repo
+from edkrepo.common.common_repo_functions import validate_manifest_repo
 from edkrepo.common.ui_functions import init_color_console
 from edkrepo.common.workspace_maintenance.manifest_repos_maintenance import list_available_manifest_repos
 from edkrepo.common.workspace_maintenance.manifest_repos_maintenance import pull_all_manifest_repos
diff --git a/edkrepo/common/common_repo_functions.py b/edkrepo/common/common_repo_functions.py
index eb6c4c0..5ec834b 100644
--- a/edkrepo/common/common_repo_functions.py
+++ b/edkrepo/common/common_repo_functions.py
@@ -73,14 +73,6 @@ CLEAR_LINE = '\x1b[K'
 DEFAULT_REMOTE_NAME = 'origin'
 PRIMARY_REMOTE_NAME = 'primary'
 
-def pull_latest_manifest_repo(args, config, reset_hard=False):
-    repo_url = config['cfg_file'].manifest_repo_url
-    branch = config['cfg_file'].manifest_repo_branch
-    local_path = config['cfg_file'].manifest_repo_local_path
-    init_color_console(False)
-    pull_single_manifest_repo(repo_url, branch, local_path, reset_hard)
-
-
 def clone_repos(args, workspace_dir, repos_to_clone, project_client_side_hooks, config, skip_submodule, manifest):
     for repo_to_clone in repos_to_clone:
         local_repo_path = os.path.join(workspace_dir, repo_to_clone.root)
@@ -395,38 +387,6 @@ def checkout_repos(verbose, override, repos_to_checkout, workspace_path, manifes
         if repo_to_checkout.enable_submodule:
             maintain_submodules(repo_to_checkout, repo, verbose)
 
-def verify_manifest_data(global_manifest_directory, config, verbose=False, verify_all=False, verify_proj=None, verify_archived=False):
-    # Validate the project individual project selected
-    if verify_proj:
-        print(VERIFY_PROJ.format(verify_proj))
-        ci_index_path = os.path.join(config['cfg_file'].manifest_repo_abs_local_path, 'CiIndex.xml')
-        ci_index = CiIndexXml(ci_index_path)
-        try:
-            proj_path = find_project_in_index(verify_proj, ci_index, config['cfg_file'].manifest_repo_abs_local_path, VERIFY_PROJ_NOT_IN_INDEX.format(verify_proj))
-        except EdkrepoInvalidParametersException:
-            raise
-        if proj_path:
-            proj_val_data = validate_manifestfiles([proj_path])
-            proj_val_error = get_manifest_validation_status(proj_val_data)
-            if proj_val_error:
-                if verbose:
-                    print_manifest_errors(proj_val_data)
-                raise EdkrepoManifestInvalidException(VERIFY_PROJ_FAIL.format(verify_proj))
-
-    # Validate the entire global manifest repository.
-    if verify_all:
-        print(VERIFY_GLOBAL)
-        if verify_archived:
-            print(VERIFY_ARCHIVED)
-        # Attempt to make sure the manifest data is good
-        manifestfile_validation_data = validate_manifestrepo(global_manifest_directory, verify_archived)
-        manifest_repo_error = get_manifest_validation_status(manifestfile_validation_data)
-        # Display errors
-        if manifest_repo_error:
-            print(VERIFY_GLOBAL_FAIL)
-            if verbose:
-                print_manifest_errors(manifestfile_validation_data)
-
 def validate_manifest_repo(manifest_repo, verbose=False, archived=False):
     print(VERIFY_GLOBAL)
     if archived:
diff --git a/edkrepo/common/humble.py b/edkrepo/common/humble.py
index 8ca38bb..f905357 100644
--- a/edkrepo/common/humble.py
+++ b/edkrepo/common/humble.py
@@ -41,7 +41,7 @@ SYNC_COMMITS_ON_MASTER = 'Commits were found on {0} branch.\n  (use the "--overr
 SYNC_ERROR = '\nError: Some repositories were not updated.'
 SYNC_MANIFEST_NOT_FOUND = 'A manifest for project, {0}, was not found.\nTo complete this operation please rerun the command with the --override flag\n' + SYNC_EXIT
 SYNC_URL_CHANGE = 'The URL for the remote, {0} has changed.\n' + SYNC_EXIT
-SYNC_COMBO_CHANGE = 'The current checked out combination, {0}, does not exist in the latest manifest for project, {1}\n' 
+SYNC_COMBO_CHANGE = 'The current checked out combination, {0}, does not exist in the latest manifest for project, {1}\n'
 SYNC_REPO_CHANGE = 'The latest manifest for project, {0}, requires a change in currently cloned repositories.\nTo complete this operation please rerun the command with the --override flag\n' + SYNC_EXIT
 SYNC_SOURCE_MOVE_WARNING = '{}{}WARNING:{}{} {{}} being moved to {{}}'.format(Style.BRIGHT, Fore.RED, Style.RESET_ALL, Fore.RED)
 SYNC_REMOVE_WARNING = '{}{}WARNING:{}{} The following repos no longer exist in the new manifest and can no \nlonger be used for submitting code. Please manually delete the following \ndirectories after saving any work you have in them:'.format(Style.BRIGHT, Fore.RED, Style.RESET_ALL, Fore.RED)
@@ -130,7 +130,7 @@ ERROR_WRITING_INCLUDE = 'An error occured while writting the URL redirection con
 #Error messages for squash.py
 SQUASH_COMMON_ANCESTOR_REQUIRED = '{} is not in the same branch history as {}, unable to operate on this commit range.'
 
-# Messages for common_repo_functions.verify_manifest_data()
+# Messages for common_repo_functions.
 VERIFY_GLOBAL = 'Verifying the active projects in the global manifest repository\n'
 VERIFY_ARCHIVED = 'Verifying the archived projects in the global manifest repository\n'
 VERIFY_GLOBAL_FAIL = 'Unable to verify the contents of the global manifest repository\n'
-- 
2.16.2.windows.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [edk2-staging/EdkRepo] [PATCH 3/4] EdkRepo: Add support for multiple manifest repostories to command completions
  2020-05-11  0:50 [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support Ashley E Desimone
  2020-05-11  0:50 ` [edk2-stagin/EdkRepo] [PATCH 1/4] EdkRepo: Update sync to support multiple manifest repositories Ashley E Desimone
  2020-05-11  0:50 ` [edk2-staing/EdkRepo] [PATCH 2/4] EdkRepo: Remove unused functions from common_repo_functions.py Ashley E Desimone
@ 2020-05-11  0:50 ` Ashley E Desimone
  2020-05-11  0:50 ` [edk2-staging/EdkRepo] [PATCH 4/4] EdkRepo: Remove support for deprecated Manifest-Repo content in edkrepo.cfg Ashley E Desimone
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Ashley E Desimone @ 2020-05-11  0:50 UTC (permalink / raw)
  To: devel
  Cc: Nate DeSimone, Puja Pandya, Erik Bjorge, Bret Barkelew,
	Prince Agyeman

Update the command completions for the checkout pin command to support
multiple manifest repositories. If a source manifest repository cannot
be found for the current workspace then no completions will be provided.

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>
---
 edkrepo/command_completion_edkrepo.py | 48 +++++++++++++++++++++++------------
 1 file changed, 32 insertions(+), 16 deletions(-)

diff --git a/edkrepo/command_completion_edkrepo.py b/edkrepo/command_completion_edkrepo.py
index 1220924..8a2c0e6 100644
--- a/edkrepo/command_completion_edkrepo.py
+++ b/edkrepo/command_completion_edkrepo.py
@@ -15,6 +15,9 @@ import traceback
 
 from edkrepo_manifest_parser.edk_manifest import ManifestXml
 from edkrepo.common.common_repo_functions import combinations_in_manifest
+from edkrepo.common.edkrepo_exception import EdkrepoManifestNotFoundException
+from edkrepo.common.workspace_maintenance.manifest_repos_maintenance import list_available_manifest_repos
+from edkrepo.common.workspace_maintenance.manifest_repos_maintenance import find_source_manifest_repo
 from edkrepo.config import config_factory
 from edkrepo.config.config_factory import get_workspace_manifest
 
@@ -28,23 +31,36 @@ def current_combo(parsed_args, config):
 
 def checkout_pin(parsed_args, config):
     pins = []
-    manifest_directory = config['cfg_file'].manifest_repo_abs_local_path
     manifest = get_workspace_manifest()
-    pin_folder = os.path.normpath(os.path.join(manifest_directory, manifest.general_config.pin_path))
-    for dirpath, _, filenames in os.walk(pin_folder):
-        for file in filenames:
-            pin_file = os.path.join(dirpath, file)
-            # Capture error output from manifest parser stdout so it is hidden unless verbose is enabled
-            stdout = sys.stdout
-            sys.stdout = io.StringIO()
-            pin = ManifestXml(pin_file)
-            parse_output = sys.stdout.getvalue()
-            sys.stdout = stdout
-            if parsed_args.verbose and parse_output.strip() != '':
-                print('Pin {} Parsing Errors: {}\n'.format(file, parse_output.strip()))
-            if pin.project_info.codename == manifest.project_info.codename:
-                pins.append(file)
-    print(' '.join(pins))
+    manifest_directory = None
+    try:
+        source_manifest_repo = find_source_manifest_repo(manifest, config['cfg_file'], config['user_cfg_file'], )
+        if source_manifest_repo:
+            cfg, user_cfg, conflicts = list_available_manifest_repos(config['cfg_file'], config['user_cfgFile'])
+            if source_manifest_repo in cfg:
+                manifest_directory = config['cfg_file'].manifest_repo_abs_path(source_manifest_repo)
+            elif source_manifest_repo in user_cfg:
+                manifest_directory = config['user_cfg_file'].manifest_repo_abs_path(source_manifest_repo)
+            else:
+                manifest_directory = None
+    except EdkrepoManifestNotFoundException:
+        manifest_directory = None
+    if manifest_directory:
+        pin_folder = os.path.normpath(os.path.join(manifest_directory, manifest.general_config.pin_path))
+        for dirpath, _, filenames in os.walk(pin_folder):
+            for file in filenames:
+                pin_file = os.path.join(dirpath, file)
+                # Capture error output from manifest parser stdout so it is hidden unless verbose is enabled
+                stdout = sys.stdout
+                sys.stdout = io.StringIO()
+                pin = ManifestXml(pin_file)
+                parse_output = sys.stdout.getvalue()
+                sys.stdout = stdout
+                if parsed_args.verbose and parse_output.strip() != '':
+                    print('Pin {} Parsing Errors: {}\n'.format(file, parse_output.strip()))
+                if pin.project_info.codename == manifest.project_info.codename:
+                    pins.append(file)
+        print(' '.join(pins))
 
 # To add command completions for a new command, add an entry to this dictionary.
 command_completions = {
-- 
2.16.2.windows.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [edk2-staging/EdkRepo] [PATCH 4/4] EdkRepo: Remove support for deprecated Manifest-Repo content in edkrepo.cfg
  2020-05-11  0:50 [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support Ashley E Desimone
                   ` (2 preceding siblings ...)
  2020-05-11  0:50 ` [edk2-staging/EdkRepo] [PATCH 3/4] EdkRepo: Add support for multiple manifest repostories to command completions Ashley E Desimone
@ 2020-05-11  0:50 ` Ashley E Desimone
  2020-05-11  6:10 ` [edk2-devel] [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support Nate DeSimone
  2020-05-11  6:33 ` Nate DeSimone
  5 siblings, 0 replies; 7+ messages in thread
From: Ashley E Desimone @ 2020-05-11  0:50 UTC (permalink / raw)
  To: devel
  Cc: Nate DeSimone, Puja Pandya, Erik Bjorge, Bret Barkelew,
	Prince Agyeman

Remove the remaining uses of manifest_repo_abs_local_path()
and update to use manifest_repo_abs_path where appropriate.

Remove the config prop definitions for the Manifest-Repo
section of the edkrepo.cfg file.

Remove the Manifest-Repo entry from the edkrepo.cfg file.

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>
---
 edkrepo/commands/clone_command.py       |  3 ++-
 edkrepo/commands/sync_command.py        |  8 +++---
 edkrepo/common/common_repo_functions.py | 45 ++++++++++++++++++++-------------
 edkrepo/config/config_factory.py        | 12 ++-------
 edkrepo_installer/Vendor/edkrepo.cfg    |  5 ----
 5 files changed, 36 insertions(+), 37 deletions(-)

diff --git a/edkrepo/commands/clone_command.py b/edkrepo/commands/clone_command.py
index b7f3158..179aaf7 100644
--- a/edkrepo/commands/clone_command.py
+++ b/edkrepo/commands/clone_command.py
@@ -66,7 +66,6 @@ class CloneCommand(EdkrepoCommand):
 
     def run_command(self, args, config):
         pull_all_manifest_repos(config['cfg_file'], config['user_cfg_file'], False)
-        update_editor_config(config)
 
         name_or_manifest = args.ProjectNameOrManifestFile
         workspace_dir = args.Workspace
@@ -92,8 +91,10 @@ class CloneCommand(EdkrepoCommand):
         # If this manifest is in a defined manifest repository validate the manifest within the manifest repo
         if manifest_repo in cfg:
             verify_single_manifest(config['cfg_file'], manifest_repo, global_manifest_path)
+            update_editor_config(config, config['cfg_file'].manifest_repo_abs_path(manifest_repo))
         elif manifest_repo in user_cfg:
             verify_single_manifest(config['user_cfg_file'], manifest_repo, global_manifest_path)
+            update_editor_config(config, config['user_cfg_file'].manifest_repo_abs_path(manifest_repo))
 
         # Copy project manifest to local manifest dir and rename it Manifest.xml.
         local_manifest_dir = os.path.join(workspace_dir, "repo")
diff --git a/edkrepo/commands/sync_command.py b/edkrepo/commands/sync_command.py
index d1db4f1..da99397 100644
--- a/edkrepo/commands/sync_command.py
+++ b/edkrepo/commands/sync_command.py
@@ -79,8 +79,6 @@ class SyncCommand(EdkrepoCommand):
         return metadata
 
     def run_command(self, args, config):
-        update_editor_config(config)
-
         workspace_path = get_workspace_path()
         initial_manifest = get_workspace_manifest()
         current_combo = initial_manifest.general_config.current_combo
@@ -97,6 +95,8 @@ class SyncCommand(EdkrepoCommand):
             global_manifest_directory = config['user_cfg_file'].manifest_repo_abs_path(source_global_manifest_repo)
             verify_single_manifest(config['user_cfg_file'], source_global_manifest_repo, get_workspace_manifest_file(), args.verbose)
 
+        update_editor_config(config, global_manifest_directory)
+
         if not args.update_local_manifest:
             self.__check_for_new_manifest(args, config, initial_manifest, workspace_path, global_manifest_directory)
         check_dirty_repos(initial_manifest, workspace_path)
@@ -145,7 +145,7 @@ class SyncCommand(EdkrepoCommand):
         for repo_to_sync in repo_sources_to_sync:
             local_repo_path = os.path.join(workspace_path, repo_to_sync.root)
             # Update any hooks
-            update_hooks(hooks_add, hooks_update, hooks_uninstall, local_repo_path, repo_to_sync, config)
+            update_hooks(hooks_add, hooks_update, hooks_uninstall, local_repo_path, repo_to_sync, config, global_manifest_directory)
             repo = Repo(local_repo_path)
             #Fetch notes
             repo.remotes.origin.fetch("refs/notes/*:refs/notes/*")
@@ -200,7 +200,7 @@ class SyncCommand(EdkrepoCommand):
                     # Perform submodule updates and url redirection
                     maintain_submodules(repo_to_sync, repo)
             # Update commit message templates
-            update_repo_commit_template(workspace_path, repo, repo_to_sync, config)
+            update_repo_commit_template(workspace_path, repo, repo_to_sync, config, source_global_manifest_repo)
 
         if sync_error:
             print(SYNC_ERROR)
diff --git a/edkrepo/common/common_repo_functions.py b/edkrepo/common/common_repo_functions.py
index 5ec834b..61133f1 100644
--- a/edkrepo/common/common_repo_functions.py
+++ b/edkrepo/common/common_repo_functions.py
@@ -59,8 +59,8 @@ from edkrepo.common.edkrepo_exception import EdkrepoInvalidParametersException
 from edkrepo_manifest_parser.edk_manifest import CiIndexXml, ManifestXml
 from edkrepo.common.edkrepo_exception import EdkrepoNotFoundException, EdkrepoGitException, EdkrepoWarningException
 from edkrepo.common.edkrepo_exception import EdkrepoFoundMultipleException, EdkrepoHookNotFoundException
-from edkrepo.common.edkrepo_exception import EdkrepoGitConfigSetupException, EdkrepoManifestInvalidException
-from edkrepo.common.workspace_maintenance.manifest_repos_maintenance import pull_single_manifest_repo
+from edkrepo.common.edkrepo_exception import EdkrepoGitConfigSetupException, EdkrepoManifestInvalidException, EdkrepoManifestNotFoundException
+from edkrepo.common.workspace_maintenance.manifest_repos_maintenance import find_source_manifest_repo, list_available_manifest_repos
 from edkrepo.common.workspace_maintenance.workspace_maintenance import case_insensitive_single_match
 from edkrepo.common.ui_functions import init_color_console
 from edkrepo_manifest_parser import edk_manifest
@@ -112,11 +112,27 @@ def clone_repos(args, workspace_dir, repos_to_clone, project_client_side_hooks,
             if repo_to_clone.enable_submodule:
                 maintain_submodules(repo_to_clone, repo, args.verbose)
 
-        # Install git hooks
-        install_hooks(project_client_side_hooks, local_repo_path, repo_to_clone, config)
+        try:
+            if 'source_manifest_repo' in vars(args).keys():
+                src_manifest_repo = find_source_manifest_repo(manifest, config['cfg_file'], config['user_cfg_file'], args.source_manifest_repo)
+            else:
+                src_manifest_repo = find_source_manifest_repo(manifest, config['cfg_file'], config['user_cfg_file'], None)
+        except EdkrepoManifestNotFoundException:
+            src_manifest_repo = None
+        if src_manifest_repo:
+            cfg, user_cfg, conflicts = list_available_manifest_repos(config['cfg_file'], config['user_cfg_file'])
+            if src_manifest_repo in cfg:
+                global_manifest_directory = config['cfg_file'].manifest_repo_abs_path(src_manifest_repo)
+            elif src_manifest_repo in user_cfg:
+                global_manifest_directory = config['user_cfg_file'].manifest_repo_abs_path(src_manifest_repo)
+            else:
+                global_manifest_directory = None
+        if global_manifest_directory:
+            # Install git hooks if there is a manifest repo associated with the manifest being cloned
+            install_hooks(project_client_side_hooks, local_repo_path, repo_to_clone, config, global_manifest_directory)
 
-        # Add the commit template if it exists.
-        update_repo_commit_template(workspace_dir, repo, repo_to_clone, config)
+            # Add the commit template if it exists.
+            update_repo_commit_template(workspace_dir, repo, repo_to_clone, config, global_manifest_directory)
 
         # Check to see if mirror is in sync with primary repo
         if not in_sync_with_primary(repo, repo_to_clone, args.verbose):
@@ -194,7 +210,7 @@ def maintain_submodules(repo_sources, repo, verbose = False):
     except:
         raise EdkrepoGitException(SUBMODULE_FAILURE.format(repo_sources.remote_name))
 
-def install_hooks(hooks, local_repo_path, repo_for_install, config):
+def install_hooks(hooks, local_repo_path, repo_for_install, config, global_manifest_directory):
     # Determine the which hooks are for the repo in question and which are from a URL based source or are in a global
     # manifest repo relative path
     hooks_url = []
@@ -222,7 +238,6 @@ def install_hooks(hooks, local_repo_path, repo_for_install, config):
 
     # Copy any global manifest repository relative path source based hooks
     for hook in hooks_path:
-        global_manifest_directory = config['cfg_file'].manifest_repo_abs_local_path
         man_dir_rel_hook_path = os.path.join(global_manifest_directory, hook.source)
         if not os.path.exists(man_dir_rel_hook_path):
             raise EdkrepoHookNotFoundException(HOOK_NOT_FOUND_ERROR.format(hook.source, repo_for_install.root))
@@ -258,11 +273,11 @@ def uninstall_hooks(hooks, local_repo_path, repo_for_uninstall):
                     hook_file = os.path.join(destination, (os.path.basename(str(hook.source))))
             os.remove(hook_file)
 
-def update_hooks (hooks_add, hooks_update, hooks_uninstall, local_repo_path, repo, config):
+def update_hooks (hooks_add, hooks_update, hooks_uninstall, local_repo_path, repo, config, global_manifest_directory):
     if hooks_add:
-        install_hooks(hooks_add, local_repo_path, repo, config)
+        install_hooks(hooks_add, local_repo_path, repo, config, global_manifest_directory)
     if hooks_update:
-        install_hooks(hooks_update, local_repo_path, repo, config)
+        install_hooks(hooks_update, local_repo_path, repo, config, global_manifest_directory)
     if hooks_uninstall:
         uninstall_hooks(hooks_uninstall, local_repo_path, repo)
 
@@ -562,15 +577,11 @@ def get_latest_sha(repo, branch, remote_or_url='origin'):
         latest_sha = None
     return latest_sha
 
-def update_repo_commit_template(workspace_dir, repo, repo_info, config):
+def update_repo_commit_template(workspace_dir, repo, repo_info, config, global_manifest_directory):
     # Open the local manifest and get any templates
     manifest = edk_manifest.ManifestXml(os.path.join(workspace_dir, 'repo', 'Manifest.xml'))
     templates = manifest.commit_templates
 
-    # Need to know where the global manifest directory is located at this point
-    global_manifest_directory = os.path.join(get_edkrepo_global_data_directory(),
-                                             config['cfg_file'].manifest_repo_local_path)
-
     # Apply the template based on current manifest
     with repo.config_writer() as cw:
         if cw.has_option(section='commit', option='template'):
@@ -590,7 +601,7 @@ def update_repo_commit_template(workspace_dir, repo, repo_info, config):
             if cw.has_option(section='commit', option='template'):
                 cw.remove_option(section='commit', option='template')
 
-def update_editor_config(config):
+def update_editor_config(config, global_manifest_directory):
     return
 
 def has_primary_repo_remote(repo, verbose=False):
diff --git a/edkrepo/config/config_factory.py b/edkrepo/config/config_factory.py
index 6d56ee6..c0b9f68 100644
--- a/edkrepo/config/config_factory.py
+++ b/edkrepo/config/config_factory.py
@@ -119,7 +119,7 @@ class BaseConfig():
         """Returns a list of available manifest repos"""
         if self.cfg.has_section('manifest-repos'):
             return self.cfg.options('manifest-repos')
-    
+
     def manifest_repo_props(self, manifest_repo):
         """
         Returns a list of cfg_prop objects that pertain to a given manifest
@@ -128,7 +128,7 @@ class BaseConfig():
         return [x for x in self.prop_list if manifest_repo in x.name]
 
     def get_manifest_repo_url(self, manifest_repo):
-        """ 
+        """
         Returns the URL value for a given manifest repo based on config
         file contents.
         """
@@ -172,9 +172,6 @@ class GlobalConfig(BaseConfig):
     def __init__(self):
         self.filename = os.path.join(get_edkrepo_global_data_directory(), "edkrepo.cfg")
         self.prop_list = [
-                CfgProp('manifest-repo', 'URL', 'manifest_repo_url', None, True),
-                CfgProp('manifest-repo', 'Branch', 'manifest_repo_branch', None, True),
-                CfgProp('manifest-repo', 'LocalPath', 'manifest_repo_local_path', None, True),
                 CfgProp('sparsecheckout', 'always_include', 'sparsecheckout_always_include', None, True),
                 CfgProp('sparsecheckout', 'always_exclude', 'sparsecheckout_always_exclude', None, True),
                 CfgProp('f2f-cherry-pick', 'ignored_folder_substrings', 'f2f_cp_ignored_folder_substrings'),
@@ -199,11 +196,6 @@ class GlobalConfig(BaseConfig):
             pkg_list.append(pkg.strip())
         return pkg_list
 
-    @property
-    def manifest_repo_abs_local_path(self):
-        """Provides an absolute path to the manifest repo based on configuration file values."""
-        return os.path.join(self.global_data_dir, self.manifest_repo_local_path)
-
     @property
     def sparsecheckout_data(self):
         always_include = self.sparsecheckout_always_include.split('|')
diff --git a/edkrepo_installer/Vendor/edkrepo.cfg b/edkrepo_installer/Vendor/edkrepo.cfg
index 38d7b35..738b832 100644
--- a/edkrepo_installer/Vendor/edkrepo.cfg
+++ b/edkrepo_installer/Vendor/edkrepo.cfg
@@ -6,11 +6,6 @@ URL = https://github.com/tianocore/edk2-staging.git
 Branch = EdkRepo-Manifest
 LocalPath = edk2-staging-manifest-master
 
-[manifest-repo]
-URL = https://github.com/tianocore/edk2-staging.git
-Branch = EdkRepo-Manifest
-LocalPath = manifest-master
-
 [git-ver]
 minimum = 2.13.0
 recommended = 2.16.2
-- 
2.16.2.windows.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support
  2020-05-11  0:50 [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support Ashley E Desimone
                   ` (3 preceding siblings ...)
  2020-05-11  0:50 ` [edk2-staging/EdkRepo] [PATCH 4/4] EdkRepo: Remove support for deprecated Manifest-Repo content in edkrepo.cfg Ashley E Desimone
@ 2020-05-11  6:10 ` Nate DeSimone
  2020-05-11  6:33 ` Nate DeSimone
  5 siblings, 0 replies; 7+ messages in thread
From: Nate DeSimone @ 2020-05-11  6:10 UTC (permalink / raw)
  To: devel@edk2.groups.io, Desimone, Ashley E
  Cc: Pandya, Puja, Bjorge, Erik C, Bret Barkelew, Agyeman, Prince

For the series...

Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ashley E
> Desimone
> Sent: Sunday, May 10, 2020 5:50 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-devel] [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize
> multiple manifest repository support
> 
> Finalize integration of multiple manifest repository support. By adding
> support to remaining commands and by removing support for the Manifest-
> Repo section of the edkrepo.cfg file.
> 
> 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>
> 
> Ashley E Desimone (4):
>   EdkRepo: Update sync to support multiple manifest repositories
>   EdkRepo: Remove unused functions from common_repo_functions.py
>   EdkRepo: Add support for multiple manifest repostories to command
>     completions
>   EdkRepo: Remove support for deprecated Manifest-Repo content in
>     edkrepo.cfg
> 
>  edkrepo/command_completion_edkrepo.py   | 48 ++++++++++++-------
>  edkrepo/commands/clone_command.py       |  3 +-
>  edkrepo/commands/manifest_command.py    |  2 +-
>  edkrepo/commands/sync_command.py        | 42 +++++++++-------
>  edkrepo/common/common_repo_functions.py | 85 +++++++++++-----------
> -----------
>  edkrepo/common/humble.py                |  4 +-
>  edkrepo/config/config_factory.py        | 12 +----
>  edkrepo_installer/Vendor/edkrepo.cfg    |  5 --
>  edkrepo_manifest_parser/edk_manifest.py | 42 ++++++++++++----
>  9 files changed, 124 insertions(+), 119 deletions(-)
> 
> --
> 2.16.2.windows.1
> 
> 
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support
  2020-05-11  0:50 [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support Ashley E Desimone
                   ` (4 preceding siblings ...)
  2020-05-11  6:10 ` [edk2-devel] [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support Nate DeSimone
@ 2020-05-11  6:33 ` Nate DeSimone
  5 siblings, 0 replies; 7+ messages in thread
From: Nate DeSimone @ 2020-05-11  6:33 UTC (permalink / raw)
  To: devel@edk2.groups.io, Desimone, Ashley E
  Cc: Pandya, Puja, Bjorge, Erik C, Bret Barkelew, Agyeman, Prince

Pushed: 70768c57~..12a82c4d

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ashley E
> Desimone
> Sent: Sunday, May 10, 2020 5:50 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-devel] [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize
> multiple manifest repository support
> 
> Finalize integration of multiple manifest repository support. By adding
> support to remaining commands and by removing support for the Manifest-
> Repo section of the edkrepo.cfg file.
> 
> 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>
> 
> Ashley E Desimone (4):
>   EdkRepo: Update sync to support multiple manifest repositories
>   EdkRepo: Remove unused functions from common_repo_functions.py
>   EdkRepo: Add support for multiple manifest repostories to command
>     completions
>   EdkRepo: Remove support for deprecated Manifest-Repo content in
>     edkrepo.cfg
> 
>  edkrepo/command_completion_edkrepo.py   | 48 ++++++++++++-------
>  edkrepo/commands/clone_command.py       |  3 +-
>  edkrepo/commands/manifest_command.py    |  2 +-
>  edkrepo/commands/sync_command.py        | 42 +++++++++-------
>  edkrepo/common/common_repo_functions.py | 85 +++++++++++-----------
> -----------
>  edkrepo/common/humble.py                |  4 +-
>  edkrepo/config/config_factory.py        | 12 +----
>  edkrepo_installer/Vendor/edkrepo.cfg    |  5 --
>  edkrepo_manifest_parser/edk_manifest.py | 42 ++++++++++++----
>  9 files changed, 124 insertions(+), 119 deletions(-)
> 
> --
> 2.16.2.windows.1
> 
> 
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-05-11  6:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-11  0:50 [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support Ashley E Desimone
2020-05-11  0:50 ` [edk2-stagin/EdkRepo] [PATCH 1/4] EdkRepo: Update sync to support multiple manifest repositories Ashley E Desimone
2020-05-11  0:50 ` [edk2-staing/EdkRepo] [PATCH 2/4] EdkRepo: Remove unused functions from common_repo_functions.py Ashley E Desimone
2020-05-11  0:50 ` [edk2-staging/EdkRepo] [PATCH 3/4] EdkRepo: Add support for multiple manifest repostories to command completions Ashley E Desimone
2020-05-11  0:50 ` [edk2-staging/EdkRepo] [PATCH 4/4] EdkRepo: Remove support for deprecated Manifest-Repo content in edkrepo.cfg Ashley E Desimone
2020-05-11  6:10 ` [edk2-devel] [edk2-staging/EdkRepo] [PATCH 0/4] EdkRepo: Finalize multiple manifest repository support Nate DeSimone
2020-05-11  6:33 ` Nate DeSimone

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox