avoid error message when doing get --from on file not present on remote

This commit is contained in:
Joey Hess 2011-11-18 17:09:10 -04:00
parent c50a5fbeb4
commit 1b90918cec
2 changed files with 18 additions and 8 deletions

View file

@ -27,14 +27,20 @@ start numcopies file (key, _) = do
if inannex if inannex
then stop then stop
else autoCopies key (<) numcopies $ do else autoCopies key (<) numcopies $ do
showStart "get" file
from <- Annex.getState Annex.fromremote from <- Annex.getState Annex.fromremote
case from of case from of
Nothing -> next $ perform key Nothing -> go $ perform key
Just name -> do Just name -> do
-- get --from = copy --from -- get --from = copy --from
src <- Remote.byName name src <- Remote.byName name
next $ Command.Move.fromPerform src False key ok <- Command.Move.fromOk src key
if ok
then go $ Command.Move.fromPerform src False key
else stop
where
go a = do
showStart "get" file
next a
perform :: Key -> CommandPerform perform :: Key -> CommandPerform
perform key = do perform key = do

View file

@ -117,13 +117,17 @@ fromStart src move file key
if ishere then stop else go if ishere then stop else go
where where
go = do go = do
u <- getUUID ok <- fromOk src key
remotes <- Remote.keyPossibilities key if ok
if u == Remote.uuid src || not (any (== src) remotes) then do
then stop
else do
showMoveAction move file showMoveAction move file
next $ fromPerform src move key next $ fromPerform src move key
else stop
fromOk :: Remote.Remote Annex -> Key -> Annex Bool
fromOk src key = do
u <- getUUID
remotes <- Remote.keyPossibilities key
return $ u /= Remote.uuid src && any (== src) remotes
fromPerform :: Remote.Remote Annex -> Bool -> Key -> CommandPerform fromPerform :: Remote.Remote Annex -> Bool -> Key -> CommandPerform
fromPerform src move key = moveLock move key $ do fromPerform src move key = moveLock move key $ do
ishere <- inAnnex key ishere <- inAnnex key