Если вы спрашиваете, пишет ли Git временный файл, а затем переименовывает, нет, он этого не делает. Поскольку Git работает с несколькими файлами, нет способа гарантировать, что операция извлечения будет атомарной, даже с переименованием файлов. В любой момент сбой может привести к прерыванию операции без возможности восстановления. Git, возможно, также придется заменить файлы на каталоги или наоборот, чтобы выполнить проверку, и там нет никакого способа даже попытаться атомарности там.
Кроме того, подход «запись в сторону и переименование» не работает в Windows, что не позволяет переименовывать существующие файлы.
Git полагается на атомарность read
и write
, как указано в POSIX (например, множественные вызовы write
не чередуются) в других местах, но TTBOMK такое поведение не требуется при проверке.