4

如何(如果可能的话)在文件中搜索字符串,包括其所有修订?

这样做的原因是我知道某些字符串foo.bar过去曾在我的文件中,但后来被删除了。该文件有很多修订,因此手动搜索非常耗时。我需要一个工具来下载foo.bar文件的所有修订版并在每个修订版中搜索我的字符串。

如果可能的话,我会很高兴在一个目录中搜索,而不仅仅是单个文件(还包括所有修订)。然而,这是可选的。

我带来的唯一解决方案是编写一个 python 脚本来逐个导出修订并始终读取文件并使用find()搜索字符串。

4

3 回答 3

1

这可能会回答您的问题: https ://groups.google.com/forum/?fromgroups#!topic/subversion-development/dFIFGBzKt9A

可能您可以通过整个历史记录(如 git)转储差异并 grep 该文件。但这需要svn 1.7。

如果您通过自己的脚本执行此操作,则使用 svn-diff 逐个修订可能会更快(尽管我没有尝试过)并节省磁盘使用量。

于 2012-07-30T06:48:08.423 回答
1

您是否尝试过这个 perl 脚本:如何在 SubVersion 存储库中搜索文件的所有修订版?它从 svn 存储库中搜索从最新版本开始的任意字符串的文件。

于 2012-07-30T06:59:58.180 回答
0

我还想出了一个 Python 解决方案

code = os.system("svn diff <file-name> -r r<n>:r<n+1> | grep <string-to-search>")

如果匹配,code则为 0,否则为 256,实际上为 1。为什么system('exit 1')返回 256`

于 2012-07-30T07:17:03.420 回答