Subversion 中相当于“git grep”吗?

Subversion 中相当于“git grep”吗?

我非常喜欢git grep. Subversion 中是否存在等效项?

答案1

正如回答从 grep 中排除 .svn 目录

grep --exclude-dir=".svn"

svngrep功能提供类似于以下的基本功能git grep

svngrep() { grep  --color=always --exclude-dir=".svn" -r "$1" . | less -R; }

粘贴到您的.bashrc

答案2

虽然这不是一个完美的解决方案,但我使用以下命令来查找特定文件的修订版本:

for rev in `svn log FILE_TO_SEARCH | grep '^r[0-9][0-9]* ' | cut -f1 -d" "`; do svn cat -$rev FILE_TO_SEARCH 2>/dev/null | grep -q PATTERN_TO_FIND && echo $rev;done

输出是包含该字符串的文件的修订号列表。

答案3

svn 可以列出其受源代码控制的文件,您可以使用 xargs 将文件列表导入 grep 命令行。为了处理带空格的文件名,您可以-d '\n'在 xargs 中添加“ ”选项。为了悄悄跳过 svn 提到的目录,您可以-d skip在 grep 中使用“ ”选项。您可能希望使用 egrep 而不是 grep,因为它的语法更常规(更像 perl)。

svn ls -R | xargs -d '\n' grep -d skip thingtogrepfor

相关内容