本节内容正在撰写中,可能会发生很大变化,可能无法准确描述 Apache™ Subversion® 软件的任何已发布版本。 将此页面添加为书签或以其他方式将其推荐给他人可能不是一个好主意。 请访问 https://svnbook.subversion.org.cn/ 获取本书的稳定版本。
svnsync 初始化 (init) — 初始化一个镜像仓库,以便从源仓库同步。
svnsync initialize MIRROR_URL SOURCE_URL
svnsync initialize 验证一个仓库是否满足新的镜像仓库的基本要求,并记录将镜像仓库与源仓库(由 SOURCE_URL
指定)关联的初始管理信息。 这是您在将要使用的镜像仓库上运行的第一个 svnsync 操作。
通常,SOURCE_URL
是您想要镜像的 Subversion 仓库的根目录的 URL。 Subversion 1.5 及更高版本允许您使用 svnsync 进行部分仓库镜像,您只需将您想要镜像的源仓库子目录的 URL 指定为 SOURCE_URL
。
默认情况下,上述镜像的基本要求是它允许修订属性修改,并且它不包含版本历史记录。 但是,从 Subversion 1.7 开始,您现在可以选择使用 --allow-non-empty
选项禁用目标仓库为空的验证。 虽然不应习惯性地使用此选项(因为它绕过了宝贵的安全机制),但它确实有助于一个非常常见的用例:将仓库的副本初始化为原始仓库的镜像。 这在设置包含大量版本历史记录的仓库的新镜像时尤其有用。 管理员会发现,与其初始化一个全新的仓库作为镜像,然后将所有历史记录同步到其中,不如先复制成熟的仓库(可能使用 svnadmin hotcopy),然后再使用 svnsync initialize --allow-non-empty 初始化该副本作为镜像,现在该副本已经与原始仓库保持同步。 这会 显著 地加快速度。
由于无法修改修订属性而无法初始化镜像仓库
$ 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. $