我想为一组指定的修订版(或全部版)搜索一个文件的差异(理想情况下是一组文件)。我正在寻找可搜索文本的差异报告。我有这个:
hg diff -r 0:47131 .\TheFile.cs | grep 'theSearch' -Context 50
好的,这很好用,但决定要包含多少上下文是一个问题,同时找到第一个和最后一个修订版。我可以更好地自动化,但看起来它会有点工作。
我想知道是否有一个可以做得更好的工具。也许是hg服务器的差异报告网页?
答案 0 :(得分:10)
您可以使用hg grep
搜索整个回购历史记录。
例如:
hg grep --all --include .\TheFile.cs 'theSearch'
将在回购的每个修订版中找到'theSearch'
的所有实例。如果没有--all
标志,它将在包含字符串的第一个修订版处停止。
答案 1 :(得分:2)
我感觉hg grep
搜索每个匹配修订版的整个文件的内容。而如果你只想搜索差异,尝试这样的事情:
hg log --template "{ifcontains('TODO', diff(), '{node} {desc}\n', '')}"
这将列出包含" TODO"的修订版。在他们的差异。请注意,这也会搜索删除的行以及差异上下文(+/- 3行),因此它并不完美。
您可以使用args进一步限制diff() - 请参阅hg help template
- 并使用revsets(-r ...
)。
这可能比使用hg diff | grep
方法更好,因为它会逐个区分每个变更集,而不是将整个仓库分成两个变更集,并允许您使用revsets过滤掉合并修订,例如。 / p>