From 0c893f8743bab81077e3ee0fed0993b746d7a269 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 9 Jan 2013 18:42:29 -0400 Subject: Special remotes now all rollback storage of keys that get modified during the transfer, which can happen in direct mode. --- Command/SendKey.hs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'Command') diff --git a/Command/SendKey.hs b/Command/SendKey.hs index 82c159f66..dfdec7f92 100644 --- a/Command/SendKey.hs +++ b/Command/SendKey.hs @@ -24,11 +24,16 @@ seek = [withKeys start] start :: Key -> CommandStart start key = ifM (inAnnex key) ( fieldTransfer Upload key $ \_p -> - sendAnnex key $ liftIO . rsyncServerSend + sendAnnex key rollback $ liftIO . rsyncServerSend , do warning "requested key is not present" liftIO exitFailure ) + where + {- No need to do any rollback; when sendAnnex fails, a nonzero + - exit will be propigated, and the remote will know the transfer + - failed. -} + rollback = noop fieldTransfer :: Direction -> Key -> (MeterUpdate -> Annex Bool) -> CommandStart fieldTransfer direction key a = do -- cgit v1.2.3