【问题标题】:SVN update not working after SVN relocateSVN 重定位后 SVN 更新不起作用
【发布时间】:2013-05-16 14:30:11
【问题描述】:

我最近将我的 SVN 存储库从 SERVER1 迁移到 SERVER2。

  • 在 SERVER2 上安装了 SVN。
  • 使用svnrdump 实用程序转储存储库。
  • 使用svndump load 实用程序将转储文件加载到新的svn 服务器。

我从 SERVER1 svn 的路径 http://SERVER1/project1/data 签出了一个工作副本 WC

这里注意一件事:

  • 当我转储时,SERVER1 上的 SVN 版本是 12345。
  • 当我签出 WC 时,SVN 版本是 13456。

现在,使用relocate from tortoise svn on windows,我已将 WC 重新定位到 SERVER2 svn 到路径 http://SERVER2/project1/data

搬迁成功。

在此之后,我尝试将 check-in 从 rev-12345 到 rev-13456 更改为 http://SERVER2/project1/data

但是,这就是正在发生的事情:

  • 提交操作未显示任何要提交的文件。
  • 检查修改未显示任何更改。
  • SVN 更新显示错误“无此类修订:13456”。
  • 我更改了存在于 WChttp://SERVER2/project1/data 上的文件,并尝试提交它。这里还给出了“没有这样的修订:13456”。

我期待当 WC at rev-13456 from SERVER1 将重新定位到 http://SERVER2/project1/data at rev-12345 从 SERVER2 时,它将显示这两个修订版之间的所有差异。

注意:我在上面尝试是因为 SERVER1 将在一段时间后关闭。截至目前,两个存储库都存在。 SERVER1 仍在使用中,SERVER2 将与 SERVER1 保持同步。

【问题讨论】:

    标签: svn tortoisesvn relocation


    【解决方案1】:

    因为您在比您重定位到的服务器上存在的版本更高的版本中检查了您的工作副本,所以它没有计算更改的参考点。这种更新 SERVER2 的方法将不起作用。你有两个选择:

    1. 要正确更新 SERVER2 并包含所有缺失的修订,您必须对剩余的修订进行部分转储/加载。 svnadmin dump repo_path -r 12346 --incremental,然后在新服务器上加载。它将仅转储 12346 转发的修订。这仅在您没有向 SERVER2 添加不属于 SERVER1 的其他修订时才有效。

    2. 如果您不关心介入的修订历史,而只想将当时的所有更改作为 1 个修订转储到新服务器中,请先从新服务器重新签出。然后将 WC 中的所有更改从 SERVER1 复制到 SERVER2 的这个 WC 中并提交。

    根据更改的复杂程度,第一个选项更好,甚至可能更少的工作。

    【讨论】:

    • 感谢您的澄清。您能否详细说明“它没有计算变化的参考点”。
    • 当然,当您从 subversion 签出工作副本时,它会记住当前的修订号。这样,当您进行 SVN 更新时,它会发送到服务器并说给我从当前版本到 HEAD 的所有更改。您从版本为 13456 的服务器中签出 WC,然后重新定位到没有该版本号的服务器,因此,无论何时您尝试执行涉及获取更改或将更改应用到该修订版的操作,它都无法做到,因为该修订版新服务器上不存在。
    猜你喜欢
    • 2015-08-24
    • 1970-01-01
    • 2011-07-17
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多