4. svnsync—Subversion Repository Mirroring

svnsync is the Subversion remote repository mirroring tool. Put simply, it allows you to replay the revisions of one repository into another one.

In any mirroring scenario, there are two repositories: the source repository, and the mirror (or sink) repository. The source repository is the repository from which svnsync pulls revisions. The mirror repository is the destination for the revisions pulled from the source repository. Each of the repositories may be local or remote—they are only ever addressed by their URLs.

The svnsync process requires only read access to the source repository; it never attempts to modify it. But obviously, svnsync requires both read and write access to the mirror repository.

[警告] 警告

svnsync is very sensitive to changes made in the mirror repository that weren't made as part of a mirroring operation. To prevent this from happening, it's best if the svnsync process is the only process permitted to modify the mirror repository.

4.1. svnsync 选项

Options in svnsync are global, just as they are in svn and svnadmin:

--config-dir DIR

指导Subversion从指定目录而不是默认位置(用户主目录的.subversion)读取配置信息。

--no-auth-cache

Prevents caching of authentication information (e.g., username and password) in the Subversion runtime configuration directories.

--non-interactive

In the case of an authentication failure or insufficient credentials, prevents prompting for credentials (e.g., username or password). This is useful if you're running Subversion inside an automated script and it's more appropriate to have Subversion fail than to prompt for more information.

--quiet (-q)

请求客户端在执行操作时只显示重要信息。

--source-password PASSWD

指定你要同步的源 Subversion 服务器的密码。如果没有提供,或者不正确,在需要时,Subversion 会提示你输入。

--source-username NAME

指定你要同步的源 Subversion 服务器的用户。如果没有提供,或者不正确,在需要时,Subversion 会提示你输入。

--sync-password PASSWD

指定你要同步的目标 Subversion 服务器的密码。如果没有提供,或者不正确,在需要时,Subversion 会提示你输入。

--sync-username NAME

指定你要同步的目标 Subversion 服务器的用户。如果没有提供,或者不正确,在需要时,Subversion 会提示你输入。

--trust-server-cert

Used with --non-interactive to accept any unknown SSL server certificates without prompting.

4.2. svnsync 子命令

Here are the various subcommands for the svnsync program.