我想使用svn
执行以下操作:在文件中搜索修订历史记录中的特定字符串内容?这可能>?我怎么做到最好呢?
我是否使用svn cat -r1
和grep
提出了一个脚本,还是有更好的方法?
答案 0 :(得分:1)
Svn对此没有直接支持。
如果只有一个文件可以使用,尽管速度很慢。
svn log -q <file> | grep '^r' | awk '{print $1;}' | \
xargs -n 1 -i svn cat -r {} <file> | grep '<string>'
填写<file>
和<string>
for
循环也可以工作,因此您可以根据需要打印匹配的文件/修订版。
使用for
循环来获得更多输出控制(这是bash):
#!/bin/env bash
f=$1
s=$2
for r in $(svn log -q "$f" | grep '^r' | awk '{print $1;}'); do
e=$(svn cat -r $r "$f" | grep "$s")
if [[ -n "$e" ]]; then
echo "Found in revision $r: $e"
fi
done
这需要两个参数:要搜索的文件的(路径)和要在文件中搜索的字符串。