summaryrefslogtreecommitdiff
path: root/Command/Move.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Command/Move.hs')
-rw-r--r--Command/Move.hs10
1 files changed, 8 insertions, 2 deletions
diff --git a/Command/Move.hs b/Command/Move.hs
index 907bbf00e..3ac5a7ab2 100644
--- a/Command/Move.hs
+++ b/Command/Move.hs
@@ -84,8 +84,14 @@ toStart dest move file = isAnnexed file $ \(key, _) -> do
return $ Just $ toPerform dest move key
toPerform :: Remote.Remote Annex -> Bool -> Key -> CommandPerform
toPerform dest move key = do
- -- checking the remote is expensive, so not done in the start step
- isthere <- Remote.hasKey dest key
+ -- Checking the remote is expensive, so not done in the start step.
+ -- In fast mode, location tracking is assumed to be correct,
+ -- and an explicit check is not done, when copying. When moving,
+ -- it has to be done, to avoid inaverdent data loss.
+ fast <- Annex.getState Annex.fast
+ isthere <- if fast && not move
+ then return $ Right True
+ else Remote.hasKey dest key
case isthere of
Left err -> do
showNote $ show err