Ошибка разрешения клонирования репозитория git во временную папку - PullRequest
2 голосов
/ 24 апреля 2020

Код, о котором идет речь, может объяснить больше, чем я могу сказать в тексте, я думаю. Я значительно упростила его, чтобы сделать его читабельным, но по сути это то, что я запускаю.

def main():
    with tempfile.TemporaryDirectory() as td:
        for repo in repos:
            subprocess.run("git clone --mirror {} {}".format(os.path.join(td, repo.path), repo.url)

Клонирование прекрасно работает и успешно проходит через весь список. Что не так, что при выходе «with ... as ...» возникает следующая ошибка (трассировка начинается с __exit__ менеджера контекста):

    os.unlink(fullname)
PermissionError: [WinError 5] Access is denied: 'C:\\Users\\USERNAME\\AppData\\Local\\Temp\\tmp4ew2qffb\\sources\\REPONAME\\objects\\pack\\pack-abd0ff87083dbbcb90f707d8f2d53c730583bb6e.idx'

Запуск сценария от имени администратора тоже не поможет. Что здесь происходит не так?

РЕДАКТИРОВАТЬ: я копался в нем, и получается python 3.7 Очистка TemporaryDirectory не поддерживает очистку файлов только для чтения на Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...