在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
,所以我想加入它!
我们非常感谢您的任何建议。谢谢!
答案 0 :(得分:5)
不是100%确定这是否有效:
hg log -r '::stable - ::540'
我不确定,因为我认为你提供的命令大多是正确的,除了变更集539.你没有错误地将-b stable
传递给hg log
你呢?
答案 1 :(得分:3)
看看revsets。凯文发布了你想要的简短形式 - 这是长形式:
hg log -r "ancestors('stable') and not ancestors(540)"
Revsets非常强大,你可以将它们输入到TortoiseHg的过滤栏中。