2013-03-15 1 views
7

gits no-fast-forward mergeと同等のmercurialは何ですか(早送りが可能な場合)?gits no-fast-forward mergeと同等の水銀がありますか?

編集

マスター/デフォルトの頭/先端の枝/ブックマークがあるとします。

o feature 
| 
o 
| 
o master/default 
| 
... 

シンプル早送りマージがもたらすであろう:

o feature/master/default 
| 
o 
| 
o 
| 
... 

no-fast-forwardマージは次のようになります。

o merge commit - feature/master/default 
| \ 
| o  
| | 
| o 
|/
o 
| 
... 
+0

"更新"?早送りのマージは何ですか?それは単に更新を行うのですか?もちろん、Mercurialはこれを検出しませんが、マージを実行しようとは思わないでしょう。 –

+0

彼は、早送りの代替手段ではなく早送りの代替手段を求めていました。 :) –

+0

もしあなたが何かを見つけることができない場合は、マージする前にマスターでダミーコミットしたいものを作り出すでしょうか? –

答えて

7

あなたのフィーチャーブランチのコミット方法によって異なります。

機能が名前付きブランチで開発された場合、早送りなしマージに相当する機能を使用できます。実際、名前付きブランチは他の方法ではマージできません。

hg update default 
hg branch feature-1 
...work... 
hg commit -m "implemented feature on named branch" 
hg update default 
hg merge feature-1 
hg commit -m "merged feature-1 to default" 

これは、このようなグラフになります:

o merged feature-1 to default 
|\ 
| o feature-1: implemented feature on named branch 
|/ 
o 
| 

という名前の枝(すなわち、枝がhg branchコマンドを使用して作成)とのみ有効です。匿名のブランチやブックマークでは機能しません。

this thread(デッドリンク)問題を説明しているMercurialのメールリストにも記載されています。

+0

これは、フィーチャをマージするためのマージチェンジセットの「句読点」が本当に好きな人のためのアイデアです。あなたは、 'newfeature'という名前のブランチと、そのブランチ内のいくつかのブックマークを持っています。 – Omnifarious

+0

この回答の最も良い部分は最後の行です。 – Ringding

+0

'debugsetparents'コマンドを使用して、匿名の頭でMercurialのOedipusマージを行うことができます。 http://hgtip.com/tips/advanced/2010-04-23-debug-command-tricks/#3-simulate-gits-no-ff-merges-with-anonymous-headsを参照してください。私は、デバッグコマンドにMercurialの残りの互換性の保証は与えられていないと思います。 – jwd

関連する問題