如何恢复SVN工作副本中的ONLY目录?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何恢复SVN工作副本中的ONLY目录?相关的知识,希望对你有一定的参考价值。
我想恢复SVN工作副本中的目录和所有子目录,以便它们与存储库匹配,但我不想触摸这些目录中的任何文件。
我的一个SVN应用程序递归地在我的工作副本中的每个目录上设置一个SVN属性,但我想恢复这些更改以阻止它突出显示它们并尝试将更改提交到SVN属性。简单地改变它以匹配HEAD是行不通的。
有任何想法吗?我已经阅读了各种SVN资源,但它们似乎都没有处理这种边缘情况。
答案
你可以使用find
结合svn revert
:
find . -type d | grep -v .svn | xargs svn revert
除非您使用-R
option(相当于--depth=infinity
),否则不会触及目录中的任何文件。
另一答案
适用于所有平台:
svn revert . --recursive
(请注意,这将恢复所有内容,而不仅仅是目录。)
另一答案
首先,将您的工作副本复制到安全的地方。 :)
您可以使用以下命令编辑svn工作副本上的属性:
REM Delete all mergeinfo properties recursively
svn propdel svn:mergeinfo -R
另一答案
在Windows上,从命令行可以执行以下操作:
for /d /r %i in (*) do svn revert %i
如果从批处理文件中调用它,请改用%%i
。请先备份!
这个命令是脏的,将遍历所有目录,甚至是未修改的目录或不在svn
下的目录。你可以使用类似这个Ruby脚本的东西以更干净的方式做:
`svn st`.split("
").grep(/^ Ms+(.*)/) { $1 }.find_all { |i| File.directory? i }.each do |i|
system "svn revert #{i}"
end
以上是关于如何恢复SVN工作副本中的ONLY目录?的主要内容,如果未能解决你的问题,请参考以下文章