You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何不同写法的Mercurial Revset查询会得到不同结果?

差异原因解析

这两个revset返回不同结果的核心是变更集集合的排序规则不一样,导致first()选取的目标变更不同:

  • 针对命令 hg log -r "first(date('Nov 2022'))":
    date('Nov 2022') 筛选出2022年11月提交的所有变更集后,Mercurial会默认按提交日期降序排列这个集合(最新提交的变更排在最前面)。first()直接取这个排序后的第一个元素,也就是11月里提交时间最晚的变更(对应你例子里11月4日的2177号变更)。

  • 针对命令 hg log -r "first(sort(date('Nov 2022'),date))":
    你通过sort(date('Nov 2022'), date)对筛选出的11月变更集做了重新排序,这里的date参数指定按提交日期升序排列(最早提交的变更排在最前面)。排序完成后再用first(),取到的就是11月里提交时间最早的变更(对应你例子里11月2日的2180号变更)。

本质上前者取的是11月最新提交的变更,后者取的是11月最早提交的变更,结果自然不同。

内容的提问来源于stack exchange,提问作者Lazy Badger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:20:34