Mercurial:如何查找上一次我的分支合并到默认帐户中

时间:2019-06-06 13:50:10

标签: mercurial

是否有一些Mercurial修订集魔术可以用于在合并特定分支的default分支上找到最后的变更集(我们称之为mybranch)?

还是同样不错的发现,mybranch的最新版本已合并到默认版本中??

另外,列出从mybranch移植到default的变更集的方法也不错。

1 个答案:

答案 0 :(得分:2)

hg help revsets作为源,从最后一个问题开始

嫁接变更集列表

"destination([set])" 
Changesets that were created by a graft, transplant or rebase operation, with the given
revisions specified as the source.
Omitting the optional set is the same as passing all().

对于“ ...从mybranch移植到默认值的变更集”修订版将为

destination(branch("mybranch")) & branch("default")

更好:您可以将其存储为revsetalias(TBT!)

[revsetalias]
grafted(from, to) = destination(branch(from)) & branch(to)

并将其用于任何一对分支机构(扩展到自定义来源数量将是您的未来任务)

最后合并的修订版

逐步

  • “ ...合并特定分支的默认分支上的最后一个变更集”是a)合并集b)如果再次合并,则是最新的c)其父级之一属于疑问分支
  • 您必须测试revset,如果我父母混在一起,请在revset中交换p1和p2(现在无法调试)
  • 必须为最常见的任务“获取分支FROM到分支TO的最新合并点”准备Revset

merge() & branch("to")-TO中的所有合并点

p2(merge() & branch("to")) & branch("from")-以上内容的父项仅合并自FROM

child(p2(merge() & branch("to")) & branch("from")) & branch("to")-以上父母的孩子只能在TO中使用(因为他们也可以在其他分支中拥有孩子)

last(child(p2(merge() & branch("to")) & branch("from")) & branch("to"))-如果合并不止一次,则为最新的合并点。

一组revsetaliases(以提高可读性)

[revsetalias]
ms(to) = merge() & branch(to)

ms2b(to,from)=(child(p2(ms(to())))&branch(from))&branch(to)

fp_ms(to,from) = p2(ms(to)) & branch(from)

和您的修订:

  • 最新合并点last(ms2b("default","mybranch"))
  • 最新的外国父母last(fp_ms("default","mybranch"))

添加和演示

我修复了ms2b(),如下面的THG的repobrowser屏幕截图所示。从稳定状态按原样合并为默认值

children(p2(merge() & branch(default)) & branch(stable)) & branch(default)

具有参数和预先准备的revsetaliases

ms2b(to,from) = children(p2(ms(to)) & branch(from)) & branch(to)

RepoBrowser w/filter