[FIX] repo_manifest duplicate remote source conflict name
- when trying discover new repo, but another organization exist with same name, it's now adding organization + "_origin"
This commit is contained in:
parent
02a2227579
commit
a9ade0676f
2 changed files with 14 additions and 5 deletions
|
|
@ -56,7 +56,8 @@ def main():
|
||||||
dct_project = {}
|
dct_project = {}
|
||||||
git_tool.generate_repo_manifest(lst_repo_organization,
|
git_tool.generate_repo_manifest(lst_repo_organization,
|
||||||
output=f"{config.dir}{config.manifest}",
|
output=f"{config.dir}{config.manifest}",
|
||||||
dct_remote=dct_remote, dct_project=dct_project)
|
dct_remote=dct_remote, dct_project=dct_project,
|
||||||
|
keep_original=True)
|
||||||
git_tool.generate_install_locally()
|
git_tool.generate_install_locally()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -390,7 +390,8 @@ class GitTool:
|
||||||
return source_str[:pos] + insert_str + source_str[pos:]
|
return source_str[:pos] + insert_str + source_str[pos:]
|
||||||
|
|
||||||
def generate_repo_manifest(self, lst_repo: List[Struct] = [], output: str = "",
|
def generate_repo_manifest(self, lst_repo: List[Struct] = [], output: str = "",
|
||||||
dct_remote={}, dct_project={}, default_remote=None):
|
dct_remote={}, dct_project={}, default_remote=None,
|
||||||
|
keep_original=False):
|
||||||
"""
|
"""
|
||||||
Generate repo manifest
|
Generate repo manifest
|
||||||
:param lst_repo: optional, update manifest with list_repo
|
:param lst_repo: optional, update manifest with list_repo
|
||||||
|
|
@ -398,6 +399,8 @@ class GitTool:
|
||||||
:param dct_remote: dict of remote information
|
:param dct_remote: dict of remote information
|
||||||
:param dct_project: dict of project information
|
:param dct_project: dict of project information
|
||||||
:param default_remote: name of default remote, optional
|
:param default_remote: name of default remote, optional
|
||||||
|
:param keep_original: if True, can manage multiple organization with same name,
|
||||||
|
but with different fetch url
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
if not output:
|
if not output:
|
||||||
|
|
@ -449,10 +452,15 @@ class GitTool:
|
||||||
('@sync-c', "true"),
|
('@sync-c', "true"),
|
||||||
]))
|
]))
|
||||||
else:
|
else:
|
||||||
|
if keep_original and repo.project_name not in dct_project.keys():
|
||||||
|
# Exception, create a new remote to keep tracking on original
|
||||||
|
original_organization = f"{repo.original_organization}_origin"
|
||||||
|
else:
|
||||||
|
original_organization = repo.original_organization
|
||||||
# Add remote, only unique remote
|
# Add remote, only unique remote
|
||||||
if repo.original_organization not in lst_remote_name:
|
if original_organization not in lst_remote_name:
|
||||||
lst_remote.append(OrderedDict(
|
lst_remote.append(OrderedDict(
|
||||||
[('@name', repo.original_organization),
|
[('@name', original_organization),
|
||||||
('@fetch', repo.url_https_organization + "/")]
|
('@fetch', repo.url_https_organization + "/")]
|
||||||
))
|
))
|
||||||
lst_remote_name.append(repo.original_organization)
|
lst_remote_name.append(repo.original_organization)
|
||||||
|
|
@ -462,7 +470,7 @@ class GitTool:
|
||||||
lst_project_info = [
|
lst_project_info = [
|
||||||
('@name', repo.project_name),
|
('@name', repo.project_name),
|
||||||
('@path', repo.path),
|
('@path', repo.path),
|
||||||
('@remote', repo.original_organization),
|
('@remote', original_organization),
|
||||||
]
|
]
|
||||||
if repo.revision:
|
if repo.revision:
|
||||||
lst_project_info.append(('@revision', repo.revision))
|
lst_project_info.append(('@revision', repo.revision))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue