Subversion更新问题

时间:2011-07-26 17:39:22

标签: svn tortoisesvn

当我尝试更新我的存储库时,我收到以下错误。有人能解释一下这意味着什么吗?

命令:更新
错误:网址
错误:'http:// mysvn / foo'
错误:现有目录
错误:'C:\ SVN \ MyProj \ NinjectModules \ Models'与
不匹配 错误:预期的网址'http:// mysvn / foo / NinjectModules / Models' 完了!:

3 个答案:

答案 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将其恢复为当前状态。

请记住将本地更改备份到某个地方