我们在工作中大量使用SVN,并且不断合并分支,然后使用svn revert ./ -R
恢复分支。出于某种原因,使用递归标记还原存储库会迭代我们存储库中的每个文件(千),并输出Reverted [file]
消息,即使svn stat
仅显示单个文件实际上具有需要还原的修改。
我在Windows的Bash上使用SVN 1.9.7。我们的服务器在CentOS 7.3上运行SVN 1.9.9。我的同事正在同时运行MacOS和Ubuntu。我们大多数人都遇到了这个问题,所以我知道这不是我的特定机器的一些奇怪问题。
有人知道解决此问题的方法吗?进行谷歌搜索非常困难,因为结果全都是基本的svn revert
问题。
答案 0 :(得分:0)
这就是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?。