зеркало из https://github.com/microsoft/git.git
Merge branch 'ef/mingw-rmdir'
MinGW has a workaround when rmdir unnecessarily fails to retry with a prompt, but the logic was kicking in when the rmdir failed with ENOTEMPTY, i.e. was expected to fail and there is no point retrying. * ef/mingw-rmdir: mingw_rmdir: do not prompt for retry when non-empty
This commit is contained in:
Коммит
7348159380
|
@ -256,6 +256,8 @@ int mingw_rmdir(const char *pathname)
|
||||||
|
|
||||||
while ((ret = rmdir(pathname)) == -1 && tries < ARRAY_SIZE(delay)) {
|
while ((ret = rmdir(pathname)) == -1 && tries < ARRAY_SIZE(delay)) {
|
||||||
if (!is_file_in_use_error(GetLastError()))
|
if (!is_file_in_use_error(GetLastError()))
|
||||||
|
errno = err_win_to_posix(GetLastError());
|
||||||
|
if (errno != EACCES)
|
||||||
break;
|
break;
|
||||||
if (!is_dir_empty(pathname)) {
|
if (!is_dir_empty(pathname)) {
|
||||||
errno = ENOTEMPTY;
|
errno = ENOTEMPTY;
|
||||||
|
@ -271,7 +273,7 @@ int mingw_rmdir(const char *pathname)
|
||||||
Sleep(delay[tries]);
|
Sleep(delay[tries]);
|
||||||
tries++;
|
tries++;
|
||||||
}
|
}
|
||||||
while (ret == -1 && is_file_in_use_error(GetLastError()) &&
|
while (ret == -1 && errno == EACCES && is_file_in_use_error(GetLastError()) &&
|
||||||
ask_yes_no_if_possible("Deletion of directory '%s' failed. "
|
ask_yes_no_if_possible("Deletion of directory '%s' failed. "
|
||||||
"Should I try again?", pathname))
|
"Should I try again?", pathname))
|
||||||
ret = rmdir(pathname);
|
ret = rmdir(pathname);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче