Remote.Git removeKey works with annex+http urls
Does not yet handle drop proof lock timestamp checking.
This commit is contained in:
parent
fd3bdb2300
commit
9fa9678585
4 changed files with 38 additions and 36 deletions
|
@ -43,17 +43,15 @@ store remoteuuid gc runner k af o p = do
|
|||
metered (Just p) sizer bwlimit $ \_ p' ->
|
||||
runner (P2P.put k af p') >>= \case
|
||||
Just (Just fanoutuuids) ->
|
||||
storeFanout k remoteuuid fanoutuuids
|
||||
storeFanout k InfoPresent remoteuuid fanoutuuids
|
||||
Just Nothing -> giveup "Transfer failed"
|
||||
Nothing -> remoteUnavail
|
||||
|
||||
storeFanout :: Key -> UUID -> [UUID] -> Annex ()
|
||||
storeFanout k remoteuuid us =
|
||||
-- Storing on the remote can cause it to be stored on additional UUIDs,
|
||||
-- so record those.
|
||||
storeFanout :: Key -> LogStatus -> UUID -> [UUID] -> Annex ()
|
||||
storeFanout k logstatus remoteuuid us =
|
||||
forM_ us $ \u ->
|
||||
when (u /= remoteuuid) $
|
||||
logChange k u InfoPresent
|
||||
logChange k u logstatus
|
||||
|
||||
retrieve :: RemoteGitConfig -> (ProtoRunner (Bool, Verification)) -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> VerifyConfig -> Annex Verification
|
||||
retrieve gc runner k af dest p verifyconfig = do
|
||||
|
@ -67,20 +65,16 @@ retrieve gc runner k af dest p verifyconfig = do
|
|||
|
||||
remove :: UUID -> ProtoRunner (Either String Bool, Maybe [UUID]) -> Maybe SafeDropProof -> Key -> Annex ()
|
||||
remove remoteuuid runner proof k = runner (P2P.remove proof k) >>= \case
|
||||
Just (Right True, alsoremoveduuids) -> note alsoremoveduuids
|
||||
Just (Right True, alsoremoveduuids) ->
|
||||
storeFanout k InfoMissing remoteuuid
|
||||
(fromMaybe [] alsoremoveduuids)
|
||||
Just (Right False, alsoremoveduuids) -> do
|
||||
note alsoremoveduuids
|
||||
storeFanout k InfoMissing remoteuuid
|
||||
(fromMaybe [] alsoremoveduuids)
|
||||
giveup "removing content from remote failed"
|
||||
Just (Left err, _) -> do
|
||||
giveup (safeOutput err)
|
||||
Nothing -> remoteUnavail
|
||||
where
|
||||
-- The remote reports removal from other UUIDs than its own,
|
||||
-- so record those.
|
||||
note alsoremoveduuids =
|
||||
forM_ (fromMaybe [] alsoremoveduuids) $ \u ->
|
||||
when (u /= remoteuuid) $
|
||||
logChange k u InfoMissing
|
||||
|
||||
checkpresent :: ProtoRunner (Either String Bool) -> Key -> Annex Bool
|
||||
checkpresent runner k =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue