对于构建,打包文件等,需要有一个完全干净的SVN版本。不能有任何漂浮的非版本文件,例如,如果抓取所有PNG文件,test.png可能会被打包。
但是,获得全新的结账时间和带宽消耗。那么有没有办法获取一个工作目录并使其完全与干净的结账相同,删除非版本文件以及进行svn更新?
答案 0 :(得分:2)
如果你想:
.svn
目录然后,最好的解决方案是使用svn export
。
是的,它会从SVN导出所有文件,这意味着它需要一些时间,它会消耗一些带宽;但这可能是避免任何麻烦的最佳解决方案。
并且,作为旁注:它允许您从开发机器创建存档,而无需恢复当前的工作。
否则,你必须:
svn revert
,取消您对工作副本所做的修改但未提交。.svn
目录。答案 1 :(得分:2)
Here是一个列出subversion目录中所有未版本控制文件的命令:
svn status --no-ignore | grep '^\?' | sed 's/^\? //'
执行更新并删除文件如下所示:
svn update && svn status --no-ignore | grep '^\?' | sed 's/^\? //' | xargs rm -rf
如果您想要完全相同的版本,则可能需要执行还原而不是更新。最好的方法可能是使用svn export。
答案 2 :(得分:0)
您可以编写一个脚本来删除不在.svn目录中的所有文件,以及每个没有.svn子目录的目录。然后运行'up',它所做的就是从.svn目录中的副本中重新复制文件。
然而,所有这些.svn目录仍然有可能给你气体,所以请阅读Pascal的答案,即使它需要很长时间。