如何恢复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

除非您使用-Roption(相当于--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目录?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 SVN 工作副本中的修改保存到 zip 文件

将 svn update 恢复到以前的 BASE 版本

如何彻底删除SVN中的文件和文件夹

在颠覆工作副本中重命名目录的明智方法

SVN E155016 ... 的工作副本数据库已损坏

可以强制 SVN 将目录视为工作副本吗?