Bugfix: Fix bug in inode cache sentinal check, which broke copying to local repos if the repo being copied from had moved to a different filesystem or otherwise changed all its inodes'

This commit is contained in:
Joey Hess 2013-03-12 16:41:54 -04:00
parent e63a983cf1
commit f7de51e8b6
5 changed files with 32 additions and 3 deletions

View file

@ -351,6 +351,10 @@ copyToRemote r key file p
where
copylocal Nothing = return False
copylocal (Just (object, checksuccess)) = do
-- The checksuccess action is going to be run in
-- the remote's Annex, but it needs access to the current
-- Annex monad's state.
checksuccessio <- Annex.withCurrentState checksuccess
let params = rsyncParams r
u <- getUUID
-- run copy from perspective of remote
@ -360,7 +364,7 @@ copyToRemote r key file p
ensureInitialized
download u key file noRetry $
Annex.Content.saveState True `after`
Annex.Content.getViaTmpChecked checksuccess key
Annex.Content.getViaTmpChecked (liftIO checksuccessio) key
(\d -> rsyncOrCopyFile params object d p)
)