Ab.の日記: svn merge tracking と tree conflict
日記 by
Ab.
- trunk を作業ブランチ branches/work1 にコピーします
svn copy svn://foo/bar/trunk svn://foo/bar/branches/work1
- trunk でディレクトリ dir1 を追加してコミットします。rev X とします
- branch の作業ディレクトリ上で trunk の変更を branch に merge します。
svn merge -c X svn://foo/bar/trunk
- branch でいろいろ作業をします(追加された dir1 上でも変更があります)trunk に merge 出来る状態にしてコミットします
- trunk の作業ディレクトリで branch の成果を取り込みます
svn merge svn://foo/bar/branches/work1
- ディレクトリ dir1 が tree conflict と言われて困ります(人間も svn も)
正解は merge を2回に分ける、でした。
svn merge svn://foo/bar/branches/work1/dir1 dir1
svn commit
svn merge svn://foo/bar/branches/work1
svn revert -R dir1
svn commit
もしかするとこれで行けるのかもしれないけど試してません。
svn merge svn://foo/bar/branches/work1
svn revert -R dir1
svn merge svn://foo/bar/branches/work1/dir1 dir1
svn commit
最初に branch を作った時点で dir1 が無かったから同じコピー元であっても別ツリーって事なんでしょうね。
それにしても merge すると変更が無いのに svn:mergeinfo だけ付くファイルがあったり無かったりするのはなんだろう。
スクリプト書いて svn:mergeinfo だけの変更のファイルは revert しちゃって大丈夫かな。
変更の実体のない revision 範囲の mergeinfo が消えても動作は変わらないはずだけど…
svn merge tracking と tree conflict More ログイン