移动了存储库。我是否使用SVN交换机,SVN重定位或其他所有内容

时间:2012-03-20 18:38:55

标签: linux windows svn visualsvn-server

我一直在计划将Subversion存储库从Linux服务器迁移到Windows服务器。我已经概述了迁移的步骤:

  1. 创建存储库转储
  2. 将转储文件传输到目标Windows服务器
  3. 在新的subversion服务器上载存储库
  4. 将对旧存储库的所有引用更改为新存储库
  5. 经过一番挫折之后,我终于走到了第4步,但却陷入了两难境地......我不知道如何改变所有的参考资料。我已经看到可以使用重定位但是我也听说过,如果结构发生变化,应该使用开关...这是工作项目所以我需要确保在最后一步使用正确的命令以避免后果

    当前的文件结构如下:

    svn:// svn @ servername / Source / Program Name / bin / Release

    新的文件结构由VisualSVN Server决定,如下所示:

    https://ServerName.domain.local/svn/RepositoryName/Source/Program名称/ bin /发布

    为此重新安排工作还是我走向错误的方向?

4 个答案:

答案 0 :(得分:4)

以前的回答者不会阅读文档

>svn help switch

  2. The '--relocate' option is deprecated. This syntax is equivalent to
     'svn relocate FROM-PREFIX TO-PREFIX [PATH]'.

必须

  • 使用svn relocate(因为你重写了多于前缀)
  • 使用第二种形式的重新定位语法relocate TO-URL [PATH],另请参阅svn help relocate中的示例
  2. TO-URL is the (complete) new repository URL to use for PATH.

Examples:

  ...

  svn relocate http://www.example.com/repo/project \

               svn://svn.example.com/repo/project
示例中的

旧引用svn://svn.example.com/repo/project已替换为http://www.example.com/repo/project

答案 1 :(得分:1)

是的,svn switch --relocate命令应该有效。但请注意,您必须重新定位工作副本的根目录。

答案 2 :(得分:0)

最简单的答案是:

相同数据目录移动到新服务器(新基本URI)时,使用重新定位

如果要在同一存储库中在分支之间进行更改(具有共同祖先的路径),则使用开关

在这两种情况下,存储库UUID都保持不变。

如果您转储完整存储库并将其恢复到新数据目录中,那么您实际上使用的是相同的数据目录,存储库UUID保持不变。您可以使用relocate。

如果您更改UUID或恢复到现有存储库,您唯一的选择是重新签出工作副本。

答案 3 :(得分:-2)

使用svn switch --relocate我只是在回购中做了它,它就像魔法一样。如果您使用的是TortoiseSVN,请使用“重定位”命令,而不是“切换”命令。