Grep 在Perforce中,如何在文件的修订图中按文件内容进行搜索

Grep 在Perforce中,如何在文件的修订图中按文件内容进行搜索,grep,perforce,Grep,Perforce,在perforce中,可以在所有版本和源中搜索字符串。它应该能够在其整个修订图中搜索该文件可能来自的位置。我能够找到p4 grep-a,它可以在分支中搜索特定文件的修订版。但是我也想搜索它的来源。您是否只关心文件当前头版本中的字符串?如果这是一个可接受的限制,那么annotate-I是一个非常简单的选项: p4 annotate -I file | grep STRING 更多关于p4 annotate-I的信息,请点击此处: 如果这对你来说还不够,那么你面前还有很多脚本——这篇博客文章可能会

在perforce中,可以在所有版本和源中搜索字符串。它应该能够在其整个修订图中搜索该文件可能来自的位置。我能够找到p4 grep-a,它可以在分支中搜索特定文件的修订版。但是我也想搜索它的来源。

您是否只关心文件当前头版本中的字符串?如果这是一个可接受的限制,那么annotate-I是一个非常简单的选项:

p4 annotate -I file | grep STRING
更多关于p4 annotate-I的信息,请点击此处:

如果这对你来说还不够,那么你面前还有很多脚本——这篇博客文章可能会帮助你开始使用一般方法,你可以使用p4 filelog生成图形,并使用p4打印来获取内容


您也可以尝试在我在annotate之前编写的DeepAnnotate工具上进行黑客攻击,因为它是开源的,比annotate更为黑客化,所以如果可以的话,我仍然建议使用内置版本:

p4 annotate-I file | grep STRING不行。甚至,其他建议也可能不够,因为我需要递归地遍历所有可能集成它的分支,以及developerAther引入的更改,而不是其他分支。第二个建议不能递归地通过所有的分支,对吗?如果你在写你自己的工具,你只能被你自己的耐心所限制。需要明确的是,您在问题中描述的内容应该能够在其整个修订图中搜索文件可能来自的位置,这正是annotate-我所做的-它向您显示文件来自的所有位置的信息,只是没有朝相反的方向。我感谢您的回答。我想我需要问一个明确的问题。在我的代码库中,在某个时间点,一段代码被删除。我想用这段代码进行搜索,看看它是什么时候被删除的,为什么被删除。由于这段代码不在head修订版中,因此无法对其进行注释。如果您的问题是,是否可以搜索删除字符串的修订版,则会更简单:如果你只需要为一个特定的行执行一次,那么手动执行会更快。在后面的文件上使用p4 annotate-a,如果删除它的修订是合并,则在合并源上重复该过程。继续,直到找到源代码。您可能可以对DeepAnnotate进行黑客攻击,以便对删除的行执行此操作-所有数据都在其中。不过,这不是一个简单的换行问题。