使用Mercurial,如何使用跨分支祖先记录分支?

使用Mercurial,如何使用跨分支祖先记录分支?,mercurial,changelog,revision-history,Mercurial,Changelog,Revision History,在Mercurial中,我想为我的stable分支构建一个包含所有提交消息的变更日志。目前,我正在使用: hg日志-r:: 其中是我们上次推出代码时变更集的修订id,是稳定的提示。这对于仅在stable分支上的代码更改非常有效,但是如果我合并另一个分支(例如有自己的开发分支的新的主要版本),所有这些提交消息都会被忽略!相反,我只从它合并到stable的地方得到1个提交。我想用某种方式(最好是w/hglog)也能看到这些 我不想在此列表中获得任何“未发布”的提交—即,在未合并到稳定的任何分支上提交

在Mercurial中,我想为我的
stable
分支构建一个包含所有提交消息的变更日志。目前,我正在使用:

hg日志-r::

其中是我们上次推出代码时变更集的修订id,是
稳定的
提示。这对于仅在
stable
分支上的代码更改非常有效,但是如果我合并另一个分支(例如有自己的开发分支的新的主要版本),所有这些提交消息都会被忽略!相反,我只从它合并到
stable
的地方得到1个提交。我想用某种方式(最好是w/
hglog
)也能看到这些

我不想在此列表中获得任何“未发布”的提交—即,在未合并到
稳定
的任何分支上提交

下面是我正在寻找的一个例子:

在本例中,最后推送的修订是540。正因为如此,我不想要540或以下的价格。有几个分支进入
default
和回到
stable
,我想要所有这些(539541-557绿色)。但是,有一些更改没有合并回
稳定的
(558-563),我希望省略这些更改。特别注意修订版539;当540出版时,它没有合并到
stable
,因此不包括在内。但是现在它已经被合并到了
stable
,所以我想包括它


如果你们有任何建议,我们将不胜感激。谢谢

无法100%确定这是否可行:

hg log -r '::stable - ::540'
我对此不确定,因为我认为您提供的命令基本上是正确的,除了changeset539。您没有错误地将
-b stable
传递到
hg log
,是吗?

看看。Kevin发布了“你想要什么”的简短表格-以下是长表格:

hg log -r "ancestors('stable') and not ancestors(540)"

Revset功能强大得令人难以置信,您只需将其输入到OrtoiseHG的过滤栏即可。

就是这样!谢谢是的,这是正确的方法:除了已经发布的内容之外,你想要所有已经进入稳定状态的内容(
::stable
)。