This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.

svnsync 参考手册—Subversion 仓库镜像工具


svnsync 是 Subversion 的远程仓库镜像工具, 简单 地说, 它允许你在仓库中重放另一个仓库的版本号.

在做镜像时, 总是存在两个仓库: 源仓库和镜像仓库. svnsync 从源仓库获取版本号, 再到镜像仓库中重放版本 号. 任意一个仓库都可以是远程的或本地的—svnsync 只是通过 URL 对它们进行寻址.

svnsync 只要求对源仓库具有读取权限, 它不会试图 去修改源仓库的任何数据. 当然, svnsync 要求对镜像 仓库具有读写权限.

[警告] 警告

svnsync 对于不是由镜像操作产生的修改非常 敏感, 因此最好的做法是仅允许 svnsync 对镜像 仓库进行修改.

svnsync 的选项都是全局的:

svnsync 选项

--allow-non-empty

不去核实被初始化的仓库是否是一个版本历史为空的仓库 (默认情况下, svnsync initialize 会去核实).

--config-dir DIR

告诉 Subversion 从指定的目录中读取配置信息, 而不是从默认目录 (用户家目录里的 .subversion) 中读取.

--config-option CONFSPEC

在命令运行期间, 设置运行时配置选项的值. CONFSPEC 是一个字符串, 指定了运行时 配置选项的名字空间, 选项名和选项值, 格式是 FILE:SECTION:OPTION=[VALUE]. 其中, FILESECTION 分别是运行时配置文件 (configservers) 和节, 它们包含了用户希望修改的选项. OPTION 是选项名, VALUE 是选项值 (如果有的话). 例如, 为了临时禁止 HTTP 压缩, 可以写成 --config-option=servers:global:http-compression=no. 选项 --config-option 可以在命令行上出现多次, 从而同时修改多个选项.

--disable-locking

告诉 svnsync 不要使用自己的互斥访问机制, 而是假定镜像仓库的互斥访问已经通过其他带外机制实现了.

--no-auth-cache

禁止在 Subversion 运行时配置目录中缓存认证信息 (例如用户名和密码).

--non-interactive

如果认证失败, 或者证书不充分, 将不再提示输入证书 (例如 用户名和密码). 如果在一个自动化运行的脚本中使用 Subversion, 那么这个选项就会很有用, 当遇到错误时, 更好的做法是立刻失败退出, 而不是请求输入更多的数据.

--quiet (-q)

只输出重要的信息.

--revision (-r) ARG

svnsync copy-revprops 指定版本号或 版本号范围.

--source-password PASSWD

指定源仓库的密码, 如果没有指定或者密码不正确, Subversion 在需要时会提示用户输入密码.

--source-prop-encoding ARG

告诉 svnsync 在源仓库发现的版本号属性, 如果它是可翻译的, 则假定属性使用的字符编码是 ARG, 把这些属性复制到镜像仓库时, 把字符编码转换成 UTF-8.

--source-username NAME

指定源仓库的用户名, 如果没有指定或用户名不正确, Subversion 在需要时会提示用户输入用户名.

--steal-lock

使得 svnsync 在必要时去窃取锁, 从而保证对 镜像仓库的互斥访问. (用户应该只在以下情况下才去使用该选项— 锁在镜像仓库中存在, 并且不再新鲜了, 即没有其他 svnsync 进程正在访问仓库.)

--sync-password PASSWD

指定镜像仓库的密码. 如果没有指定或者密码不正确, Subversion 在需要时会提示用户输入密码.

--sync-username NAME

指定镜像仓库的用户名, 如果没有指定或用户名不正确, Subversion 在需要时会提示用户输入用户名.

--trust-server-cert

--non-interactive 一起使用, 告诉 Subversion 接受任意一个未知的 SSL 服务器证书, 不要向用户提示.