diff options
author | Joey Hess <joey@kitenet.net> | 2013-08-20 15:46:35 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-08-20 15:46:35 -0400 |
commit | 856f2f21c654ac9ac87554b9bb0e59b4ba595b10 (patch) | |
tree | acc1557ab3f4e2fed27ea97e2e29c65f3e48b423 /Command/Copy.hs | |
parent | da79efe0dfa97f3cb9e983e54cd1541695b5a39a (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.hs | 5 |
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 ] |