summaryrefslogtreecommitdiff
path: root/Annex/Direct.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Annex/Direct.hs')
-rw-r--r--Annex/Direct.hs16
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