运行“svn revert ./ -R”会为每个文件输出“Reverted [file]”消息,即使只有一个文件实际上有修改
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运行“svn revert ./ -R”会为每个文件输出“Reverted [file]”消息,即使只有一个文件实际上有修改相关的知识,希望对你有一定的参考价值。
我们在工作中大量使用SVN,我们不断合并分支,然后使用svn revert ./ -R
将其还原。出于某种原因,使用递归标志恢复存储库会遍历我们的repo中的每个文件(数千个)并输出Reverted [file]
消息,即使svn stat
只显示单个文件实际上还有需要还原的修改。
我在Windows上使用Bash上的SVN 1.9.7。我们的服务器在CentOS 7.3上运行SVN 1.9.9。我的同事正在运行MacOS和Ubuntu的混合体。我们大多数人都遇到过这个问题,所以我知道我的特定机器并不是一个奇怪的问题。
有谁知道解决这个问题的方法?谷歌搜索很难,因为结果都只是基本的svn revert
问题。
这就是svn的工作原理。如果要还原所有源代码,则必须检查整个源代码树。没有像在Visual Studio这样的编辑器中存在的未保存更改的缓存,因为SVN并不那么聪明。值得一提的是,SVN stat
和diff
也在走遍整棵树。我甚至认为git revert --recursive
会显示相同的行为,因为它需要检查每个文件是否有任何变化。
真正防止这种情况的唯一方法是更明智地只恢复需要恢复的东西。您还可以通过管道切割到/dev/null
来减少时间(请参阅Why is outputting a string to the console slower than writing the same output to a text file?)。
以上是关于运行“svn revert ./ -R”会为每个文件输出“Reverted [file]”消息,即使只有一个文件实际上有修改的主要内容,如果未能解决你的问题,请参考以下文章
SVN中Revert changes from this revision 跟Revert to this revision
把一台电脑的svn 工作代码到另一台电脑上。svn cleanup,svn revert等操作很慢?
使用SVN管理项目,未提交代码之前使用了revert误删修改好的代码解决方法(IDEA编译器)