TortoiseHg:不要在关键字搜索结果中显示祖先

TortoiseHg: Don't display ancestors in keyword search results

我想使用 TortoiseHg 在我的 Mercurial 存储库中搜索带有特定日志消息(例如 "merge")的提交。 这是我没有任何搜索的存储库:

当我搜索 "merge" 时,我得到了这个:

所以搜索似乎找到了第一个匹配项并显示了它的所有祖先。过滤未匹配的变更集已开启:

我只想看看匹配的祖先。它适用于我的一位同事,但我们找不到我们的环境之间的不同之处。我们都在 Windows 10 x64 上使用具有相同扩展名的 3.9 版。

这是另一个搜索 "works!":

的例子

并具体使用关键字:

并按作者过滤:

它总是找到第一个匹配项并显示所有祖先...

So it seems like the search finds the first match and displays all of its ancestors

不,你错过了这里。搜索中的纯文本模式 TEXT 意味着(内部)在 revset 中使用谓词 keyword(),在您的情况下为 hg log -T {rev}^M -r keyword('merge')。但是:

"keyword(string)"
  Search commit message, user name, and names of changed files for
  string. The match is case-insensitive.

搜索范围比您预期的要广。和我的repo比较一下,"merge"只是log-message的一部分:revset里只出现了两个直系亲属,因为他们都满足条件

For "merge" only in log matching() 可能更好,但如果你真的想要 mergesets merge() The Natural Way (tm),合并的最终 revset 及其父项可能是

merge() or parents(merge())

我卸载了 TortoiseHg,从机器上删除了它的所有文件(AppData、配置等)并从头开始重新安装,现在它似乎可以工作了。因为我已经在一个月前尝试重新安装,所以我想清理所有文件会有所帮助。