fix: support for default branch

This commit is contained in:
yike5460 2023-04-10 09:38:26 +08:00
parent 1aba8d82cb
commit 7c62bb2788
1 changed files with 12 additions and 5 deletions

View File

@ -150,10 +150,17 @@ def install_extension_from_url(dirname, branch_name, url):
try: try:
shutil.rmtree(tmpdir, True) shutil.rmtree(tmpdir, True)
with git.Repo.clone_from(url, tmpdir, branch=branch_name if branch_name else '') as repo: if branch_name == '':
repo.remote().fetch() # if no branch is specified, use the default branch
for submodule in repo.submodules: with git.Repo.clone_from(url, tmpdir) as repo:
submodule.update() repo.remote().fetch()
for submodule in repo.submodules:
submodule.update()
else:
with git.Repo.clone_from(url, tmpdir, branch=branch_name) as repo:
repo.remote().fetch()
for submodule in repo.submodules:
submodule.update()
try: try:
os.rename(tmpdir, target_dir) os.rename(tmpdir, target_dir)
except OSError as err: except OSError as err:
@ -376,7 +383,7 @@ def create_ui():
with gr.TabItem("Install from URL"): with gr.TabItem("Install from URL"):
install_url = gr.Text(label="URL for extension's git repository") install_url = gr.Text(label="URL for extension's git repository")
install_branch = gr.Text(label="Branch name for extension's git repository", placeholder="Leave empty for default branch") install_branch = gr.Text(label="Specific branch name", placeholder="Leave empty for default main branch")
install_dirname = gr.Text(label="Local directory name", placeholder="Leave empty for auto") install_dirname = gr.Text(label="Local directory name", placeholder="Leave empty for auto")
install_button = gr.Button(value="Install", variant="primary") install_button = gr.Button(value="Install", variant="primary")
install_result = gr.HTML(elem_id="extension_install_result") install_result = gr.HTML(elem_id="extension_install_result")