在Mercurial中,我希望为修改我的stable分支构建所有提交消息的变更。目前,我正在使用:
hg log -r <oldid>::<newid>
我们上次推出代码时的变更集的修订id在哪里,这是stable的提示。这对于只在stable分支上的代码更改非常有用,但是如果我合并另一个分支(例如一个新的主要版本,它有自己的开发分支),那么所有这些提交消息都会被省略!相反,我只能从它合并到stable的地方得到1提交。我也希望有某种方式(最好是w/ hg log)来查看这些信息。
我不希望在这个列表中得到任何“未发布的”提交--也就是说,在尚未合并到stable中的任何分支上提交。
下面是我正在寻找的一个例子:

在本例中,最后一次推送修订为540。因此,我不想要540或以下的任何东西。有几个分支进入default,然后返回到stable,我想要所有这些(539,541-557绿色)。但是,有些更改没有合并回stable (558-563),我希望省略这些更改。请特别注意第539版;在发布540版时,它没有被合并到stable中,因此没有包括在内。但是现在它已经被合并到stable中了,所以我想把它包括进去!
如果你们有任何建议,我们将不胜感激。谢谢!
发布于 2014-11-14 16:28:27
不能100%确定这样做是否有效:
hg log -r '::stable - ::540'我对此不确定,因为我认为您提供的命令大部分是正确的,除了changeset 539。你不是误把-b stable传给hg log了,是吗?
发布于 2014-11-14 21:25:06
看看返修。凯文贴出了你想要的短表格--这是一张长长的表格:
hg log -r "ancestors('stable') and not ancestors(540)"Revset非常强大,您只需将它们输入TortoiseHg的筛选栏即可。
https://stackoverflow.com/questions/26934373
复制相似问题