From 454fd01fb7ea8b23a46849cdc6982f77064593cf Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 11 Mar 2013 14:14:45 -0400 Subject: finish fast direct mode rename handling. wow, it's fast --- Command/Add.hs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'Command/Add.hs') diff --git a/Command/Add.hs b/Command/Add.hs index 7100006c6..343ffbe95 100644 --- a/Command/Add.hs +++ b/Command/Add.hs @@ -125,11 +125,7 @@ ingest (Just source) = do godirect (Just (key, _)) (Just cache) = do writeInodeCache key cache - void $ addAssociatedFile key $ keyFilename source - unlessM crippledFileSystem $ - liftIO $ allowWrite $ keyFilename source - when (contentLocation source /= keyFilename source) $ - liftIO $ nukeFile $ contentLocation source + finishIngestDirect key source return $ Just key godirect _ _ = failure @@ -138,6 +134,14 @@ ingest (Just source) = do liftIO $ nukeFile $ contentLocation source return Nothing +finishIngestDirect :: Key -> KeySource -> Annex () +finishIngestDirect key source = do + void $ addAssociatedFile key $ keyFilename source + unlessM crippledFileSystem $ + liftIO $ allowWrite $ keyFilename source + when (contentLocation source /= keyFilename source) $ + liftIO $ nukeFile $ contentLocation source + perform :: FilePath -> CommandPerform perform file = maybe stop (\key -> next $ cleanup file key True) -- cgit v1.2.3