git worktree add завершается неудачно при запуске из подпроцесса Python в ловушке git
Я попытался установить параметр cwd для подпроцесса, вручную создать каталог, проверить, существует ли каталог (он существует, но git worktree автоматически удаляет его при сбое), или с помощью shell = True. Ни один не изменил вывод.
Запуск 'git worktree add C: / Users / meh / Desktop / blah HEAD' в CMD / PowerShell работает просто отлично.
Путь к каталогу git: «C: / Users / meh / Desktop / blah»
temp_directory_path = "C:/Users/meh/Desktop/blah/abc"
print(temp_directory_path)
print(os.path.exists(temp_directory_path))
print(os.access(temp_directory_path, os.W_OK))
worktree_add_result = subprocess.run(["git", "worktree", "add", temp_directory_path, commit], capture_output=True, text=True, cwd="C:/Users/meh/Desktop/blah")
if worktree_add_result.returncode != 0:
print(worktree_add_result)
print(os.path.exists(temp_directory_path))
print(os.access(temp_directory_path, os.W_OK))
exit(1000)
Результат без созданного вручную каталога 'abc':
C:/Users/meh/Desktop/blah/abc
False
False
CompletedProcess(args=['git', 'worktree', 'add', 'C:/Users/meh/Desktop/blah/abc', '
HEAD'], returncode=128, stdout='Preparing worktree (detached HEAD cbfef18)\n', stderr="fatal: Unable to create 'C:/Users/meh/Desktop/blah/abc/.git/index.lock': No such file or directory\n")
False
False
Результат с созданным вручную каталогом 'abc':
C:/Users/meh/Desktop/blah/abc
True
True
CompletedProcess(args=['git', 'worktree', 'add', 'C:/Users/meh/Desktop/blah/abc', '
HEAD'], returncode=128, stdout='Preparing worktree (detached HEAD cbfef18)\n', stderr="fatal: Unable to create 'C:/Users/meh/Desktop/blah/abc/.git/index.lock': No such file or directory\n")
False
False
Ожидаемый результат:
Preparing worktree (detached HEAD cbfef18)
HEAD is now at cbfef18 commit message