在mercurial中找到所有传出的变更集,并且父变量不是传出的

时间:2011-12-06 20:54:06

标签: mercurial

我从同事那里得到了大量单独的变更集列表。我想剥去这些。

我可以使用以下方法识别所有变更集:

hg log -r "outgoing() and not author('Brandon Leiran')"

我可以使用模板仅打印节点名称,然后将其用于我的条带列表,但我真的只想找到每个输出变更集字符串的“基础”。我可以使用revset查询执行此操作吗?或类似的东西?

2 个答案:

答案 0 :(得分:4)

从版本1.7开始,strip命令允许您指定要剥离的多个更改集,并允许您使用revsets。所以

$ hg strip "outgoing() and not author('Brandon Leiran')"

将删除一个命令中的所有更改集。换句话说,您不需要自己找到基座,条带会为您处理它。

但是,如果您希望在其他某些上下文中使用基数,请使用roots函数来计算它们:

$ hg log -r "roots(outgoing() and not author('Brandon Leiran'))"

答案 1 :(得分:0)

我假设您在任何分支的顶部没有“重要”(即您的)变更集。

现在如果是这样,并且单独的分支(或你调用它们的列表)的数量很少,你可能想要多次去掉这个选择器的结果,直到它没有产生变化集:

min(outgoing() and not author('Brandon Leiran'))

min返回set中最低版本号的变更集时,它将是一个分支的基础,你将剥离它。