在多个修订版中搜索文件中的某些内容

时间:2015-05-27 19:09:53

标签: string svn revision-history

我想使用svn执行以下操作:在文件中搜索修订历史记录中的特定字符串内容?这可能>?我怎么做到最好呢? 我是否使用svn cat -r1grep提出了一个脚本,还是有更好的方法?

1 个答案:

答案 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

这需要两个参数:要搜索的文件的(路径)和要在文件中搜索的字符串。