本手册旨在描述 Apache™ Subversion® 的 1.7.x 系列。如果您运行的是其他版本的 Subversion,强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅适合您 Subversion 版本的文档。
svnsync 初始化 (init) — 初始化一个镜像仓库,用于从源仓库同步。
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. $