Zend Framework 的 SVN 服务器昨天宕机了,现在恢复了。我仍然收到来自外部“Zend”目录的错误。每当我尝试更新或切换到另一个分支时,都会收到此错误。
Error Repository UUID 'XXXX...' doesn't match expected
Error UUID 'XXXX...'
UUID 彼此不同。
我正在使用 tortoiseSVN 客户端,但我认为这是一个 SVN 错误。
答案1
我没有使用过 Zend 的服务器,但这是一个 SVN 错误。您的工作副本与最初创建它的 UUID 的存储库绑定在一起。该错误意味着自创建 WC 以来,服务器上的 UUID 已发生变化。
这种情况通常发生在服务器上完成转储/加载循环并且未保留存储库的 UUID 时。
有两种方法可以解决这个问题。在客户端:
svn switch --relocate
会将您的 WC 重新定位到新存储库(我假设应该是旧存储库)。我认为 Tortoise 有一个单独的relocate
选项,而不仅仅是switch
。
或者,在服务器上:
svnadmin setuuid <repository path> <new uuid>
您可以将 repo 的 UUID 设置为旧的,然后您现有的 WC 应该会再次开始与其对话。(svn info
您的 WC 内部将显示它所期望的 UUID。)
如果您无法控制存储库,则需要前一种选项;如果您可以控制存储库,则需要后一种选项。(其他客户端也会遇到同样的问题)。
有关存储库 UUID 的更多详细信息请参见此处:http://svnbook.red-bean.com/en/1.5/svn.reposadmin.maint.html#svn.reposadmin.maint.uuids
答案2
嗯,这取决于当它崩溃时发生了什么。由于 UUID 不同,我猜他们重建了存储库,并以某种方式获得了不同的 UUID。
如果您有权访问底层 svn 存储库,则可以将存储库 UUID 设置为:-
svnadmin setuuid REPOS_PATH [NEW_UUID]
否则,另一个解决方案是从新的存储库中进行全新签出。
答案3
教程 SVN 重新定位错误-无效的重新定位目的地对我有用。
尝试删除.svn 文件夹并运行svn checkout <new-url-of-branch>