web-dev-qa-db-ja.com

Eclipseを使用したSVNのトランクへのブランチのマージ

SVNのブランチで開発したコードをトランクにマージすることを楽しみにしています。私はEclipseを使用していますが、チーム->コミットを使用してSVNに更新をコミットしています。しかし、私は以前にマージを行ったことはありません。これで私を助けてください。ありがとう

43
mona
  1. まず、あなたが最新のものであることを確認してください。ターゲットブランチの作業コピーを更新します。マージする場所。この例では、「コア」のトランクで作業しており、メンテナンスブランチで発生した変更を取得してマージします。
  2. 競合を解決します。この段階では、作業コピーとリポジトリの間で競合は発生しません。
  3. 作業コピーでSVNマージオプションを選択します。 Eclipseでは、これは[チーム]メニューの下にあり、[ブランチのマージ]と呼ばれます。 SVN:Eclipseでのマージ
  4. From URLを、作業コピーにマージする特定のブランチに変更します。この例では、p400メンテナンスブランチ(./core/branches/p400)を探しています。
  5. From Revisionを、ターゲットブランチにマージされた最後のリビジョンに変更します。基本的に、ブランチの履歴全体をマージし続けるのではなく、最後にマージしたときからの変更を含めるだけです。 Subversionでは、現時点で最後のマージポイントを決定する簡単な方法はありません。メッセージログを確認し、マージについて説明する最後のコミットを探す必要があります。マージに使用するコミットメッセージについて規律がある場合、これは簡単です(以下を参照)。そのリビジョンが何であるかをメモします。これは、後で変更をコミットするときに必要になります。 SVN:Eclipseとのマージ
  6. To Revisionを最新(ヘッド)に変更します。そのリビジョンが何であるかをメモします。これは、後で変更をコミットするときに必要になります。
  7. [結合]をクリックして待機します。違いの大きさに応じて、これは迅速に行われるか、Eclipseがちょうど転倒するかです。 Eclipseで実行できないほど大きな変更がある場合、マージするリビジョンの範囲を小さくする必要があるかもしれません。または、特定のリビジョンをスキップして、それらが大規模な場合は手動で行う必要がある場合もあります。大規模なサードパーティライブラリを更新するときに、この問題が時々発生しました。大部分の時間は大丈夫です。
  8. 変更を確認し、競合を解決します。マージが完了したら、作業コピーに加えられた変更を調べ、見つかった競合に対処するようにしてください。
  9. ターゲットの作業コピーですべての変更が解決されたら、1回のコミットでそれらをチェックインします。たくさんのコミットをしていないのは、これらの変更はマージ元のブランチで文書化されるべきだったからです。コミットメッセージは、マージの詳細を示す特定の形式である必要があり、将来は簡単に見つけることができます。次の形式を使用しますが、それに固執する限り、あなたに合ったものなら何でも使用できます。

    [ソース]を[ターゲット]にマージしています。 [リポジトリ]。回転のマージ[開始]:[終了]

楽しい!

81
dvanaria

ポイント8に追加します。変更を確認し、競合を解決します。 ---

手動で競合を処理する場合-コードのチャンクを右から左にコピーする場合-注意コードのチャンクが追加される場合や、チャンクが適切に置き換えられる場合があります。コードの重複部分がないことを確認してください。

また、これは便利です-- EclipseでSubversionマージを行う適切な方法は何ですか?

0

Eclipseには、マージするオプションがあります。プロジェクトを右クリックすると、「チーム」オプションが表示され、クリックするとマージオプションが表示されます。マージで確認できる3つの異なるオプションがあります。 enter image description here

ブランチからトランクへの変更を正常にマージするには、ローカルワークスペースをトランクに切り替える必要があります(ただし、すべての変更がその前にブランチにコミットされていることを確認してください)。それができたら、マージオプションを使用して、「2つのURL」オプションを選択します。トランクのurlをurl 1として、マージしたいブランチをurl 2として配置しました。「OK」を選択したすべての着信変更を確認できました。すべての変更はローカルになりました(この時点で、ワークスペースはトランクにリンクされています)。その後、トランクに変更をコミットしたため、ブランチからトランクへのマージは成功しました。

0
MR AND