sufjan 2012-04-24
在从SVN版本控制CheckOut(检出)最新版本的代码时,出现“系统找不到指定的文件”错误,然后CheckOut中止。从“RepositoryBrowser”中查看指定的文件存在,而且还同时存在另一个文件,如指定文件是Test.c文件,同时存在test.c文件,而SVN提示找到Test.c.svn-base文件(其实就是找不到Test.c文件)。
产生这种问题的原因就是在某次commit(提交)时,将Test.c文件通过windwos的Explorer改成了test.c文件名。Windows认为是同一个文件,而SVN认为是不同的文件(使用于Linux系统,对文件名大小写敏感),导致SVN认为指定文件丢失。
解决方法:在“RepositoryBrowser”中找到Test.c从右键菜单中“delete”,因为test.c是最新的,保留最新的版本即可。然后再次CheckOut(检出)最新版本的工程就不会有指定文件找不到的错误了。
到这里“SVNCheckOut系统找不到指定的文件”的问题就已经解决了。后面的可以不看了。
这里涉及到一个SVN改变文件名称大小写的问题。TortoiseSVN提供了两种方法如下:
解决方案A)(推荐)
1.提交你工作副本中的改变到版本库
2.使用版本库的浏览器立即重命名该文件的大写(小写)为小写(大写)
3.更新你的工作副本
解决方案B)
1.使用TortoiseSVN子菜单中的重命名命令将UPPERcase重命名为UPPERcase_格式
2.提交该更改
3.将UPPERcase_重命名为upperCASE格式
4.提交该更改
pub_svnserve.conf的 pub_authz.conf的配置文件有非法字符的原因引起,需要查找pub_authz.conf提的非法内容比如多余的空格删除或直接将pub_authz.conf