From 61dbad505d648f13394018c31ce2d718c175007e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 20 Jan 2012 13:23:11 -0400 Subject: fsck --from remote --fast Avoids expensive file transfers, at the expense of checking file size and/or contents. Required some reworking of the remote code. --- Remote/Directory.hs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'Remote/Directory.hs') diff --git a/Remote/Directory.hs b/Remote/Directory.hs index 5cdb89f33..52f426340 100644 --- a/Remote/Directory.hs +++ b/Remote/Directory.hs @@ -41,6 +41,7 @@ gen r u c = do name = Git.repoDescribe r, storeKey = store dir, retrieveKeyFile = retrieve dir, + retrieveKeyFileCheap = retrieveCheap dir, removeKey = remove dir, hasKey = checkPresent dir, hasKeyCheap = True, @@ -109,11 +110,12 @@ storeHelper d key a = do preventWrite dir return ok -retrieve :: FilePath -> Key -> Bool -> FilePath -> Annex Bool -retrieve d k tmp f = liftIO $ withStoredFile d k $ \file -> - if tmp - then catchBoolIO $ createSymbolicLink file f >> return True - else copyFileExternal file f +retrieve :: FilePath -> Key -> FilePath -> Annex Bool +retrieve d k f = liftIO $ withStoredFile d k $ \file -> copyFileExternal file f + +retrieveCheap :: FilePath -> Key -> FilePath -> Annex Bool +retrieveCheap d k f = liftIO $ withStoredFile d k $ \file -> + catchBoolIO $ createSymbolicLink file f >> return True retrieveEncrypted :: FilePath -> (Cipher, Key) -> FilePath -> Annex Bool retrieveEncrypted d (cipher, enck) f = -- cgit v1.2.3