git svnでリポジトリのインポートができない
git svn でsvnのリポジトリをローカルgitにインポートしようとしたところ、Git.pmのエラーが出て失敗しました。
$ git svn clone https://test.com/svn/svn_repos Initialized empty Git repository in /Volumes/DATA/work/git/svn_repos/.git/ 'tempfile' can't be called as a method at /usr/local/Cellar/git/1.8.2.1/lib/perl5/site_perl/Git.pm line 1115
各バージョンは下の通りです。
perl-5.16.3でやっても同じでした。
git-1.8.2.1 svn-1.6.17 perl-5.14.4
探した限りパッチが見当たらなかったので直してみましょう。
僕の環境ではこれで動きます。
*** /usr/local/Cellar/git/1.8.2.1/lib/perl5/site_perl/Git.pm.20130424 2013-04-08 07:52:04.000000000 +0900 --- /usr/local/Cellar/git/1.8.2.1/lib/perl5/site_perl/Git.pm 2013-04-24 06:15:12.000000000 +0900 *************** *** 1111,1117 **** $tmpdir = $self->repo_path(); } ! ($$temp_fd, $fname) = File::Temp->tempfile( 'Git_XXXXXX', UNLINK => 1, DIR => $tmpdir, ) or throw Error::Simple("couldn't open new temp file"); --- 1111,1117 ---- $tmpdir = $self->repo_path(); } ! ($$temp_fd, $fname) = File::Temp::tempfile( 'Git_XXXXXX', UNLINK => 1, DIR => $tmpdir, ) or throw Error::Simple("couldn't open new temp file");
似たようなポストがすでにあるのでいずれパッケージが出るとは思いますが、差し当たりということで。
http://lists-archives.com/git/791282-git-pm-with-recent-file-temp-fail.html
git svnってパッケージングの時にテストもされない程、もはや誰も使ってないんですかね。