抱怨问一个愚蠢的问题,但我似乎无法在任何地方找到答案......
我有一个庞大而复杂的Mercurial仓库,里面有十几个分支。大约6个月前,我修复了分支A上的一个错误。如何发现哪些其他分支(如果有的话)也包含此更改?
一个明显的答案是在Tortoise Hg中找到更改集,并通过6个月的更改手动跟踪纠结的修订图,直到我找到我之后的信息。从理论上讲,它可以起作用,但是对于人类而言,手动操作非常耗时且容易出错。
当然,有一些方法可以实现自动化......
P.S。试图为此找到Google搜索字词是一种令人沮丧的练习。
答案 0 :(得分:4)
我认为这是你想要的命令:
hg log -r "heads(descendants(XXX) or descendants(destination(XXX)) or destination(XXX) or XXX)" -T "{branch}\n"
XXX
必须替换为bugfix变更集的哈希值或变更集号。
以下是对上述表达的解释:
heads(set) - only considers the heads of the changeset set
descendants(rev) - only considers all direct descendants of the changeset
destination(rev) - only considers grafts, transplants or rebases of the changeset
rev - that changeset
所以表达式意味着:所有的头都是:
有关revsets的更多信息,请访问:Mercurial Help: revsets。