diff --git a/CHANGELOG b/CHANGELOG index 5bc38ba826..9b7ddf6c5e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,8 @@ git-annex (10.20250521) UNRELEASED; urgency=medium entering an adjusted branch. * map: Support --json option. * map: Improve display of remote names. + * Windows: Fix duplicate file bug that could occur when files were + supposed to be moved across devices. -- Joey Hess Thu, 22 May 2025 12:43:38 -0400 diff --git a/Utility/MoveFile.hs b/Utility/MoveFile.hs index 54e156920b..e327e0b4f1 100644 --- a/Utility/MoveFile.hs +++ b/Utility/MoveFile.hs @@ -65,10 +65,12 @@ moveFile src dest = tryIO (renamePath src dest) >>= onrename let (ok, e') = case r of Left err -> (False, err) Right _ -> (True, e) + when ok $ + void $ tryIO $ removeFile src #endif unless ok $ do -- delete any partial - _ <- tryIO $ removeFile tmp + void $ tryIO $ removeFile tmp throwM e' #ifndef mingw32_HOST_OS