我一直在桌面PC上使用Tortoise SVN(和VisualSVN)和本地存储库几个月。我们刚刚建立了一个Linux SVN服务器,我想将我的存储库移动到这个服务器,保留我的所有历史记录。一旦移动,我将停止使用本地存储库。
Tortoise文档建议使用“Relocate ...”命令,但这会抱怨UUID不匹配。我找到了一些关于如何编辑UUID文件以使其与服务器匹配的建议,但是即使重新启动,Tortoise也会忽略新值。
此外,我目前没有对Linux服务器的命令行访问权限,但如果必须,可能会获得它。
最好的方法是什么?
答案 0 :(得分:9)
您需要svnadmin dump
您的本地存储库,将该转储文件放到Linux计算机上,然后svnadmin load
放在那里。
Relocate
用于您的工作副本。
答案 1 :(得分:2)
您最好的选择是阅读红豆书中的Migrating a repository部分
答案 2 :(得分:2)
如果您使用 FSFS-repository后端(这是自svn 1.3以来的标准),您只需将整个存储库目录(例如,通过SCP)文件复制到LINUX服务器。然后重定位应该没有问题,因为它实际上是同一个存储库。
FSFS repo格式与平台兼容(请检查linux svn版本是否与visualSVN版本相同或更高)
我经常这样做而且确实有效(当然在复制回购之前停止提交要好得多)
答案 3 :(得分:1)
我刚刚尝试了以下(作为对绝望的回应):
使用TortoiseSVN创建存储库,而另一端没有运行SVN(仅限共享资源)。所以,我安装了新的SVN服务器并使用它的二进制文件来运行
C:\csvn> svnrdump dump file://server_ip/shared_resource/project > projectDump.svndump
其中server_ip是创建存储库的服务器的ip。它奏效了!只需要共享文件夹的权限(在我的情况下,我在Active Directory中有一个用户登录旧的存储库服务器和新的服务器)。
只是猜测这个信息可以帮助像我这样的人正在大量迁移糟糕的设置。