SVNマージの仕方
SVNのマージはいろいろとコツのような物が存在します。
また、SVNクライアントのバージョンなどにも依存する為説明を残しておきます。(最近のSVNクライアント1.2以降)
説明
- SVNマージはまずブランチにて作業を行っている事を前提とする。ブランチの作業を完全にリポジトリと同期の取れた状態にする。
つまり、「リポジトリと同期化」を行ってもなにも違いが表示されていない状態。
- マージを行うtrunkへ切り替える。
- trunkのプロジェクトにて、マージ処理を実行する。マージ処理を実行すると次のようなダイアログが表示される。
この設定では、「改訂(E)」の項目のチェックを行い、改訂番号を設定しなければならない。(デフォルトは「コピーから開始(T)」となっているがこれではうまくマージ出来ない)
改訂番号は「参照...」ボタンにより取得する。
- 改訂番号を取得するダイアログは以下のようになります。リストに表示されている項目はbranchにて改訂が行われた履歴となっています。
この履歴からマージ対象となる履歴にチェックを入れます。(基本的には全てチェックを入れる事)
チェックを入れた項目に対して、3.のマージダイアログに自動的に改訂番号が設定されます。
- マージ処理を行うと「チーム同期化」パースペクティブに切り替わり、違いのある項目が表示されます。
ツリー表示内の競合している部分(赤矢印)に関しては手動でマージ操作を行う必要があります。
赤矢印が付いたファイルをダブルクリックすると、比較エディターが表示されます。
- 比較エディターでは以下のような表示となりますが、ここでどのデータを編集すれば良いのかについて説明します。(編集は左側に表示されているファイルです)
分かりやすいようにピンクと水色で領域を囲っていますが
ピンクの領域(<<<<<.working ~ =======)はtrunkのデータ
水色の領域(======== ~ >>>>>>>>.merge-right.r4419)はbranchのデータ
となっており、通常はbranchのデータを正とする為trunkのデータは削除します。
- 今回の場合は編集後は以下のようになります。
- 編集を保存後、編集したファイルを「マージ済みとマーク」とします。
マークされたものはリストから消えます。
5.~8.を繰り返す事により全ての競合が無くなればマージ完了となります。
- 最後にマージしたソースでプログラムの動作確認を行い、trunkにコミットすれば完了です。
0 件のコメント:
コメントを投稿