Git have merge-baseコマンドは、2つ以上のブランチの共通の祖先を示します。Mercurialとbzrのマージベースアナログ(マージのために共通の祖先を見つけるために)?
Mercurialとbzrの類似点は何ですか? Mercurialのために
Git have merge-baseコマンドは、2つ以上のブランチの共通の祖先を示します。Mercurialとbzrのマージベースアナログ(マージのために共通の祖先を見つけるために)?
Mercurialとbzrの類似点は何ですか? Mercurialのために
使用revsets:
バザールのために"ancestor(single, single)"
Greatest common ancestor of the two changesets.
$ hg log -r 'ancestor(rev1, rev2)'
:
hg debugancestor rev1 rev2
回答ありがとうございます。このコマンドは** hg help **から隠されていますが、タイプ** hg debug **の場合は表示できます。不幸にもこのコマンドは2つのチェンジセットしか許さないので、git-merge-baseは任意の数のチェンジセットを許可します。 – gavenkoa
@gavenkoa私は、Mercurialでは、1回のコミット(git octopus merge)で2つ以上のブランチをマージすることはできないと考えています。 Mercurialの開発者はおそらく、許可されていないマージに対して共通の祖先を見つけるコマンドを持つ必要はないと考えていたでしょう。 –
しかし、この機能は便利です。 * hg merge **を使用して変更を伝播させるために3つ以上のバーンチがある場合に、* cherry picking *を避けるためにどのリビジョンがbugfix/feature-developmentを開始するかを見つける。私の質問を見てくださいhttp://stackoverflow.com/questions/6709365/how-to-move-bugfixes-across-branches-in-dvcs – gavenkoa
:
bzr find-merge-base /path/to/branch1 /path/to/branch2
(このコマンドは、あなたができるコマンドの主なセットから隠されていますbzr help commands
で取得します。0123を使用してください他の隠しコマンドを見るには)。
これは*うまくいくはずですが、私にとっては常に最新のrevid(revidまたはrevnosのいずれかを渡すとき)を返します。 –
**祖先(セット)**は完璧です! – gavenkoa
ありがとう、これは私が必要としたものです。 –