代码之家  ›  专栏  ›  技术社区  ›  Tom Bushell

如何将本地Tortoise SVN存储库移动到新的Linux SVN服务器?

  •  6
  • Tom Bushell  · 技术社区  · 15 年前

    几个月来,我一直在桌面PC上使用Tortoise SVN(和VisualSVN)和本地存储库。我们刚刚建立了一个LinuxSVN服务器,我想把我的存储库移到这个服务器上,保留我所有的历史记录。一旦它被移动,我将停止使用本地存储库。

    Tortoise文档建议使用“relocate…”命令,但这会抱怨UUID不匹配。我发现了一些关于如何编辑UUID文件使其与服务器匹配的建议,但Tortoise忽略了新的值,即使是在重新启动之后。

    另外,我目前没有对Linux服务器的命令行访问权,但是如果必须的话,我可能会得到它。

    最好的方法是什么?

    4 回复  |  直到 11 年前
        1
  •  9
  •   Michael Hackner    15 年前

    你需要 svnadmin dump 您的本地存储库,将该转储文件放到Linux机器上,以及 svnadmin load 它在那里。

    Relocate 完成上述操作后,将在您的工作副本上使用。

    Here's the documentation.

        2
  •  2
  •   Jeff Paquette    15 年前

    你最好的选择是阅读 Migrating a repository 在红豆书里

        3
  •  2
  •   Peter Parker    15 年前

    如果你使用 FSFS存储库后端 (这是自SVN1.3以来的标准配置)您可以将整个存储库目录(例如,通过scp)文件复制到Linux服务器。那么重新定位应该没有问题,因为它实际上是同一个存储库。

    fsfs repo格式与平台兼容(请检查Linux SVN版本是否与VisualVN版本相同或更高)

    我经常这样做,而且确实有效(当然,在复制回购协议之前停止承诺要好得多)

        4
  •  1
  •   Alfabravo    11 年前

    我刚刚尝试了以下方法(作为对强烈绝望的回应):

    存储库是用Tortoissesvn创建的,而另一侧没有运行任何svn(只有共享资源)。所以,我安装了新的SVN服务器并使用它的二进制文件运行

    C:\csvn> svnrdump dump file://server_ip/shared_resource/project > projectDump.svndump
    

    其中server_ip是创建存储库的服务器的IP。效果不错!只需要对共享文件夹的权限(在我的情况下,我在Active Directory中有一个用户可以登录旧的存储库服务器和新的存储库服务器)。

    只是猜测这个信息可以帮助任何人,像我一样,正在经历迁移一个糟糕设置的痛苦。