Hg:哪个变更集更新?

时间:2016-09-19 17:51:31

标签: mercurial

给定两个hg变更集ID(例如891d791429ab24797c841ee6),是否有一个hg命令可以告诉我哪个变更集更新,哪个更新被定义为'更接近提示'?

我宁愿不使用修订号或日期。

修改

这就是我直观地定义'更新'的方式。我假设(可能不正确)hg对概念有一些内部定义。

hg commits

我假设如果没有办法通过遍历DAG到达其中一个比较提交,那么这些提交不能有订单,所以 B C的顺序未定义。

对于合并提交,例如 G H I 之后,如果Hg应用 G 且< strong> H 以某种线性顺序形成 I ,可能 G H 在合并后应该有一个订单 I 即可。但我不知道那是什么。为了我的目的,将它们视为同样新的当然可以接受。

我很抱歉不清楚。

2 个答案:

答案 0 :(得分:2)

  • 我无法回想起针对此类任务的预定义命令
  • 我想,它可以通过(必须写)扩展而非常简单地完成
  • 快速而肮脏的方式 - [alias]类似于log -r $1::tip -T&#34;。&#34;`(更长的点线 - 更远的距离)

答案 1 :(得分:1)

hg id -r "(891d791429ab|24797c841ee6)-((891d791429ab:tip-24797c841ee6:tip)|(24797c841ee6:tip-891d791429ab:tip))"怎么样?

revset可以简化为(A|B)-((A:tip-B:tip)|(B:tip-A:tip))

((A:tip-B:tip)(B:tip-A:tip))中的一个将为空。另一个将包含AB,取决于tip中的任何一个(加上 AB之间的任何变更集

当我们从工会A|B中减去包含最远距离变更集的revset时,我们最终会得到最接近提示的变更集