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

如何在Mercurial中获取新变基提交的哈希值

Mercurial变基后自动切换到新提交的别名实现

当然可行,你可以通过Mercurial的日志命令结合过滤逻辑,获取变基后的新提交哈希,修改你的别名函数如下:

function rs() {
  stable
  OLD_COMMIT="$1"
  hg rebase -s "$OLD_COMMIT" -d stable
  # 提取变基后的新提交短哈希
  NEW_COMMIT=$(hg log --follow --rev "$OLD_COMMIT" --template "{node|short}\n" | head -n 1)
  hg up "$NEW_COMMIT"
  hg ssl
}

关键逻辑说明

  • hg log --follow --rev "$OLD_COMMIT":--follow参数会跟踪目标变更集的衍生历史,包括变基后生成的新提交(变基后的旧提交会被标记为hidden,这个参数能跨越hidden记录找到最新的有效提交)。
  • --template "{node|short}":指定日志输出仅包含提交的短哈希,避免多余信息干扰。
  • head -n 1:取日志结果的第一行,也就是最新的那个变基后提交的哈希。

如果你的Mercurial版本较低不支持--follow,也可以通过匹配原始提交的描述来查找新提交:

NEW_COMMIT=$(hg log --rev "desc($(hg log --rev "$OLD_COMMIT" --template "{desc}"))" --template "{node|short}\n" | head -n 1)

这种方式依赖提交描述的唯一性,不如第一种方法可靠,优先推荐使用--follow的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:07:04