将 SVN 存储库移至新服务器

将 SVN 存储库移至新服务器

如果我在第一台服务器上使用 svnadmin dump,运行 svn 1.6.9,并在运行 svn 1.6.11 的新服务器上恢复它,并且新服务器将具有相同的主机名,URL 将相同,但 IP 地址将不同(我们正在更改旧的 DNS 记录以反映新的 IP 地址):我的用户是否必须重新定位他们的工作副本?

还有其他问题或注意事项吗?或者这听起来很简单?两者都是 Red Hat 服务器或某种版本的 Enterprise Linux。

答案1

我的用户是否必须重新定位他们的工作副本?

这取决于他们如何连接到您的存储库。如果他们通过主机名连接,则不行。如果他们通过 IP 地址连接,则行。

还有其他问题或注意事项吗?或者这听起来很简单?两者都是 Red Hat 服务器或某种版本的 Enterprise Linux。

就这么简单(鉴于您掌握的详细信息)。我做过大量的 SVN 迁移(虽然最近没有),从 Ubuntu 迁移到 Windows 上的 Collabnet,然后再迁移回 Ubuntu 或其他 Linux 版本。但为了确保万无一失,请确保没有人锁定任何文件,因为在传输过程中锁定会丢失(我们遇到过几次这个问题)。

只需记住确保两个盒子上的身份验证规则相同;如果您使用 Apache,mod_ldap那么它可能就像复制虚拟主机指令一样简单,但如果您使用本地用户,那么它可能会更复杂。

答案2

不,你的用户不需要重新定位(如果他们在 repo-URL 中使用主机名),但是你必须不要忘记--force-uuid在加载阶段使用(新 repo 的 UUID 必须与旧 repo 相同),否则用户在任何操作中都会收到“UUID 不匹配”错误

答案3

我完成了几次您描述的练习,没有遇到任何问题。将存储库转储到文件中,复制到新服务器,然后加载它。由于我们使用的是 IP 地址而不是 URL,因此我们必须运行

$ svn switch --relocate  http://<old-ip>/repositories/path/to/my/project http://<new-ip>/repositories/path/to/my/project

对于每个工作副本。

相关内容