From 8c1e9cbef161f2ff12dadbacf26affd23876fde9 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 6 Sep 2020 14:53:18 -0400 Subject: manifest_xml: refactor manifest parsing from client management We conflate the manifest & parsing logic with the management of the repo client checkout in a single class. This makes testing just one part (the manifest parsing) hard as it requires a full checkout too. Start splitting the two apart into separate classes to make it easy to reason about & test. Change-Id: Iaf897c93db9c724baba6044bfe7a589c024523b2 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/288682 Reviewed-by: Michael Mortensen Tested-by: Mike Frysinger --- main.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'main.py') diff --git a/main.py b/main.py index cd62793d..e152de4f 100755 --- a/main.py +++ b/main.py @@ -63,7 +63,7 @@ from error import NoManifestException from error import NoSuchProjectError from error import RepoChangedException import gitc_utils -from manifest_xml import GitcManifest, XmlManifest +from manifest_xml import GitcClient, RepoClient from pager import RunPager, TerminatePager from wrapper import WrapperPath, Wrapper @@ -212,14 +212,15 @@ class _Repo(object): return 1 cmd.repodir = self.repodir - cmd.manifest = XmlManifest(cmd.repodir) + cmd.client = RepoClient(cmd.repodir) + cmd.manifest = cmd.client.manifest cmd.gitc_manifest = None gitc_client_name = gitc_utils.parse_clientdir(os.getcwd()) if gitc_client_name: - cmd.gitc_manifest = GitcManifest(cmd.repodir, gitc_client_name) - cmd.manifest.isGitcClient = True + cmd.gitc_manifest = GitcClient(cmd.repodir, gitc_client_name) + cmd.client.isGitcClient = True - Editor.globalConfig = cmd.manifest.globalConfig + Editor.globalConfig = cmd.client.globalConfig if not isinstance(cmd, MirrorSafeCommand) and cmd.manifest.IsMirror: print("fatal: '%s' requires a working directory" % name, @@ -247,7 +248,7 @@ class _Repo(object): return 1 if gopts.pager is not False and not isinstance(cmd, InteractiveCommand): - config = cmd.manifest.globalConfig + config = cmd.client.globalConfig if gopts.pager: use_pager = True else: -- cgit v1.2.3-54-g00ecf