2011-01-30 29 views
3

これはかなり一般的で簡単な要件のようですが、私は移植の拡張、リベース、インポート、エクスポートなどを調べましたが、うまくいけば私は何か明白なものを逃している。実際にマージすることなく2つのブランチをマージする

ブランチ自体が消えないように、2つのブランチ(具体的にはブランチという名前のブランチ)を「マージ」したいと思います。基本的には、リビジョンから変更を取り込み、手動でcherrypickの変更/競合を解決したい(マージプログラムを使用して)。

現在の作業ディレクトリに直接適用されるパッチやチェンジセットは、インポート、エクスポート、移植などで生成されるようです。しかし、私はそれを望んでいません...代わりに、私は手動で変更が入るかどうかを判断したいと思います。

あなたの助けをお待ちしています。

+1

どのツールをお使いですか?おなかや水銀? – gor

+0

私は下のMercurialに対するWimの答えをアップvしましたが、あなたが持っているより大きな概念の誤解を強調したいと思いました。 Mercurialという名前のブランチには、変更セットの永続的な名前があります。あなたが '' hg update stable ''を実行した場合。 hg merge development'では、開発ブランチではなく、 'hg update development; ...変化する...; hg commit'は、親が開発であり、ブランチがそれまでと同じように存在する開発ブランチ上で新しい頭を作ります。 devからの変更の一部を取得する場合は、マージツールで簡単に変更できます。 –

+0

ありがとうRy4an、あなたは私の誤解について正しいです。 – Kostolma

答えて

4

ブランチ自体がなくならないように、2つのブランチ(具体的にはブランチという名前のブランチ)を「マージ」したいと思います。

これはデフォルトの動作です。たとえば、look at the default branch of the mercurial source codeの場合は、stableと定期的にマージされます。これらのマージではdefaultまたはstableは表示されません。マージコミットはローカルブランチ名を取得するだけです。

私は手動で行って変更内容を決定します。

移植はすでにそれを行うように私にね。あるいは、独自の機能ブランチで各変更を行い、ブランチにマージされる機能を完全に制御することができます。

更新:コアgraftコマンドもあります。

0

gitを使用している場合は、マージstrategiesを見てください。

2

あなたは、あなたが他の二つの枝から、必要なものは何でもチェンジマージすることができます第三支店、統合枝を、使用することができますように見えます。
はその後、(Gitのためにここで)の組み合わせを使用することができます。

git cherry-pick SHA1 --no-commit 
git add --patch 

にあなたはSOの質問「Using GIT, how can I selectively pull/merge changes from anothers 'fork'?

で説明したように、その第三のブランチにマージ/インポートする必要が正確に何を本当に微調整
関連する問題