我们曾经有一个用于多个项目的共享 SVN 存储库,昨天,我们的 SVN 管理员为我们的项目创建了一个新的 SVN 存储库。
我将现有的项目签出重新定位到新的 SVN 存储库,但现在,当我进行 SVN 更新时,我收到一条错误消息,例如"No such revision 223297".
实际上,新存储库只有我们项目特定的修订数量(围绕33000
提交),而旧存储库有223400
.
我想知道是否可以将所有现有的签出文件夹切换到新的存储库?否则,我将不得不做一些干净的结帐。
我们曾经有一个用于多个项目的共享 SVN 存储库,昨天,我们的 SVN 管理员为我们的项目创建了一个新的 SVN 存储库。
我将现有的项目签出重新定位到新的 SVN 存储库,但现在,当我进行 SVN 更新时,我收到一条错误消息,例如"No such revision 223297".
实际上,新存储库只有我们项目特定的修订数量(围绕33000
提交),而旧存储库有223400
.
我想知道是否可以将所有现有的签出文件夹切换到新的存储库?否则,我将不得不做一些干净的结帐。
显然,您的管理员没有包含填充修订,这通常在使用 svndumpfilter 拆分存储库时被强烈推荐。
否则,绝对不可能用您的存储库更新您的工作副本,因为 SVN 以修订号为导向,而您的存储库(从技术上讲)是不同的存储库(通常存储库的 UUID 也不应该匹配。另一个应该由您的管理员修复)。此外,如果您使用诸如 bugtracker 之类的外部工具来保存修订号以将内容链接到您的源代码,这些引用也会丢失。
最好的解决方案是在没有 svndumpfilter 开关的情况下重做存储库创建 -但是drop-empty-revs,那么您在新存储库中的工作就会丢失..
备份工作目录
删除顶层工作目录下的 .svn 目录
查看整个工作目录。
为我工作...
猜猜你必须做一些干净的结帐。
在我的情况下,我们的 SVN 管理员完全从旧存储库创建了一个新的 SVN 存储库克隆。当我将工作副本重新定位到新的 SVN 存储库后更新工作副本时,我收到了同样的消息。
然后我发现这是因为我在重新定位到新存储库之前进行了 SVN 更新,并且修订号刚好超出了新存储库中的修订号。
所以,这是我的解决方案:
Update to revision...
将您的工作副本更新为旧版本(只是您的 SVN 管理员创建新存储库之前的版本)希望这对您有所帮助。