加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

mercurial – 列出自上次合并以来的所有合并变更集?

发布时间:2020-12-20 11:26:23 所属栏目:Python 来源:网络整理
导读:使用Mercurial,我怎样才能列出合并分支所应用的所有变更集,因为上次从该分支合并? 解决方法 Revsets是你的朋友.或者你的克星,取决于他们有多复杂:) 以下命令将显示最后两个合并之间的所有关联更改集: $hg log -r "first(last(merge(),2)):last(merge()) an
使用Mercurial,我怎样才能列出合并分支所应用的所有变更集,因为上次从该分支合并?

解决方法

Revsets是你的朋友.或者你的克星,取决于他们有多复杂:)

以下命令将显示最后两个合并之间的所有关联更改集:

$hg log -r "first(last(merge(),2)):last(merge()) & ancestors(last(merge()))"

那个复杂的小表达式(我将在后面简单介绍)会做到以下几点:

> x:y为您提供x和y之间的所有变更集
> merge()是一个包含所有合并的revset.
> last(…,n)给出一组的最后n个变更集,n默认为1
> first(…)为您提供集合的第一个变更集
> ancestors(last(merge()))是一个包含上次合并的所有祖先的集合

结合所有这些,上面的表达式变得(准备?):给我在最后两个合并中的第一个和最后一个合并之间的所有变更集,这恰好是最后一次合并的祖先.

祖先(…)位过滤掉任何不相关的变更集.

您可以通过添加&;将此限制为特定分支上的更改.分支(分支).例如,如果要从默认值合并到发布分支,则可以执行以下操作:

$hg log -r "first(last(merge(),2)):last(merge()) & ancestors(last(merge())) & branch(default)"

这将不包括实际的合并本身,因为它们将出现在发布分支上.

希望这是有道理的 – 今天下午我会看看我是否可以采用更简单的方式,但这是第一个让人想起的.在此期间,如果您使用此功能,则可以通过在用户hgrc文件中创建revset别名来简化:

[revsetalias]
contrib = first(last(merge(),2)):last(merge()) & ancestors(last(merge()))

所以你可以使用:

$hg log -r "contrib"
$hg log -r "contrib & branch(default)"

有关更多信息,请查看hg help revsets.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读