2012-01-09 11 views
2

トランクからブランチFeature1を作成しました。その後、Feature1から支店Feature1.1を作成しました。このよう :Subversion - ネストされたブランチ

     +--------- Feature1.1 
        /
       +-----+----------- Feature1 
      /
/----------+--------------------------------------------- trunk 

は、私が今特長1の私の仕事を終えているが、私はFeature1.1上のいくつかのより多くのコーディングをしなければならないので、私はこのようなトランクと特長1を合併しています

  1. 合併しました:トランク - >特長1
  2. マージ:特長1 - > Feature1.1
  3. マージ:特長1 - >(再統合有する)トランク

私の計画は、 "Trunk - > Feature1.1"をマージして、Feature1.1で作業を継続し、トランクのFeature1をバグ修正しました。しかし、 "Trunk - > Feature1.1"をマージしようとすると、プロジェクト内のすべてのファイルに競合があるように見えます。

ファイルを手動でマージする必要がありますか(〜100個のファイル...)、これを解決する方法を知っていますか?

Feature1.1のファイルをFeature1にマージして(可能であれば)、Feature1ブランチから別のトランク再統合 - マージを行う方法もあります。 SVNの本のKeeping a Reintegrated Branch Aliveの章を参照してください。

+0

あなたの質問に答えるかどうか不明ですが、gitを使用していた場合は非常に簡単です。ブランチFeature1.1を新しいトランクにリベースします。 1つのコマンド。私はそれがSVNで簡単だとは思わない、あなたは "git svn"ブリッジを使用することができますが、あなたはsvnにそれを同期するのが難しいでしょう。どのようにそれを行う - それは新しいベース(あなたのケースでは最新のトランク)の上にFeature1.1で作られたdiffsをreaaplies。 – kan

+1

おそらくそれは話題にはなりませんが...別のSCMに切り替えるのはなぜですか? – pablo

+0

@pablo:go away - SVNはその目的のためにすごく効果的です。選択したSCMは、必ずしも誰にとっても最良の選択ではありません。 –

答えて

1

私はそれが箱の外で働くべきだと思います。もしそれがあなたの設定ではうまくいかず、あなたのシナリオのステップ3(改めてRevと呼ぶでしょう)に達するまでトランクで行われたすべての変更がマージされることを知っているのでトランクからFeature1.1までのすべてのリビジョンをTheRev--record-onlyというフラグで指定します。 Feature1.1でマージされたリビジョンをマークするだけです。

いつものように作業できるはずです。

+0

ありがとう、それは働いた。私はトランクとブランチの両方をレコード専用で動作させるために相互に同期させる必要があるかどうかはわかりませんでした。あなたは私のためにそれをクリアしました。 –