本文档旨在描述 Apache™ Subversion® 的 1.7.x 系列。如果您运行的是不同版本的 Subversion,强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅适合您 Subversion 版本的文档。
svnsync 是 Subversion 远程仓库镜像工具。简而言之,它允许您将一个仓库的修订版本重播到另一个仓库中。
在任何镜像场景中,都有两个仓库:源仓库和镜像(或 “接收”)仓库。源仓库是 svnsync 从中提取修订版本的仓库。镜像仓库是源仓库提取的修订版本的目的地。每个仓库都可以是本地或远程的——它们只通过其 URL 访问。
svnsync 过程只需要对源仓库的读访问权限;它永远不会尝试修改它。但显然,svnsync 需要对镜像仓库的读写访问权限。
![]() |
警告 |
---|---|
svnsync 对镜像仓库中未作为镜像操作的一部分进行的更改非常敏感。为了防止这种情况发生,最好让 svnsync 过程成为唯一允许修改镜像仓库的过程。 |
在 svnsync 中的选项是全局的,就像它们在 svn 和 svnadmin 中一样。
--allow-non-empty
禁用验证(svnsync initialize 默认执行),即正在初始化的仓库是否为空历史版本。
--config-dir
DIR
指示 Subversion 从指定的目录而不是默认位置(用户主目录中的 .subversion
)读取配置信息。
--config-option
CONFSPEC
在命令执行期间设置运行时配置选项的值。 CONFSPEC
是一个字符串,它指定要分配的配置选项命名空间、名称和值,格式为 FILE
:SECTION
:OPTION
=[VALUE
]。在此语法中,FILE
和 SECTION
分别是包含要更改其值的选项的运行时配置文件(config
或 servers
)及其部分。 OPTION
当然是选项本身,而 VALUE
是您希望分配给选项的值(如果有)。例如,要暂时禁用 HTTP 协议中压缩的使用,请使用 --config-option=servers:global:http-compression=no
。您可以多次使用此选项来同时更改多个选项值。
--disable-locking
使 svnsync 绕过其自身的独占访问机制,并假设通过其他带外机制保证了其对镜像仓库的独占访问。
--no-auth_cache
防止在 Subversion 运行时配置目录中缓存身份验证信息(例如,用户名和密码)。
--non-interactive
在身份验证失败或凭据不足的情况下,防止提示输入凭据(例如,用户名或密码)。如果您在自动脚本中运行 Subversion,并且让 Subversion 失败比提示输入更多信息更合适,这将很有用。
--quiet
(-q
)
请求客户端在执行操作时仅打印基本信息。
--revision
(-r
) ARG
由 svnsync copy-revprops 用于指定要操作的特定修订版本或修订版本范围。
--source-password
PASSWD
指定您要同步的 Subversion 服务器的密码。如果未提供或不正确,Subversion 会在需要时提示您输入此信息。
--source-prop-encoding ARG
指示 svnsync 假设在源仓库中找到的可翻译 Subversion 修订版本属性使用字符编码 ARG
存储,并将它们在复制到镜像仓库时转码为 UTF-8。
--source-username
NAME
指定您要同步的 Subversion 服务器的用户名。如果未提供或不正确,Subversion 会在需要时提示您输入此信息。
--steal-lock
使 svnsync 在必要时窃取它在镜像仓库上使用的锁,以确保对仓库的独占访问。(此选项仅应在镜像仓库中存在锁并且已知该锁已过期时使用,即,当您确定没有其他 svnsync 进程访问该仓库时。)
--sync-password
PASSWD
指定您要同步到的 Subversion 服务器的密码。如果未提供或不正确,Subversion 会在需要时提示您输入此信息。
--sync-username
NAME
指定您要同步到的 Subversion 服务器的用户名。如果未提供或不正确,Subversion 将在需要时提示您输入此信息。
--trust-server-cert
与 --non-interactive
一起使用,以接受任何未知的 SSL 服务器证书,无需提示。