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、配置等)并从头开始重新安装,现在它似乎可以工作了。因为我已经在一个月前尝试重新安装,所以我想清理所有文件会有所帮助。
我想使用 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、配置等)并从头开始重新安装,现在它似乎可以工作了。因为我已经在一个月前尝试重新安装,所以我想清理所有文件会有所帮助。