git svnコマンドでfile://でローカルパスを設定する場合にドライブ文字に:を付けてはいけない。

Subversionでローカルファイル(ネットワークドライブの割り付け含む)アクセスする場合、URL指定で以下のように指定していると思います。

> svn co file:///q:/TadahiroIshisaka/svn/svntest

なので、git svnコマンドでも以下のように指定しますよね。

> git svn clone file:///q:/TadahiroIshisaka/svn/svntest

しかし、これは次のようにエラーになります。

$ git svn clone file:///q:/TadahiroIshisaka/svn/svntest --stdlayout svntest
Initialized empty Git repository in C:/Users/jptais1/src/git/svntest/.git/
Can't create session: Unable to connect to a repository at URL 'file:///q:/TadahiroIshisaka/svn/svntest': Unable to open repository 'file:///q:/TadahiroIshisaka/svn/svntest' at /mingw64/share/perl5/site_perl/Git/SVN.pm line 305.

これはWindows版Subversionとmsys/msys2のPATHの解釈に微妙な違いがあるため、git-svnとして実装されているPerlスクリプトでPATH(URL)を正しく解釈ができないためです。

なので、以下のようにドライブに「:」を付けないようにすれば上手くいきます。

$ git svn clone file:///q/TadahiroIshisaka/svn/svntest
        A       test.txt
r1 = 43fad2515fe5a6916f0d08d327d07a1fbc24902d (refs/remotes/git-svn)

ということで、超絶面倒くさいです。

あとPATHというかURLに空白があったりしてもダメですし、多バイト文字も避けた方が良いでしょう。

One thought on “git svnコマンドでfile://でローカルパスを設定する場合にドライブ文字に:を付けてはいけない。”

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください