背景:

最近,项目正在集成发布ing,整个项目使用SVN来控制各个模块的版本信息。基本流程就是:上传至SVN--构建--发布,因为发布之后系统在本地地址显示数据,换成服务器发布地址就不显示数据,所以总是处于反复提交,检出,构建中...

   后来,在服务器上调试,通了,然后就是问题发生的根源出来了,直接将服务器上调通的程序(SVN备份程序)拷到了自己电脑上。然后,问题来了...

问题:SVN work copy too old


                  

svn实现主从复制 tortoiseSVN提交内容卡住_服务器


    


     .SVN文件隐藏目录版本信息文件。当文件上传到SVN之后,每个文件夹(包括子文件夹)都会产生如下图所示的.SVN文件。


     我上传的文件时从服务器SVN备份文件中直接拷过来的程序。所以,当再次上传的时候,就会产生如上错误。


           


                  

svn实现主从复制 tortoiseSVN提交内容卡住_服务器_02




解决办法:


    删除所有文件夹中的.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文件了:



                                          

svn实现主从复制 tortoiseSVN提交内容卡住_服务器_03


  

2.就是通过命令去删除:

         find . -name ".svn" | xargs rm -Rf

  注: SVN常见问题,报错,命令,这篇文章罗列了SVN常出问题及解决办法,很有帮助。


     在删除完.SVN文件后,文件夹立马变成了添加状态。下图是两者一个对比:

                   

svn实现主从复制 tortoiseSVN提交内容卡住_上传_04


总结:

   刚开始的时候没有意识到这一方面的因素,只停留在了表面问题(SVN更新版本了?电脑有问题?),后来觉得怎么着都得解决,试试吧。然后上网查,通过不同的关键字搜索,发现了新大陆,然后就有了今天的博客。 心里挺开心的,自己主动去解决问题而不是去拖延去抵触。