背景:
最近,项目正在集成发布ing,整个项目使用SVN来控制各个模块的版本信息。基本流程就是:上传至SVN--构建--发布,因为发布之后系统在本地地址显示数据,换成服务器发布地址就不显示数据,所以总是处于反复提交,检出,构建中...
后来,在服务器上调试,通了,然后就是问题发生的根源出来了,直接将服务器上调通的程序(SVN备份程序)拷到了自己电脑上。然后,问题来了...
问题:SVN work copy too old
.SVN文件隐藏目录版本信息文件。当文件上传到SVN之后,每个文件夹(包括子文件夹)都会产生如下图所示的.SVN文件。
我上传的文件时从服务器SVN备份文件中直接拷过来的程序。所以,当再次上传的时候,就会产生如上错误。
解决办法:
删除所有文件夹中的.SVN文件,即可
然后就有了以下方法删除.SVN文件:
kill-svn-folders.reg(扩展名改为reg),内容如下:
<span style="font-family:Times New Roman;">Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""</span>
保存之后,双击这个reg文件。成功后,在每一个文件夹上点击右键都会有一个“Delete SVN Folders”的选项,点击之后,既可以删除这个文件下下面所有的.svn文件了:
2.就是通过命令去删除:
find . -name ".svn" | xargs rm -Rf
注: SVN常见问题,报错,命令,这篇文章罗列了SVN常出问题及解决办法,很有帮助。
在删除完.SVN文件后,文件夹立马变成了添加状态。下图是两者一个对比:
总结:
刚开始的时候没有意识到这一方面的因素,只停留在了表面问题(SVN更新版本了?电脑有问题?),后来觉得怎么着都得解决,试试吧。然后上网查,通过不同的关键字搜索,发现了新大陆,然后就有了今天的博客。 心里挺开心的,自己主动去解决问题而不是去拖延去抵触。