今天在Windows下想用乌龟svn对一个目录重命名,不过仅仅是大小写的改变而已 client -> Client,但是svn不允许,我没理他,直接用系统的重命名改了。
结果提交的时候就完蛋了。。,svn显示提交失败,然后我去看了一下 Client 里的所有文件都没了,一开始很郁闷,后来想想这应该和svn的提交原理还有windows的目录名字有关系。
由于在Windows中,目录名是不区分大小写的,比如 client 与 Client , 其实是同一个目录,
所以当client目录已经被svn控制的情况下是不能用svn命令将 client 重命名为 Client 的,因为svn对路径的大小写是敏感的,如果执意这样做,提交的时候,乌龟svn发现client 目录已被删除,然后要添加Client目录,由于我一开始没注意,删除client和添加Client都勾上了,点了提交后,svn先删除了client目录里的所有东西,然后提交Client里的东西的时候就会出错,因为删了client里的就等于删了Client里的 -__-,结果我里面新加进去的文件就无法恢复了……
解决办法可能是,先将目录重命名为一个其他的名字如 client1,提交一次,然后在改成Client,再提交一次
不知道Win下面还有没有更好的方法了,除了Win其他系统应该没有这个问题,因为像linux这种都是区分大小写的,client和Client属不同路径…
丢文件可不是一件乐事 尤其是重要文件 汗….
还好是自己写着玩的