这个错误信息通常在你更新工作拷贝时出现,可能的原因有两个:
- 版本库中有两个文件的名字只是大小写不同,这在Windows下是不允许签出的,因为Windows的文件系统是大小写不敏感的。很可能其中一个文件是误添加的,所以你要找出是哪一个,然后删除它,以确保不会把更改提交到错误的文件。
- 某个文件的文件名是非法的(对Windows来说非法),比如,"con", "lpr", "com"都是非法的,因为这些都是设备名。当然,含有"//*?:|"和其它特殊字符在Windows(NTFS 和 FAT)也是不允许的。
是,我们知道这个错误信息对解决问题没什么实质性的帮助,但这个错误信息是来自Subversion库的,我们改不了。
有几个办法可以避免这个问题:
Subversion 是针对大小写敏感的文件系统(比如 Linux )设计的,这在大小写不敏感的Windows下有时就会有问题。一个典型的例子是,重命名文件时,如果文件名仅有大小写不一样,如Makefile改成 MAKEFILE。在工作拷贝中要这么干就有困难,因为Subversion在很短的一瞬间内需要让这两个名字并存,而Windows没办法支持。
目前为止最简单的方法是用版本库浏览器来重命名:
- 提交工作拷贝中的更改。
- 在版本库浏览器中将文件名由UPPERcase改为upperCASE。
- 更新你的工作拷贝。