aboutsummaryrefslogtreecommitdiff
path: root/Command/Copy.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-08-20 15:46:35 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-08-20 15:46:35 -0400
commit856f2f21c654ac9ac87554b9bb0e59b4ba595b10 (patch)
treeacc1557ab3f4e2fed27ea97e2e29c65f3e48b423 /Command/Copy.hs
parentda79efe0dfa97f3cb9e983e54cd1541695b5a39a (diff)
mirror: New command, makes two repositories contain the same set of files.
This is a simple approach for setting up a mirroring repository. It will work with any type of remotes. Mirror --from is more expensive than mirror --to in general. OTOH, mirror --from will get the file from any remote that has it, not only the named mirror remote. And if the named mirror remote is not the fastest available remote with a file, that can speed things up. It would be possible to make the assistant or watch command do a more dynamic mirroring, that didn't need to scan every time.
Diffstat (limited to 'Command/Copy.hs')
-rw-r--r--Command/Copy.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/Command/Copy.hs b/Command/Copy.hs
index 4e1646ad1..9fd97334a 100644
--- a/Command/Copy.hs
+++ b/Command/Copy.hs
@@ -9,6 +9,7 @@ module Command.Copy where
import Common.Annex
import Command
+import GitAnnex.Options
import qualified Command.Move
import qualified Remote
import Annex.Wanted
@@ -19,8 +20,8 @@ def = [withOptions Command.Move.moveOptions $ command "copy" paramPaths seek
seek :: [CommandSeek]
seek =
- [ withField Command.Move.toOption Remote.byNameWithUUID $ \to ->
- withField Command.Move.fromOption Remote.byNameWithUUID $ \from ->
+ [ withField toOption Remote.byNameWithUUID $ \to ->
+ withField fromOption Remote.byNameWithUUID $ \from ->
withKeyOptions (Command.Move.startKey to from False) $
withFilesInGit $ whenAnnexed $ start to from
]