GitでSVNに移行しようとした時のエラーの話。
先日、とあるSVNのリポジトリーをGitへ移行しようとした際、
cloneしても、どうしても空のGitリポジトリーができてしまって、うーん、ってなりました。
通常、SVNからGitへ移行する際のやり方はこんな感じです。
今回、登場したエラーは、
Ignoring error from SVN, path probably does not exist
まんまですね。
ないよ、って怒られてます。
実は、この原因は簡単で、SVNでtrunkやbranch、tagといったバージョン管理をやっていないことが問題なのです。
根本はtrunkがないことですね。
でもね、ほら、そこまで複雑に管理しないものって、つい複数人で共有できて、単一でバージョン管理できれば良いやってなっちゃう時あるものね。仕方ないよね(笑。
さて、では何故trunkがないと怒られるのか…
というのも、GitでSVNからcloneしようとする時、デフォルトでtrunkからデータを取得しようとするからです。
.git/configの中を見て頂ければ分かるのですが、fetch先に自動でtrunkが指定されているはずです。
ですので、このcloneしてくる先をオプションで変更してあげます!
通常は、
git svn clone -s –prefix=origin/ SVNのリポジトリーURL
ですが、trunkオプションで取得するtrunk先のパスを指定してあげます。
git svn clone -s –prefix=svn/ –trunk=/ SVNのリポジトリーURL
上記の例ではルートを指定していますが、自分でSVNに管理しているパスを指定してあげればOKです。
これで問題なくローカルにSVNからcloneしたデータが、gitリポジトリーとして作成されるはずです。
ということで、お疲れ様でした!
![]() わかばちゃんと学ぶ Git使い方入門【電子書籍】[ 湊川あい ]
|