XCode付属のsvkにはバグがある.
svk 2.0.1.もしかしたら環境依存無く再現するのかもしれないけれど,他環境では試していない.
Tiger以降のOSX環境で,下記の問題を手っ取り早く解決する方法は,サードパーティがビルドした2.0.2にアップグレードすることっぽい*1.
副作用が出るのかもしれないけれど,今のところ,私の手元ではハッピーに動いている.
もっとも,2.0.2も結構深刻なバグがあるらしいのではあるけれども….
環境
$ svk mirror --list //sourceforge/pizza-ipa-oss https://monamour@svn.sourceforge.jp/svnroot/pizza-ipa-oss //mirror/pizza3-nxt https://somewhere/trunk
なる2つのミラーがあって,それぞれ //mirror/pizza3-nxt → //local/pizza3-nxt,//mirror/pizza-ipa-oss → //local/pizza-ipa-oss にローカルリポジトリがある.
再現状況.
ここで,pizza-ipa-oss とpizza3-nxt の間でコピーを行う.
commitまではOK.push ができない.デバッグ出力はこんな感じ.
Auto-merging (8517, 8768) /local/pizza-ipa-oss to /sourceforge/pizza-ipa-oss (base /local/pizza-ipa-oss:8517). ===> Auto-merging (8517, 8525) /local/pizza-ipa-oss to /sourceforge/pizza-ipa-oss (base /local/pizza-ipa-oss:8517). Merging back to mirror source https://monamour@svn.sourceforge.jp/svnroot/pizza-ipa-oss. ==> got 8517 as copyboundry, add 8517 as boundry as well set_target_revision: SVN::Delta::Editor=HASH(0x2cb80cc),8525 open_root: SVN::Delta::Editor=HASH(0x2cb80cc),67 ===> /local/pizza-ipa-oss/3.2 => ===> /local/pizza-ipa-oss/3.2/core => ===> /local/pizza-ipa-oss/3.2/core/trunk => ===> /local/pizza-ipa-oss/3.2/core/trunk/plugins => ===> /local/pizza-ipa-oss/3.2/core/trunk/plugins/ch.ntb.usb => /local/pizza3-nxt/trunk/ch.ntb.usb to 8525, from 7270, try 8517 ==> to resolve /local/pizza3-nxt/trunk/ch.ntb.usb 7270 open_directory: SVN::Delta::Editor=HASH(0x2cb80cc),3.2,_p_void=SCALAR(0xc81064),67,_p_apr_pool_t=SCALAR(0xc80d88) open_directory: SVN::Delta::Editor=HASH(0x2cb80cc),3.2/core,_p_void=SCALAR(0xc851d8),67,_p_apr_pool_t=SCALAR(0xc80e00) open_directory: SVN::Delta::Editor=HASH(0x2cb80cc),3.2/core/trunk,_p_void=SCALAR(0xc8519c),67,_p_apr_pool_t=SCALAR(0xc80df4) open_directory: SVN::Delta::Editor=HASH(0x2cb80cc),3.2/core/trunk/plugins,_p_void=SCALAR(0xc85178),67,_p_apr_pool_t=SCALAR(0xc8122c) add_directory: SVN::Delta::Editor=HASH(0x2cb80cc),3.2/core/trunk/plugins/ch.ntb.usb,_p_void=SCALAR(0xc85160),/local/pizza3-nxt/trunk/ch.ntb.usb,,_p_apr_pool_t=SCALAR(0xc812a4) RA layer request failed: PROPFIND request failed on '/local/pizza3-nxt/trunk/ch.ntb.usb': PROPFIND of '/local/pizza3-nxt/trunk/ch.ntb.usb': 405 Method Not Allowed (https://svn.sourceforge.jp) Please sync mirrored path /sourceforge/pizza-ipa-oss first. abort_edit: SVN::Delta::Editor=HASH(0x2cb80cc) DESTROY: SVN::Delta::Editor=HASH(0x2cb80cc)
後半のadd_directoryがおかしいっぽい.
svk2.0.2で解決
2.0.2のpkgで上書きした環境では,こんな感じ.
Auto-merging (8517, 8768) /local/pizza-ipa-oss to /sourceforge/pizza-ipa-oss (base /local/pizza-ipa-oss:8517). ===> Auto-merging (8517, 8525) /local/pizza-ipa-oss to /sourceforge/pizza-ipa-oss (base /local/pizza-ipa-oss:8517). Merging back to mirror source https://monamour@svn.sourceforge.jp/svnroot/pizza-ipa-oss. ==> got 8517 as copyboundry, add 8517 as boundry as well set_target_revision: SVN::Delta::Editor=HASH(0x2e77df0),8525 open_root: SVN::Delta::Editor=HASH(0x2e77df0),67 ===> /local/pizza-ipa-oss/3.2 => ===> /local/pizza-ipa-oss/3.2/core => ===> /local/pizza-ipa-oss/3.2/core/trunk => ===> /local/pizza-ipa-oss/3.2/core/trunk/plugins => ===> /local/pizza-ipa-oss/3.2/core/trunk/plugins/ch.ntb.usb => /local/pizza3-nxt/trunk/ch.ntb.usb to 8525, from 7270, try 8517 open_directory: SVN::Delta::Editor=HASH(0x2e77df0),3.2,_p_void=SCALAR(0xcbee9c),67,_p_apr_pool_t=SCALAR(0xcbebc0) open_directory: SVN::Delta::Editor=HASH(0x2e77df0),3.2/core,_p_void=SCALAR(0xcc1ea8),67,_p_apr_pool_t=SCALAR(0xcbec38) open_directory: SVN::Delta::Editor=HASH(0x2e77df0),3.2/core/trunk,_p_void=SCALAR(0xcc1e6c),67,_p_apr_pool_t=SCALAR(0xcbec2c) open_directory: SVN::Delta::Editor=HASH(0x2e77df0),3.2/core/trunk/plugins,_p_void=SCALAR(0xcc1e48),67,_p_apr_pool_t=SCALAR(0xcbf064) add_directory: SVN::Delta::Editor=HASH(0x2e77df0),3.2/core/trunk/plugins/ch.ntb.usb,_p_void=SCALAR(0xcc1e30),,-1,_p_apr_pool_t=SCALAR(0xcbf0dc) A 3.2/core/trunk/plugins/ch.ntb.usb
きちんとディレクトリパスを変換してくれている.