2014-11-14 62 views
3

在Mercurial中,我想要爲修訂版本stable分支構建所有提交消息的更新日誌。目前,我使用:隨着Mercurial,你如何記錄與跨分支祖先的分支?

hg log -r <oldid>::<newid>

其中是最後一次變更的修訂ID,我們推出的代碼,是stable的提示。這適用於僅在stable分支上的代碼更改,但如果我合併另一個分支(例如具有其自己的開發分支的新主要版本),則所有這些提交消息都將被忽略!相反,我只從其合併到stable的位置獲得1次提交。我想要某種方式(最好是w/hg log)也可以看到這些。

我不想在此列表中獲得任何「未發佈」提交 - 即在未合併到stable的任何分支上提交。

這裏是什麼,我正在尋找一個例子: HG Graph example

在這個例子中,最後推修訂版540正因爲如此,我不希望在540或以下任何東西。有幾個分支進入default並返回到stable,我想要所有這些(539,541-557綠色)。但是,有些更改未合併回stable(558-563),我想省略它。特別注意修訂版539;它在540發佈時並未合併到stable中,因此未包括在內。但現在它已合併爲stable,所以我想包括它!

任何意見,你們都將不勝感激。謝謝!

回答

5

不是100%肯定這是否會工作:

hg log -r '::stable - ::540' 

我不確定,因爲我還以爲你提供的命令將主要是正確的,除了變更539.你不及格-b stablehg log是錯誤的,是嗎?

+0

就是這樣!謝謝! – DOOManiac 2014-11-14 16:37:15

+0

是的,這是這樣做的正確方法:除了已經發布的東西' - :: 540'之外,你想要轉換成穩定的(':: stable')。 – 2014-11-14 23:02:42

3

看一看revsets。凱文貼你想要什麼的縮寫形式 - 這裏的長型:

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

Revsets是令人難以置信的強大,你可以將它們輸入TortoiseHg的過濾棒。