気になるガジェット

気になるガジェットについて簡単にまとめたメモブログです

Subversionでbranchからtrunkにマージする方法

f:id:the_beatles:20161214131238j:plain:w1000

あまり機会がないため忘れがちですが、たまにやったときに困るため、Subversionでのmerge方法をまとめておきます。

ワークスペースの変更を全てcommitしておく

今までの作業が水の泡になってしまわないように、一旦現状のワークスペースの変更をcommitしておきます。

branchの内容をtrunkにmerge

作業は以下の手順で行います。

  1. 作業リポジトリをbranchに変更

    svn switch file:///IPアドレス/branches/ブランチ名
    svn infoでワークスペースのURLが確認出来ます

  2. branchの開始点のリビジョン番号を確認

    svn log --stop-on-copy
    ※ 一番最後に出力されるログのリビジョン番号を控えておく(仮にr5454とする)

  3. 作業リポジトリをtrunkに変更

    svn switch file:///IPアドレス/trunk

  4. branchの内容をtrunkにmerge(テスト実行)

    svn merge --dry-run -r 5454:HEAD file:///IPアドレス/branches/ブランチ名

  5. merge試行の結果を確認

    フラグ 内容
    A 作業用コピーでファイルが追加されました
    U 作業用コピーでファイルが更新されました
    D 作業用コピーでファイルが削除されました
    R 作業用コピーでファイルが置き換えられました
    G ファイルのマージに成功しました
    C ファイルにマージの競合があるため手作業での解決が必要です

    C以外は特にやることなし。マージの競合がある場合は適宜対応する。 ファイル修正するなどしたら、必ず--dry-runオプションをつけて実行してmerge試行を実行すること。

  6. branchの内容をtrunkにmerge(本番実行)

    svn merge -r 5454:HEAD file:///home/sysdev/svn_repos/branches/branched_version

  7. merge内容をcommit

    svn commit

trunkの内容をbranchにmerge

作業は以下の手順で行います。

  1. 作業リポジトリをbranchに変更

    svn switch file:///IPアドレス/branches/ブランチ名

  2. branchの開始点のリビジョン番号を確認

    svn log --stop-on-copy
    ※ 一番最後に出力されるログのリビジョン番号を控えておく(仮にr5454とする)

  3. trunkの内容をbranchにmerge(テスト実行)

    svn merge --dry-run -r 5454:HEAD file:///IPアドレス/trunk

  4. merge試行の結果を確認
  5. trunkの内容をbranchにmerge(本番実行)

    svn merge -r 5454:HEAD file:///IPアドレス/trunk

  6. merge内容をcommit

    svn commit

広告を非表示にする