如何查找/搜索/ grep SVN存储库历史记录?

Lia*_*iam 7 svn search grep

我需要搜索Subversion存储库的所有修订版,以查找包含特定字符串的文件名和修订号.我知道这会在转储中发现:

svnadmin dump $REPO_PATH | grep -i "Verdana"
Run Code Online (Sandbox Code Playgroud)

但输出太神秘了.输出将包含匹配的二进制文件块.

我一直在使用这样的命令来搜索项目当前工作副本中的字符串:

find . -name "*.css" -print0 | xargs -0 grep "Verdana"
Run Code Online (Sandbox Code Playgroud)

输出的格式很有用,它给出了文件名和字符串出现的行:

./css/forms.css: font       : 12px Verdana;
Run Code Online (Sandbox Code Playgroud)

有没有办法搜索SVN存储库的所有修订版,比如.css包含搜索字符串的所有文件?而不只是一个单词,而是带有通配符的字符串或像grep这样的正则表达式?

注意:我有Linux访问Linux服务器及其上的存储库.

另请注意:我不想搜索工作副本,我需要搜索所有修订版.

qui*_*tin 5

最简单(也是我发现的最有效)的方法,预先花费一点时间投入 - 将svn存储库克隆到git中,然后使用gitk搜索存储库.

由于整个存储库是在本地系统上,这让搜索无限快!

我曾经为大约30个开发人员管理一个大型的subversion存储库,他们经常来我的办公桌询问,"你能找到这个改变......"等等.我只是激发了gitk!

svn log因为它必须击中服务器,所以非常慢.此外,如果您有权访问服务器,您可能不得不设计一些| grep -v或类似的方法来清除所有.svn目录.


zel*_*lus 0

你有没有尝试过

svn log --verbose
Run Code Online (Sandbox Code Playgroud)

在根目录上,打印每条日志消息和所有受影响的路径。它不会让您解析文件内容,但您至少能够搜索.css文件。