如何将本地的Tortoise SVN仓库迁移到我们的新Linux SVN服务器?

6
我已经使用Tortoise SVN (和VisualSVN)在我的桌面电脑上使用本地存储库几个月了。我们刚刚建立了一个Linux SVN服务器,我想将我的存储库移动到此服务器,并保留所有历史记录。一旦移动完成,我将停止使用本地存储库。
Tortoise文档建议使用“Relocate…”命令,但这会导致UUID不匹配的问题。我找到了一些关于如何编辑UUID文件以使其与服务器匹配的建议,但是即使重启后,Tortoise仍然忽略新值。
另外,我目前没有对Linux服务器进行命令行访问,但如果必要,我可能可以获得它。
最佳方法是什么?
4个回答

9

您需要使用svnadmin dump命令将本地代码库备份,将备份文件传输到Linux机器上并使用svnadmin load命令导入备份。

完成上述步骤后,可以在工作副本中使用Relocate命令。

这里是相关文档。


svnadmin dump 运行良好 - 谢谢!然而,Relocate 仍然抱怨 UUID 不匹配。此外,VisualSVN 坚持引用旧的本地存储库。经过一番折腾,我重命名了所有的工作副本,然后在新的工作目录中进行了全新的检出。当我确认一切都能够正常构建和运行时,我删除了旧的工作副本。 - Tom Bushell

2

2
如果您使用的是FSFS存储库后端(这是自svn 1.3以来的标准),您只需将整个存储库目录(例如通过SCP)文件复制到LINUX服务器即可。然后,重新定位应该不会有问题,因为它实际上是相同的存储库。
FSFS repo格式与平台兼容(请检查Linux svn版本是否与您的VisualSVN版本相同或更高)。
我经常这样做,它确实有效(当然,在复制存储库之前停止提交要好得多)。

1
我刚刚尝试了以下方法(作为对强烈绝望的回应):
这些仓库是使用TortoiseSVN创建的,而另一侧没有运行SVN(只有一个共享资源)。因此,我安装了新的SVN服务器,并使用其二进制文件来运行。
C:\csvn> svnrdump dump file://server_ip/shared_resource/project > projectDump.svndump

其中server_ip是创建存储库的服务器的IP地址。然后它起作用了!只需要对共享文件夹授予权限(在我的情况下,我有一个用户可以登录旧的存储库服务器和新的存储库服务器的Active Directory中)。

只是猜想这些信息可能会帮助任何像我一样正在艰难迁移糟糕设置的人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接