我从事一个非常大的项目(10000 多个版本),有时我需要知道其他用户中的哪些人删除了文件中的某些行。有没有办法做到这一点?我可以svn blame
使用修订号来检查该修订版中是否存在一行,然后查看该行在哪个修订版中消失并查看谁提交了该修订版,但是该程序对于那个大项目来说是蹩脚的。
有没有更聪明的方法来做到这一点?
我会检查文件的历史记录并尝试快速找到存在该行的修订版,然后在 HEAD 和该修订版之间进行指责。
如果文件自开始以来已经经历了 100 次修订,那么如果您通过二进制搜索查找该行的修订,您不应该查看超过 10 个不同的修订。
小智 5
这会自动执行您需要的操作,但速度不是很快,因为它不使用上述建议的二进制搜索:
svn log FILE | egrep '^r[0-9]' | sed -e 's/ .*//' | while read rev; do echo $rev ; svn cat FILE -"$rev" | grep "case STRING" && break ; done
Run Code Online (Sandbox Code Playgroud)
svn log --diff
将在第 0 列中用“-”标识删除。Grep 也为“r”,所以你可以看到修订版。
% svn log --diff src/fozbo.cpp -r22222:HEAD | grep -e '^r' -e '^-.*xyzzy'
r22222 | jruser | 2016-07-19 20:16:07 -0400 (Tue, 19 Jul 2016) | 1 line
- else if ( password== "xyzzy") {
Run Code Online (Sandbox Code Playgroud)
还有svn log --search
但那只会搜索提交消息。
归档时间: |
|
查看次数: |
4654 次 |
最近记录: |