*

* SVN Index   * Tips   * Top

Subversion(TortoiseSVN)でマージする方法(手順)(1)

分岐した内容に関して、バグが全くなければよいのですが、どうしても branchesで修正した内容をtrunkへ反映する必要が出てくる必要があるでしょう。 もちろん、trunkを先に修正してbranchesへ反映する場合も手順は同じです。

(ご注意) このページをご利用になった結果の影響については、 一切責任を負いませんので、あらかじめご了承願います。

  1. 「branches/v4/」を「trunk/」より分岐してから、しばらくの日が経ちました。 trunk側へはいろいろと新機能が入っていますが、 ブランチ側は出荷も近くて追加はせずに動作確認だけを続けています。 ある日、branchesもtrunkも両方修正しないといけないバグが見つかりました。 ここでは、先にブランチ側を修正して、その結果をtrunkへマージしましょう。
    ↓ trunk/sample1.txt

    ↓ branches/v4/sample1.txt

  2. ブランチ側へバグ修正を入れます。
    ↓ branches/v4/sample1.txt

  3. 編集した結果をコミットします。

  4. trunk側へ反映します。trunk側のコンテキストメニュー(右クリックメニュー)より、 [TortoiseSVN] → [マージ]を選択します。 このとき、目的のフォルダそのものを選択してもよいですし、 目的のフォルダに入ってファイル以外の空白部分を選択してもかまいません。 注意しなければならないのは、フォルダ内の単一のファイルを選択しないことです。 ただし、明示的に単一のファイルのみをマージしたい場合はこの限りではありません。

  5. 「リビジョンの範囲をマージ」を選択して、[次へ]を押してください。

  6. マージ元と、マージするリビジョンを選択します。 マージ元のURLのところへは、 今回は「branches/v4/」ですのでこれを入力します。 マージ先は作業コピーのところへ表示されています。 このとき、作業コピーでフォルダを右クリックしたときはフォルダを、 ファイルを右クリックしたときはファイルをセットしてください。 マージするリビジョンの範囲を指定するときは、ログを表示させて そこから選択すると便利です。[例:]で表示している通り、 リビジョンの範囲は連続していても連続していなくてもよいです。 今回の例では先にbranchesへコミットした リビジョン61の内容のみをマージします。 準備ができたら、[次へ]を押してください。

  7. サーバ・リポジトリ・クライアントがすべてバージョンが1.5以上の場合は、 マージしたリビジョンの範囲をSubversionが記録しています。 既にマージ済みの項目は、ログを表示させたときは灰色表示になります。 この画面は後日になって、再度マージを実行したときの表示です。 リビジョン61のところが灰色になっていることにより、 既にマージが終わっていることがわかります。 灰色表示のものは、たとえ選択しても再度マージすることはありません。

  8. マージする深さを選択します。 「作業コピー」を選択した場合は、 作業コピーをチェックアウトしたときに選択した階層に依存します。 準備ができたら、[マージ]を押してください。

  9. 今回の例ではコンフリクトは発生しませんが、 もし、マージの途中でコンフリクトが発生した場合は解決させてください。 その場で解決しても、あとで解決しても、どちらでもよいです。

  10. マージが完了しますので、 正しくマージされていることを(プログラムの場合はきちんと動作することを) 確認してください。
    ↓ trunk/sample1.txt

  11. 確認できたら、忘れずにコミットしてください。


shacho@critical.ne.jp
Last modified: Mon Oct 20 18:00:00 JST 2008