搜索文件及其所有SVN版本

时间:2012-07-30 06:38:57

标签: svn search revision-history

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

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

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

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

3 个答案:

答案 0 :(得分:1)

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

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

如果你是通过自己的脚本来做的,那么使用svn-diff通过修订版向后修改可能会更快(我还没试过)并节省磁盘使用量。

答案 1 :(得分:1)

您是否尝试过此perl脚本:How do I search all revisions of a file in a SubVersion repository?它从svn repo中搜索文件,从最新版本的任意字符串开始。

答案 2 :(得分:0)

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

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

如果匹配,code为0,否则为256,实际为1。 Why system('exit 1') return 256`