зеркало из https://github.com/microsoft/git.git
mingw: try to delete target directory before renaming
When the rename() function tries to move a directory it fails if the target directory exists. It should check if it can delete the (possibly empty) target directory and then try again to move the directory. This partially fixes t9100-git-svn-basic.sh. Signed-off-by: 마누엘 <nalla@hamal.uberspace.de> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
1fc7bf79e5
Коммит
4426fb5142
|
@ -1603,7 +1603,12 @@ repeat:
|
|||
if (gle == ERROR_ACCESS_DENIED &&
|
||||
(attrs = GetFileAttributesW(wpnew)) != INVALID_FILE_ATTRIBUTES) {
|
||||
if (attrs & FILE_ATTRIBUTE_DIRECTORY) {
|
||||
errno = EISDIR;
|
||||
DWORD attrsold = GetFileAttributesW(wpold);
|
||||
if (attrsold == INVALID_FILE_ATTRIBUTES ||
|
||||
!(attrsold & FILE_ATTRIBUTE_DIRECTORY))
|
||||
errno = EISDIR;
|
||||
else if (!_wrmdir(wpnew))
|
||||
goto repeat;
|
||||
return -1;
|
||||
}
|
||||
if ((attrs & FILE_ATTRIBUTE_READONLY) &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче