2011-07-06 21 views
4

私が作業しているブランチBと、同僚が作業しているブランチCのSVNプロジェクトがあります。 (主にコードの1つの領域で作業し、私は主に別のコードで作業します)svn:トランク以外のブランチ間のマージ

トランクにマージを行う前に、彼と私はマージする必要がありますか?

コンテンツをマージする際に問題はありませんが、コンテンツ(特にsvn:mergeinfo)はツリーの競合を表示し続けるため、常に問題が発生します。

どうすればよいですか?

+0

彼は自分のエリアで出血している(つまりアルファステータスまたは悪化している)ので、私は自分のエリアで出血しているので、私たちはそれぞれのブランチを適切な形にする我々は再び合併する。応答のために –

+0

ありがとうございます。 –

+0

@Vivek:あなたのコメントを削除したのはなぜですか?それは有効なポイントだったが、今は文脈がなくなった。 –

答えて

2

両方とも同じブランチで作業できる場合は、1つのブランチに対するすべての変更の基本的なマージを行い、他のブランチを放棄することを検討してください。ブランチに別の変更がある場合は、別のままにしておく必要がある場合は、根拠のない変更を単一ブランチにマージしてチェリーピックを考慮し、ソースブランチの変更を元に戻してください。 (参考)

構造:

  • トランク
    • ブランチ
    • ブランチB

プロセスは、次のようなものであろう:

  1. FI(前方統合)両方の子にトランク。 (ブランクへのトランクのマージ)A、ブランクへのトランクB)。
  2. ベースレスマージからです。
  3. Abandon B(少なくとも、退職したブランチを誤って使用するのを防ぐためにロックしてください)。再び(関係をマージ再確立と更なる変更が導入される前に、任意の競合をマージします。
  4. あなたや他の開発者の両方が安定するまでブランチの開発を継続してアイロンを
  5. FIトランク。
  6. FIトランクすぐにAにスモークテストをビルドして実行(他の開発者や他のトランクアクティビティから最新の変更を拾う)
  7. (成功FIを確認し、AはSTです
    1. スモークテスト中にトランクが頻繁に変更された場合は、手順6〜8が完了するまで、6 & 7またはおそらくロックトランクを繰り返します。
  8. RI(リバース統合)Aトランク

IDEA:可能避け、将来の子枝の間に安定化されていない変更を共有した場合。基本的なマージとチェリーピッキングの変更は、標準的なフル親子マージよりも高いリスク操作です。 1つのapprachは共通の開発ブランチを使用し、必要なときにのみ機能別にブランチングすることです。すべての開発者は、変更のために共通のdevブランチを使用します。変更を破るときに複数の開発者が&をビルドする必要がある場合は、機能ブランチを作成します。一旦安定化されると、Devブランチに統合され、フィーチャーブランチがリタイアされます。

+0

+ info +努力のために+1しますが、それは本当に便利な方法ではありません。 –

関連する問題