From b75949b11a519b0f8cfaca5a926fc5e29162dcd6 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 25 Aug 2024 01:33:49 -0400 Subject: [PATCH] =?UTF-8?q?[FIX]=C2=A0script=20git=20repo:=20force=20defau?= =?UTF-8?q?lt=20branch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/git/git_repo_manifest.py | 16 +++++++++++++++- script/git/git_tool.py | 24 ++++++++++++++---------- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/script/git/git_repo_manifest.py b/script/git/git_repo_manifest.py index 536eb4a..180ddbf 100755 --- a/script/git/git_repo_manifest.py +++ b/script/git/git_repo_manifest.py @@ -40,12 +40,22 @@ def get_config(): action="store_true", help="Create a new manifest and clear old configuration.", ) + parser.add_argument( + "--keep_origin", + action="store_true", + help="Create origin remote. TODO.", + ) parser.add_argument( "-m", "--manifest", default="manifest/default.dev.xml", help="The manifest file path to generate.", ) + parser.add_argument( + "--default_branch", + default=False, + help="The manifest default branch.", + ) args = parser.parse_args() return args @@ -78,12 +88,16 @@ def main(): else: dct_remote = {} dct_project = {} + kwargs = {} + if config.default_branch: + kwargs["default_branch"] = config.default_branch git_tool.generate_repo_manifest( lst_repo_organization, output=f"{config.dir}{config.manifest}", dct_remote=dct_remote, dct_project=dct_project, - keep_original=True, + keep_original=config.keep_origin, + **kwargs, ) git_tool.generate_generate_config() diff --git a/script/git/git_tool.py b/script/git/git_tool.py index 8747ec4..1281805 100644 --- a/script/git/git_tool.py +++ b/script/git/git_tool.py @@ -445,6 +445,7 @@ class GitTool: dct_project={}, default_remote=None, keep_original=False, + default_branch=DEFAULT_BRANCH, ): """ Generate repo manifest @@ -455,6 +456,7 @@ class GitTool: :param default_remote: dict of default remote :param keep_original: if True, can manage multiple organization with same name, but with different fetch url + :param default_branch: default branch name :return: """ if not output: @@ -469,15 +471,17 @@ class GitTool: # Fill with configuration for dct_value in dct_remote.values(): - lst_remote.append( - OrderedDict( - [ - ("@name", dct_value.get("@name")), - ("@fetch", dct_value.get("@fetch")), - ] + remote_name = dct_value.get("@name") + if remote_name not in lst_remote_name: + lst_remote.append( + OrderedDict( + [ + ("@name", remote_name), + ("@fetch", dct_value.get("@fetch")), + ] + ) ) - ) - lst_remote_name.append(dct_value.get("@name")) + lst_remote_name.append(remote_name) for dct_value in dct_project.values(): lst_project_info = [ ("@name", dct_value.get("@name")), @@ -519,7 +523,7 @@ class GitTool: OrderedDict( [ ("@remote", repo.original_organization), - ("@revision", DEFAULT_BRANCH), + ("@revision", default_branch), ("@sync-j", "4"), ("@sync-c", "true"), ] @@ -572,7 +576,7 @@ class GitTool: OrderedDict( [ ("@remote", default_remote.get("@remote")), - ("@revision", DEFAULT_BRANCH), + ("@revision", default_branch), ("@sync-j", "4"), ("@sync-c", "true"), ]