From ae6ba7f713804e1c04febee81a8f52ea0abf443b Mon Sep 17 00:00:00 2001 From: nulltoken Date: Tue, 22 Mar 2011 19:45:01 +0100 Subject: [PATCH] Fix gitfo_mv() behavior when running on Windows When the system temporary folder is located on a different volume than the working directory into which libgit2 is executing, MoveFileEx() requires an additional flag. --- src/fileops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fileops.c b/src/fileops.c index 237a16a9f..a884b4002 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -263,7 +263,7 @@ int gitfo_mv(const char *from, const char *to) * file exists, the `rename` call fails. This is as * close as it gets with the Win32 API. */ - return MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING) ? GIT_SUCCESS : GIT_EOSERR; + return MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED) ? GIT_SUCCESS : GIT_EOSERR; #else /* Don't even try this on Win32 */ if (!link(from, to)) {