Brent Asked: 2009-06-24 05:02:46 +0800 CST2009-06-24 05:02:46 +0800 CST 2009-06-24 05:02:46 +0800 CST 如何迁移 subversion 存储库 772 我在不同的服务器上有 2 个 Debian 颠覆设置,并且已决定关闭其中一个服务器。但在此之前,我想将一台服务器上的所有存储库移动到另一台服务器(包括所有历史修订等)。 这是怎么做到的? 我可以简单地将 /var/lib/svn/ repo-name的内容复制到另一台服务器上的/var/lib/svn/ repo-name吗?或者还有更多的东西吗? 我还需要对权限/所有权做些什么吗? migration svn 3 个回答 Voted Best Answer Richard Slater 2009-06-24T05:15:16+08:002009-06-24T05:15:16+08:00 如果 SVN 环境相同,则仅应复制文件,否则: 在您要从中迁移的机器上使用 svnadmin 创建转储文件:svnadmin 转储 myrepos > 转储文件 在剩余的服务器上创建新的存储库 将转储文件加载到:svnadmin 加载 newrepos < 转储文件 从旧服务器复制任何自定义和/或挂钩脚本。 如果 URL 已在交换机中更改,请使用以下命令切换任何工作副本:svn switch --relocate http://new-server.lan/repos/repo。 这全部来自SVN Book。 Evan Anderson 2009-06-24T05:09:19+08:002009-06-24T05:09:19+08:00 您最好从旧存储库中转储并加载到新存储库中。这是将一个存储库迁移到另一个存储库的最干净、最“受支持”的方式。您可以尝试复制文件,但如果您没有在相同的处理器架构上迁移到相同版本的 Subversion(是的 - 如果您使用的是 BerkeleyDB,您可能会遇到字节序问题......在一个Alpha 到 Intel SVN 迁移一次)你可能会遇到问题。 查看http://svnbook.red-bean.com/en/1.1/ch05s03.html,在标题为“迁移存储库”的部分下。 (当我们没有足够的临时空间来保存转储文件的副本时,我的一个朋友在两个盒子之间通过 netcat 做过一次!它也有效......) Taras Chuhay 2009-06-24T05:13:54+08:002009-06-24T05:13:54+08:00 有不止一种方法可以做到: 停止 svn 服务器,而不仅仅是复制目录的内容。 svnadmin 转储 PATH_TO_REPOS,然后在目标服务器上 #svnadmin load PATH_TO_MIRROR 请注意,svnadmin dump 不会转储您的存储库配置文件和挂钩脚本。
如果 SVN 环境相同,则仅应复制文件,否则:
这全部来自SVN Book。
您最好从旧存储库中转储并加载到新存储库中。这是将一个存储库迁移到另一个存储库的最干净、最“受支持”的方式。您可以尝试复制文件,但如果您没有在相同的处理器架构上迁移到相同版本的 Subversion(是的 - 如果您使用的是 BerkeleyDB,您可能会遇到字节序问题......在一个Alpha 到 Intel SVN 迁移一次)你可能会遇到问题。
查看http://svnbook.red-bean.com/en/1.1/ch05s03.html,在标题为“迁移存储库”的部分下。
(当我们没有足够的临时空间来保存转储文件的副本时,我的一个朋友在两个盒子之间通过 netcat 做过一次!它也有效......)
有不止一种方法可以做到:
svnadmin 转储 PATH_TO_REPOS,然后在目标服务器上 #svnadmin load PATH_TO_MIRROR
请注意,svnadmin dump 不会转储您的存储库配置文件和挂钩脚本。