パスワードを忘れた? アカウント作成
168042 journal

Ab.の日記: svn merge tracking と tree conflict

日記 by Ab.
  1. trunk を作業ブランチ branches/work1 にコピーします

    svn copy svn://foo/bar/trunk svn://foo/bar/branches/work1

  2. trunk でディレクトリ dir1 を追加してコミットします。rev X とします
  3. branch の作業ディレクトリ上で trunk の変更を branch に merge します。

    svn merge -c X svn://foo/bar/trunk

  4. branch でいろいろ作業をします(追加された dir1 上でも変更があります)trunk に merge 出来る状態にしてコミットします
  5. trunk の作業ディレクトリで branch の成果を取り込みます

    svn merge svn://foo/bar/branches/work1

  6. ディレクトリ 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 が消えても動作は変わらないはずだけど…

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

読み込み中...