カラクリスタ

『輝かしい青春』なんて失かったヒトのブログ

svkでCannot find the path which '' copied fromといわれた時の対処法

概要: svk2.0.0でsvk pushができない。


svk使って自作記法のモジュールを開発していたとき、 変更内容をオリジナルのリポジトリに反映しようと思ってsvk pushしたんだけど、 Cannot find the path which '' copied fromといわれてsvk pushが出来なかった。 で、色々調べた結果、svkのバグらしいんだけど、回避しないと先に進めないので、その回避法。

まず、Cannot find the path which '' copied fromになる条件なんだけど、 これはどうも、ミラーリポジトリをコピーしたローカルリポジトリの下位のディレクトリをチェックアウトして、 svk pushしようとするとなるらしい。

要するに、

# オリジナルのミラー
//mirror/lib
# //mirror/libの作業コピー
//local/lib
# チェックアウトした対象
//local/lib/CPAN/Text-Nyarlax/trunk

というリポジトリの構成で、//local/lib/CPAN/Text-Nyarlax/trunkをチェックアウトして、 チェックアウトしたディレクトリでsvk pushしようとすると上記エラーが出る。

で回避方なんだけど、チェックアウトしたパスの最上位のパス、 つまり//local/lib/CPAN/Text-Nyarlax/trunkだったら//local/libをチェックアウトして、 そこでsvk pushするとちゃんとsvk pushが出来る。結構めどいんだけど。

自分で直せるかなーと思ってsvkのコード見てみたけど、 どこでおかしくなってるかのか見当がつかなかった。 なので何でこうなるのか不明。

ちなみに上記解決法は自分の環境ではそうなったということであって、 他の環境でもそれで解決できるかどうかは分からない。

昨日はこれでだいぶ煮詰まってました。