mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2026-01-30 20:33:06 -08:00
Update launch_utils.py
Updated the cloning logic to first clone into a temporary directory and move it to the final destination only if the operation succeeds.
This commit is contained in:
parent
021154d8b1
commit
ccc3d8edee
1 changed files with 5 additions and 3 deletions
|
|
@ -167,7 +167,8 @@ def run_git(dir, name, command, desc=None, errdesc=None, custom_env=None, live:
|
|||
|
||||
|
||||
def git_clone(url, dir, name, commithash=None):
|
||||
# TODO clone into temporary dir and move if successful
|
||||
# Clone into a temporary directory
|
||||
temp_dir = dir + "_temp"
|
||||
|
||||
if os.path.exists(dir):
|
||||
if commithash is None:
|
||||
|
|
@ -187,9 +188,10 @@ def git_clone(url, dir, name, commithash=None):
|
|||
return
|
||||
|
||||
try:
|
||||
run(f'"{git}" clone --config core.filemode=false "{url}" "{dir}"', f"Cloning {name} into {dir}...", f"Couldn't clone {name}", live=True)
|
||||
run(f'"{git}" clone --config core.filemode=false "{url}" "{temp_dir}"', f"Cloning {name} into {temp_dir}...", f"Couldn't clone {name}", live=True)
|
||||
shutil.move(temp_dir, dir) # Move temp directory to final directory
|
||||
except RuntimeError:
|
||||
shutil.rmtree(dir, ignore_errors=True)
|
||||
shutil.rmtree(temp_dir, ignore_errors=True)
|
||||
raise
|
||||
|
||||
if commithash is not None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue