Windows下使用svn 重命名目录仅修改大小写要注意阿

今天在Windows下想用乌龟svn对一个目录重命名,不过仅仅是大小写的改变而已 client -> Client,但是svn不允许,我没理他,直接用系统的重命名改了。

结果提交的时候就完蛋了。。,svn显示提交失败,然后我去看了一下 Client 里的所有文件都没了,一开始很郁闷,后来想想这应该和svn的提交原理还有windows的目录名字有关系。

由于在Windows中,目录名是不区分大小写的,比如 clientClient , 其实是同一个目录,

所以当client目录已经被svn控制的情况下是不能用svn命令将 client 重命名为 Client 的,因为svn对路径的大小写是敏感的,如果执意这样做,提交的时候,乌龟svn发现client 目录已被删除,然后要添加Client目录,由于我一开始没注意,删除client和添加Client都勾上了,点了提交后,svn先删除了client目录里的所有东西,然后提交Client里的东西的时候就会出错,因为删了client里的就等于删了Client里的 -__-,结果我里面新加进去的文件就无法恢复了......

解决办法可能是,先将目录重命名为一个其他的名字如 client1,提交一次,然后在改成Client,再提交一次

不知道Win下面还有没有更好的方法了,除了Win其他系统应该没有这个问题,因为像linux这种都是区分大小写的,clientClient属不同路径...

评论