diff options
Diffstat (limited to 'Annex/Direct.hs')
-rw-r--r-- | Annex/Direct.hs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/Annex/Direct.hs b/Annex/Direct.hs index 35a5b5013..eb8d4842d 100644 --- a/Annex/Direct.hs +++ b/Annex/Direct.hs @@ -173,16 +173,18 @@ mergeDirect startbranch oldref branch resolvemerge commitmode = exclusively $ do withIndexFile tmpi $ do merged <- stageMerge d branch commitmode - r <- if merged + ok <- if merged then return True else resolvemerge - mergeDirectCleanup d (fromMaybe Git.Sha.emptyTree oldref) - mergeDirectCommit merged startbranch branch commitmode + if ok + then do + mergeDirectCleanup d (fromMaybe Git.Sha.emptyTree oldref) + mergeDirectCommit merged startbranch branch commitmode + liftIO $ whenM (doesFileExist tmpi) $ + rename tmpi reali + else liftIO $ nukeFile tmpi - liftIO $ whenM (doesFileExist tmpi) $ - rename tmpi reali - - return r + return ok where exclusively = withExclusiveLock gitAnnexMergeLock |