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.
This commit is contained in:
Joey Hess 2013-08-20 15:46:35 -04:00
parent f5623af6ec
commit 0f921307e7
10 changed files with 103 additions and 21 deletions

View file

@ -157,6 +157,24 @@ subdirectories).
post-receive hook. Then any syncs to the repository will update its working
copy automatically.
* mirror [path ...]
This causes a destination repository to mirror a source repository.
To use the local repository as the source repository,
specify mirror --to remote.
To use a remote as the source repository, specify mirror --from remote.
Each specified file in the source repository is mirrored to the destination
repository. If a file's content is present in the source repository, it is
copied to the destination repository. If a file's content is not present in
the source repository, it will be dropped from the destination repository
when possible.
Note that mirror does not sync the git repository, but only the file
contents.
* addurl [url ...]
Downloads each url to its own file, which is added to the annex.