do tmp dir cleanup in error case too
authorJoey Hess <joeyh@joeyh.name>
Thu, 15 Oct 2015 18:27:14 +0000 (14:27 -0400)
committerJoey Hess <joeyh@joeyh.name>
Thu, 15 Oct 2015 18:27:14 +0000 (14:27 -0400)
Annex/Direct.hs

index eb8d4842d5c139396d19c8d5ca5db7331c5b0d66..495ff5e75fbd93ff39c3b246a3679298a55c514f 100644 (file)
@@ -182,8 +182,9 @@ mergeDirect startbranch oldref branch resolvemerge commitmode = exclusively $ do
                                mergeDirectCommit merged startbranch branch commitmode
                                liftIO $ whenM (doesFileExist tmpi) $
                                        rename tmpi reali
-                       else liftIO $ nukeFile tmpi
-
+                       else do
+                               liftIO $ nukeFile tmpi
+               liftIO $ removeDirectoryRecursive d
                return ok
   where
        exclusively = withExclusiveLock gitAnnexMergeLock
@@ -233,9 +234,7 @@ mergeDirectCommit allowff old branch commitmode = do
        canff = maybe (return False) (\o -> inRepo $ Git.Branch.fastForwardable o branch) old
 
 mergeDirectCleanup :: FilePath -> Git.Ref -> Annex ()
-mergeDirectCleanup d oldref = do
-       updateWorkTree d oldref False
-       liftIO $ removeDirectoryRecursive d
+mergeDirectCleanup d oldref = updateWorkTree d oldref False
 
 {- Updates the direct mode work tree to reflect the changes staged in the
  - index by a git command, that was run in a temporary work tree.