2011-07-19 20 views

答えて

5

使用revsets

バザールのために
"ancestor(single, single)" 
     Greatest common ancestor of the two changesets. 

$ hg log -r 'ancestor(rev1, rev2)' 
+0

**祖先(セット)**は完璧です! – gavenkoa

+0

ありがとう、これは私が必要としたものです。 –

5

hg debugancestor rev1 rev2

+0

回答ありがとうございます。このコマンドは** hg help **から隠されていますが、タイプ** hg debug **の場合は表示できます。不幸にもこのコマンドは2つのチェンジセットしか許さないので、git-merge-baseは任意の数のチェンジセットを許可します。 – gavenkoa

+3

@gavenkoa私は、Mercurialでは、1回のコミット(git octopus merge)で2つ以上のブランチをマージすることはできないと考えています。 Mercurialの開発者はおそらく、許可されていないマージに対して共通の祖先を見つけるコマンドを持つ必要はないと考えていたでしょう。 –

+0

しかし、この機能は便利です。 * hg merge **を使用して変更を伝播させるために3つ以上のバーンチがある場合に、* cherry picking *を避けるためにどのリビジョンがbugfix/feature-developmentを開始するかを見つける。私の質問を見てくださいhttp://stackoverflow.com/questions/6709365/how-to-move-bugfixes-across-branches-in-dvcs – gavenkoa

8

bzr find-merge-base /path/to/branch1 /path/to/branch2 

(このコマンドは、あなたができるコマンドの主なセットから隠されていますbzr help commandsで取得します。0123を使用してください他の隠しコマンドを見るには)。

+0

これは*うまくいくはずですが、私にとっては常に最新のrevid(revidまたはrevnosのいずれかを渡すとき)を返します。 –

関連する問題