2

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

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

我从 SERVER1 svn的路径中检查了一个工作副本WC 。http://SERVER1/project1/data

这里注意一件事:

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

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

搬家成功。

在此之后,我正在尝试check-in从 rev-12345 到 rev-13456 到 http://SERVER2/project1/data.

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

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

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

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

4

1 回答 1

3

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

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

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

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

于 2013-05-16T16:22:25.237 回答