summaryrefslogtreecommitdiff
path: root/Annex/Direct.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Annex/Direct.hs')
-rw-r--r--Annex/Direct.hs6
1 files changed, 5 insertions, 1 deletions
diff --git a/Annex/Direct.hs b/Annex/Direct.hs
index fdc67a720..e6b941e0f 100644
--- a/Annex/Direct.hs
+++ b/Annex/Direct.hs
@@ -354,7 +354,11 @@ toDirectGen k f = do
void $ addAssociatedFile k f
modifyContent loc $ do
thawContent loc
- replaceFile f $ liftIO . moveFile loc
+ replaceFileOr f
+ (liftIO . moveFile loc)
+ $ \tmp -> do -- rollback
+ liftIO (moveFile tmp loc)
+ freezeContent loc
fromdirect loc = do
replaceFile f $
liftIO . void . copyFileExternal loc