diff options
author | Joey Hess <joey@kitenet.net> | 2012-10-18 16:05:43 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-10-18 16:05:43 -0400 |
commit | a32043b86f1ad52ce33ffba92e6d3a57cff81bfb (patch) | |
tree | 982d3e55ce7bf15c106e748c1765b2f4bd41c3ba /Assistant/Threads | |
parent | d956edbea525138445d4f2d928041e813896d9cd (diff) |
check and drop after uploads
Diffstat (limited to 'Assistant/Threads')
-rw-r--r-- | Assistant/Threads/TransferScanner.hs | 2 | ||||
-rw-r--r-- | Assistant/Threads/TransferWatcher.hs | 13 |
2 files changed, 10 insertions, 5 deletions
diff --git a/Assistant/Threads/TransferScanner.hs b/Assistant/Threads/TransferScanner.hs index 4cd6915f5..631c36b02 100644 --- a/Assistant/Threads/TransferScanner.hs +++ b/Assistant/Threads/TransferScanner.hs @@ -125,7 +125,7 @@ expensiveScan st dstatus transferqueue rs = unless onlyweb $ do syncrs <- liftIO $ syncRemotes <$> getDaemonStatus dstatus present <- inAnnex key - handleDrops locs syncrs present f key + handleDrops' locs syncrs present key (Just f) let slocs = S.fromList locs let use a = return $ catMaybes $ map (a key slocs) syncrs diff --git a/Assistant/Threads/TransferWatcher.hs b/Assistant/Threads/TransferWatcher.hs index 19009756b..e82e4fb08 100644 --- a/Assistant/Threads/TransferWatcher.hs +++ b/Assistant/Threads/TransferWatcher.hs @@ -108,16 +108,21 @@ onDel st dstatus transferqueue file _ = case parseTransferFile file of {- Queue uploads of files we successfully downloaded, spreading them - out to other reachable remotes. - - - Also, downloading a file may have caused a remote to not want it, - - so drop it from the remote. -} + - Downloading a file may have caused a remote to not want it; + - so drop it from the remote. + - + - Uploading a file may cause the local repo, or some other remote to not + - want it; handle that too. + -} finishedTransfer :: ThreadState -> DaemonStatusHandle -> TransferQueue -> Transfer -> Maybe TransferInfo -> IO () finishedTransfer st dstatus transferqueue t (Just info) | transferDirection t == Download = runThreadState st $ whenM (inAnnex $ transferKey t) $ do - handleRemoteDrops dstatus + handleDrops dstatus False (transferKey t) (associatedFile info) queueTransfersMatching (/= transferUUID t) Later transferqueue dstatus (transferKey t) (associatedFile info) Upload - | otherwise = noop + | otherwise = runThreadState st $ + handleDrops dstatus True (transferKey t) (associatedFile info) finishedTransfer _ _ _ _ _ = noop |