project/branches/hogehoge を project/trunk に svn merge する例。


$ svn checkout svn://path/project/trunk
$ cd trunk
$ svn update
$ svn merge --reintegrate svn://path/project/branches/hogehoge
$ svn commit -m "merge"
$ svn delete -m "merged" svn://path/project/branches/hogehoge
トランクをブランチにマージするときは、--reintegrate オプションを付けてはいけない。
(中略)
ブランチをトランクにマージするときは、--reintegrate オプションを付ける。

--reintegrate オプションを使うこの形式のマージは一つのブランチにつき一回だけ行える (その後ブランチを更新してもそれをトランクにマージできないので、ブランチはただちに削除するとよい)。ブランチでの変更のうち、トランクからブランチへのマージによるもの以外の変更がトランクに適用され、自動的に svn:mergeinfo 属性が更新される。

Subversion 1.5 以降での機能ブランチのマージ: まじかんと雑記
一度 --reintegrate オプションを指定したブランチはそれ以降使い物にならないそうです。

svn merge --reintegrate (ブランチの再結合)

Ref. Subversion メモ (Subversion - MemoWiki)

tags: subversion

Posted by NI-Lab. (@nilab)