2009-09-24 34 views
7

私はフィーチャーブランチに取り組んでおり、他の開発者に影響を与えるフィーチャーブランチにコミットしました。私はトランクにこれらの新しい変更をコミットして、後でブレークを修正するために誰もスクランブリングしないようにしたいと思います。ただし、機能ブランチの残りの部分をコミットする必要はありません。なぜなら、機能ブランチはまだ完全に機能していないからです。SVN部分マージのベストプラクティス

私はr109で体幹から分岐しました。私の支店はトランクへのすべての変更を最大でr145にマージしました。私はr152とr153の私の支店への私の "他の開発者に影響を与える"変更をコミットしました。

私の思考プロセスは、ここではトランクに自分の作業コピーを切り替えsvnをすることだったし、その後の操作を行います。

のsvnマージのsvn://プロジェクト/支店/ myBranch -r 146:153 ./project

SVNトランクには私が変更したファイルの元のバージョンが含まれているのに対し、私は最新の変更だけをマージしています(以前のコミットでそのファイルを少し変更しました)。他の開発者がr149で変更したファイルと競合します。私のブランチはコミットする前にトランクからr145までのマージのみを含んでいたので、私のブランチはその変更を反映していません。

これは問題ありません。問題は解決しやすいですが、私の心配は、私がトランクに自分の完全なブランチを再統合したい時から今は苦労するということです。

また、私はトランクに必要な変更を行い、それらを私のブランチにマージすることができましたが、ブランチで変更が既に行われているので、私はその方法が嫌いです。それらを2回行うのは意味がありません。

トランクへのフィーチャーブランチの部分的なマージで、完全な再統合が行われた経験がありますか?ここで最善の戦略は何ですか?

答えて

4

ブランチでの変更の順​​序がそれほど重要でない場合は、その変更をトランクにマージしてから、その機能を再統合する準備ができたら残りのトランジションをマージすることができます。

可能であれば、ブランチがマージする準備が整うまで、変更を待つだけで状況を回避できます。

ほとんどの場合、トランクで直ちに行う必要がある変更の場合は、トランクで変更を行い、ブランチではなくトランクからブランチにマージすることをお勧めします通常は行います。

+0

ありがとう!私は自分の枝にコミットした後に、トランクで代わりにすべきだったことを認識しました。それ以外の場合は、あなたが提案した方法でやっただけです。 –

1

あなたや他の開発者が保存したい変更が残っていて、望ましくない変更がないことを確実にするためには、おそらく手動ですべての競合するファイルをマージする必要がありますlabviewのLVMergeグラフィカルマージツール。私はトータスSVNと一緒にそれを使用して良い成功を収めてきました - ここでSVNにLVMergeを統合する方法について説明し、バージョンの競合を解決するためにそれを使用して、次のとおりです。

http://www.dmcinfo.com/Blog/articleType/ArticleView/articleId/136/Using-LVmerge-LabVIEW-Merge-Tool-with-TortoiseSVN.aspx

+1

このツールはどのように亀のマージツールと異なるのですか? – SeanJA

関連する問題