我最近将我的SVN存储库从SERVER1迁移到了SERVER2。
svnrdump
实用程序转储存储库。svndump load
实用程序将转储文件加载到新的svn服务器。 我从SERVER1 svn的路径http://SERVER1/project1/data
检出了一份工作副本 WC 。
请注意这里的一件事:
现在,使用relocate from tortoise svn on windows
,我将重新定位WC 到SERVER2 svn到路径http://SERVER2/project1/data
。
重新安置是成功的。
在此之后,我正在尝试{rev 1:12}从rev-12345到rev-13456到check-in
进行的http://SERVER2/project1/data
更改。
但是,这是正在发生的事情:
http://SERVER2/project1/data
上存在的文件,并尝试提交。这里也给出了“No Such Revision:13456”。我期待当来自SERVER1的rev-13456的 WC 将从rev-12345从SERVER2重新定位到http://SERVER2/project1/data
时,它将显示这两者之间的所有差异修订。
注意:我正在尝试上面因为SERVER1将在一段时间内关闭。截至目前,两个存储库都存在。 SERVER1仍然被人们使用,SERVER2将与SERVER1保持同步。
答案 0 :(得分:3)
由于您在以后的版本中检出了工作副本,而不是您重新定位到的服务器上存在的版本,因此没有参考点来计算更改。这种更新SERVER2的方法不起作用。您有两种选择:
要使用缺少的所有修订正确更新SERVER2,必须对剩余修订进行部分转储/加载。 svnadmin dump repo_path -r 12346 --incremental
,然后加载到新服务器上。它只会转发12346的修订版。只有在未向SERVER2添加不属于SERVER1的其他修订版本时,这才有效。
如果您不关心介入的修订历史记录,只想将当时的所有更改转储到新服务器中作为1版本,请先从新服务器中重新签出。然后将WC中的所有更改从SERVER1复制到SERVER2的WC中并提交。
第一个选项更好,可能更少工作,具体取决于更改的复杂程度。