svnsync initialize (init)
svnsync initialize (init) — 初始化一个镜像仓库.
大纲
svnsync initialize
MIRROR_URL
SOURCE_URL
描述
svnsync initialize 先检查目标仓库是否符合 作为镜像仓库的基本要求, 然后把初始的管理信息记录到镜像仓库中, 初始的管理信息把镜像仓库与源仓库 (由参数 SOURCE_URL
指定) 关联起来. 这是针对 镜像仓库的第一步操作.
一般情况下, SOURCE_URL
是源仓库 根目录的 URL. Subversion 1.5 及更新的版本允许用户针对仓库的子目录 进行同步—方法是把 SOURCE_URL
写成欲同步的仓库子目录的 URL.
默认情况下, 上面提到的作为镜像仓库的基本要求指的是仓库 允许修改版本号属性, 并且不含有任何版本历史. 然而, 从 Subversion 1.7 开始, 用户可以通过选项 --allow-non-empty
来 允许含有版本历史的仓库作为镜像仓库. 但是用户不应该习惯性地使用该 选项 (因为它同时还会关掉保护机制), 而是只在这样一种情景下使用: 初始化一个已有的仓库副本, 用它作为源仓库的镜像仓库. 如果仓库已经 包含了大量的版本历史, 那么直接把它作为镜像仓库将会非常方便. 为了 创建一个镜像仓库, 比较普通的做法是先初始化一个空仓库, 然后再同步 全部的版本历史, 但是更好的做法是先复制出一个仓库副本 (例如使用命令 svnadmin hotcopy), 再用 svnsync initialize --allow-non-empty 把仓库副本 初始化成一个镜像仓库, 管理员将会看到后面这种做法会快得多.
选项
--allow-non-empty
--config-dir
DIR
--config-option
CONFSPEC
--disable-locking
--no-auth-cache
--non-interactive
--quiet
(-q
)--source-password
PASSWD
--source-prop-encoding
ARG
--source-username
NAME
--steal-lock
--sync-password
PASSWD
--sync-username
NAME
--trust-server-cert
示例
如果目标仓库禁止修改版本号属性, svnsync initialize 将会失败:
$ svnsync initialize file:///var/svn/repos-mirror \ http://svn.example.com/repos svnsync: Repository has not been enabled to accept revision propchanges; ask the administrator to create a pre-revprop-change hook $
把一个仓库初始化镜像仓库, 该仓库已经通过钩子脚本 pre-revprop-change 来允许修改版本号属性:
$ svnsync initialize file:///var/svn/repos-mirror \ http://svn.example.com/repos Copied properties for revision 0. $