![SVN迁移--](https://linux22.com/image/65219/SVN%E8%BF%81%E7%A7%BB--.png)
我需要将具有大量存储库的 SVN 服务器迁移到新服务器。旧服务器是在有问题的旧操作系统上构建的,所以我决定重建它。
我只了解 SVN 使用的一些基础知识,并且不确定是否需要采取转储/加载路线,或者是否可以使用 svnsync 迁移到新服务器。
我一直在寻找用于“只读”镜像的 svnsync 参考。这不正是我想要的。我正在尝试将所有数据从现有的 SVN 服务器 A 迁移到新创建的 SVN 服务器 B。
一旦完成,服务器 A 将消失,所有 SVN 用户将使用服务器 B。
到目前为止,我已经创建了新的 SVN 服务器和(空)存储库。
答案1
只是为其他有同样问题的人发帖。问题归结为 svnsync 是否只能用于镜像还是可以用于迁移。
引用戴夫·安德森(Dave Anderson)在谷歌群组中的输入:
它可以用来执行迁移,并且它是执行迁移到Google Code的唯一方法。 Subversion 书中的警告应理解为:“如果您想要只读镜像,请确保您永远不会手动向其提交任何内容,否则 svnsync 将无法再从主存储库同步”。
但是,在内部,svnsync 是一个简单的程序:它从一台服务器请求修订流,并在另一台服务器中重播这些修订。只要目标服务器不发散(即没有任何不在源中的提交),那么 svnsync 就可以增量运行以保持同步。但您也可以只运行一次,以同步两个存储库,然后丢弃原始存储库并开始使用同步副本。
至于 dump/load 和 svnsync 之间的区别,基本区别在于 svnsync 完全通过公共服务器 API 工作,而 dump/load 直接对存储库文件进行操作。两种机制都会为您提供完全相同的数据,但仅实现 svnsync 对我们来说要简单得多。实施转储/加载需要额外的开发时间和资源,但没有多大好处。从历史上看,转储/加载最初更容易实现,但随着时间的推移,对一种公共方式来进行增量转储/加载的需求变得明显,并且 svnsync 出现了。
所以,底线:是的,使用 svnsync。如果您遵循文档,请将 Google 代码视为您的“只读镜子”。同步完成后,只需删除(或存档和备份:)本地存储库,然后像往常一样开始使用 Google 代码存储库。
希望这有帮助,-戴夫