diff options
author | Joey Hess <joey@kitenet.net> | 2012-01-19 17:05:39 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-01-19 17:10:44 -0400 |
commit | effaa298fabed963ec8a616d206662682e70e61a (patch) | |
tree | ce77bdefce496d3df63c63fe967d2f79b170b53a /Remote/Rsync.hs | |
parent | f35a84fac750d8e246f3fcd1f25054951eff8b7e (diff) |
optimise fsck --from normal git remotes
For a local git remote, can symlink the file.
For a git remote using rsync, can preseed any local content.
There are a few reasons to use fsck --from on a normal git remote.
One is if it's using gitosis or similar, and you don't have shell access
to run git annex locally. Another reason could be if you just want to
fsck certian files of a bare remote.
Diffstat (limited to 'Remote/Rsync.hs')
-rw-r--r-- | Remote/Rsync.hs | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/Remote/Rsync.hs b/Remote/Rsync.hs index b4ff3d6f1..a1722fe17 100644 --- a/Remote/Rsync.hs +++ b/Remote/Rsync.hs @@ -19,8 +19,6 @@ import Remote.Helper.Special import Remote.Helper.Encryptable import Crypto import Utility.RsyncFile -import Utility.CopyFile -import Utility.FileMode type RsyncUrl = String @@ -106,20 +104,13 @@ storeEncrypted o (cipher, enck) k = withTmp enck $ \tmp -> do retrieve :: RsyncOpts -> Key -> Bool -> FilePath -> Annex Bool retrieve o k tmp f = untilTrue (rsyncUrls o k) $ \u -> do - when tmp $ preseed + when tmp $ preseedTmp k f rsyncRemote o -- use inplace when retrieving to support resuming [ Param "--inplace" , Param u , Param f ] - where - -- this speeds up fsck --from - preseed = unlessM (liftIO $ doesFileExist f) $ - whenM (inAnnex k) $ do - s <- inRepo $ gitAnnexLocation k - liftIO $ whenM (copyFileExternal s f) $ - allowWrite f retrieveEncrypted :: RsyncOpts -> (Cipher, Key) -> FilePath -> Annex Bool retrieveEncrypted o (cipher, enck) f = withTmp enck $ \tmp -> do |