当我尝试更新我的存储库时,我收到以下错误。有人能解释一下这意味着什么吗?
命令:更新
错误:网址
错误:'http:// mysvn / foo'
错误:现有目录
错误:'C:\ SVN \ MyProj \ NinjectModules \ Models'与
不匹配
错误:预期的网址'http:// mysvn / foo / NinjectModules / Models'
完了!:
答案 0 :(得分:9)
总是案例问题
由于目录移动不当导致svn数据混乱,我遇到了此错误消息。我修复它的方法是删除工作副本目录,然后svn更新该目录。
答案 1 :(得分:2)
此类错误消息通常与letter casing errors in the svn repository相关联。也许你的svn安装在Linux机器上,你有两个相同的文件夹:
(..)/mysvn/foo
(..)/MySVN/Foo
最初SVN检出MySVN/Foo
并且找不到\NinjectModules\Models
文件夹,因为它位于/mysvn/foo
位置
答案 2 :(得分:0)
另一个原因可能是从包含一些具有svn:externals
属性的文件迁移到将文件实际添加到存储库中。
也就是说,在两次工作副本更新之间,有人会执行以下操作:
#svn up removes local copies of external resources when svn:externals is deleted
#so we need a backup
cp -R library/resource /backup
svn propdel 'svn:externals' library
svn up
cp -R /backup/resource library
svn add library/resource
svn commit -m "this will break other working copies, but we have the resource in our repo now"
当您尝试svn update
时,您会收到以下消息:
svn: URL 'svn://path.to/external/resource' of existing directory
'library/resource' does not match expected URL 'svn://my.own.repository/library/resource'
在这种情况下,解决方案与往常一样-删除工作副本的library
目录,然后执行svn up
将其恢复为当前状态。
请记住将本地更改备份到某个地方