如何(如果可能的话)在包含其所有修订的文件中搜索字符串?
这样做的原因是我知道某些字符串在我的文件foo.bar
过去的某个地方,但之后被删除了。文件有很多修订版,因此手动搜索非常耗时。我需要一个工具来下载foo.bar
文件的所有修订版本,并在每个版本中搜索我的字符串。
如果可能的话,我会很高兴在目录中搜索,而不仅仅是单个文件(还包括所有修订版)。但这是可选的。
我附带的唯一解决方案是编写一个python脚本来按版本导出修订版,并始终读取文件并使用find()搜索字符串。
答案 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`