Subversionでtrunkの内容をbranchにmergeまたはその逆
備忘録。書きかけ&未確認。
現在の作業リポジトリの変更をすべてコミットしておく
これで失敗しても安心♡
trunkの内容をbranchにmerge
作業リポジトリをbranchに変更
svn switch file:///home/sysdev/svn_repos/branches/branched_version
svn infoコマンドで現在の作業リポジトリのURL等を確認しておくこと。
branchの開始点のリビジョン番号を確認
svn log --stop-on-copy
一番最後に出力されるログのリビジョン番号を控えておく(仮にr411とする)。
trunkの内容をbranchにmerge(merge試行)
svn merge --dry-run -r 411:HEAD file:///home/sysdev/svn_repos/trunk
trunkのr411から最新までのコミット内容を現在の作業リポジトリにmergeする。
--dry-runオプションで更新内容だけが表示され実際の変更は行われない。
merge試行の結果を確認
A = 作業用コピーでファイルが追加されました。
U = 作業用コピーでファイルが更新されました。
D = 作業用コピーでファイルが削除されました。
R = 作業用コピーでファイルが置き換えられました。
G = ファイルのマージに成功しました。
C = ファイルにマージの競合があるため手作業での解決が必要です。
C以外は特にやることなし。マージの競合がある場合は適宜対応する。
ファイル修正するなどしたら、必ず--dry-runオプションをつけて実行してmerge試行を実行すること。
trunkの内容をbranchにmerge(本番)
svn merge -r 411:HEAD file:///home/sysdev/svn_repos/trunk
上記(merge試行)できちんと対応できていれば特に問題なし。
merge内容をcommit
svn commit
branchの内容をtrunkにmerge
作業リポジトリをbranchに変更
svn switch file:///home/sysdev/svn_repos/branches/branched_version
svn infoコマンドで現在の作業リポジトリのURL等を確認しておくこと。
branchの開始点のリビジョン番号を確認
svn log --stop-on-copy
一番最後に出力されるログのリビジョン番号を控えておく(仮にr411とする)。
作業リポジトリをtrunkに変更
svn switch file:///home/sysdev/svn_repos/trunk
branchの内容をtrunkにmerge(merge試行)
svn merge --dry-run -r 411:HEAD file:///home/sysdev/svn_repos/branches/branched_version
trunkのr411から最新までのコミット内容を現在の作業リポジトリにmergeする。
--dry-runオプションで更新内容だけが表示され実際の変更は行われない。
merge試行の結果を確認
A = 作業用コピーでファイルが追加されました。
U = 作業用コピーでファイルが更新されました。
D = 作業用コピーでファイルが削除されました。
R = 作業用コピーでファイルが置き換えられました。
G = ファイルのマージに成功しました。
C = ファイルにマージの競合があるため手作業での解決が必要です。
C以外は特にやることなし。マージの競合がある場合は適宜対応する。
ファイル修正するなどしたら、必ず--dry-runオプションをつけて実行してmerge試行を実行すること。
branchの内容をtrunkにmerge(本番)
svn merge -r 411:HEAD file:///home/sysdev/svn_repos/branches/branched_version
上記(merge試行)できちんと対応できていれば特に問題なし。
merge内容をcommit
svn commit