--auto fixes
* get/copy --auto: Transfer data even if it would exceed numcopies, when preferred content settings want it. * drop --auto: Fix dropping content when there are no preferred content settings.
This commit is contained in:
parent
28cfd6776d
commit
99a8a5297c
12 changed files with 50 additions and 48 deletions
|
@ -58,7 +58,7 @@ handleDropsFrom locs rs fromhere key (Just f) knownpresentremote
|
|||
| checkcopies n = dropr r n >>= go rest
|
||||
| otherwise = noop
|
||||
|
||||
checkdrop n@(_, numcopies) u a = ifM (wantDrop u (Just f))
|
||||
checkdrop n@(_, numcopies) u a = ifM (wantDrop True u (Just f))
|
||||
( ifM (safely $ doCommand $ a (Just numcopies))
|
||||
( return $ decrcopies n
|
||||
, return n
|
||||
|
|
|
@ -124,9 +124,9 @@ expensiveScan rs = unless onlyweb $ do
|
|||
let slocs = S.fromList locs
|
||||
let use a = return $ catMaybes $ map (a key slocs) syncrs
|
||||
if present
|
||||
then filterM (wantSend (Just f) . Remote.uuid . fst)
|
||||
then filterM (wantSend True (Just f) . Remote.uuid . fst)
|
||||
=<< use (genTransfer Upload False)
|
||||
else ifM (wantGet $ Just f)
|
||||
else ifM (wantGet True $ Just f)
|
||||
( use (genTransfer Download True) , return [] )
|
||||
|
||||
genTransfer :: Direction -> Bool -> Key -> S.Set UUID -> Remote -> Maybe (Remote, Transfer)
|
||||
|
|
|
@ -52,7 +52,7 @@ queueTransfers = queueTransfersMatching (const True)
|
|||
- condition. Honors preferred content settings. -}
|
||||
queueTransfersMatching :: (UUID -> Bool) -> Schedule -> Key -> AssociatedFile -> Direction -> Assistant ()
|
||||
queueTransfersMatching matching schedule k f direction
|
||||
| direction == Download = whenM (liftAnnex $ wantGet f) go
|
||||
| direction == Download = whenM (liftAnnex $ wantGet True f) go
|
||||
| otherwise = go
|
||||
where
|
||||
go = do
|
||||
|
@ -72,7 +72,7 @@ queueTransfersMatching matching schedule k f direction
|
|||
uuids <- Remote.keyLocations k
|
||||
return $ filter (\r -> uuid r `elem` uuids) rs
|
||||
{- Upload to all remotes that want the content. -}
|
||||
| otherwise = filterM (wantSend f . Remote.uuid) $
|
||||
| otherwise = filterM (wantSend True f . Remote.uuid) $
|
||||
filter (not . Remote.readonly) rs
|
||||
gentransfer r = Transfer
|
||||
{ transferDirection = direction
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue