web-dev-qa-db-ja.com

GitSVNがSVNリポジトリからフェッチできない

SVNとGitを一緒に使いたいです。 svnリポジトリがあり、作業ディレクトリにフェッチしようとしていますが、次のようなエラーが発生します。

svn、バージョン1.6.6(r40053)

gitバージョン1.7.3.1.msysgit.

Svnリポジトリのパスはfile:/// d:/ tmp/test-svn/repos

これらは私がしたステップです:

D:\tmp\test-svn>mkdir my-project

D:\tmp\test-svn>cd my-project

D:\tmp\test-svn\my-project>git svn init file:///d:/tmp/test-svn/repos

Initialized empty Git repository in D:/tmp/test-svn/my-project/.git/

D:\tmp\test-svn\my-project>git svn fetch

Couldn't open a repository: Unable to open an ra_local session to URL: Unable to
 open repository 'file:///d:/tmp/test-svn/repos/my-project/trunk': Expected FS f
ormat '2'; found format '4' at C:\Program Files\Git/libexec/git-core/git-svn lin
e 1773

それで、問題は何ですか?どうすればsvnリポジトリからgit作業ディレクトリにデータをフェッチできますか?

ありがとうございました。

34
Sambath Prum

これは次の問題だと思います: http://code.google.com/p/msysgit/issues/detail?id=298

考えられる解決策は、svnserveをセットアップし、svn://の代わりにfile:///プロトコルを使用することです。

Windowsでのsvnserveの設定については、こちらをご覧ください: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-serversetup-svnserve.html

[〜#〜]更新[〜#〜]

svnserveは、Windows OSを使用している場合、TortoiseSVNの一部として利用できます(TortoiseSVNバージョン1.8.6で確認しました)

次に、開始します。

svnserve -d -R --root c:\path\to\svn\repo

次のコマンドでリポジトリのクローンを作成します。

git svn clone svn://localhost/path/inside/svn/repo
46
tekumara

SmartGit を使用してリポジトリのクローンを作成することを提案できます。 Javaで実装されたgit-svn機能があり、git-svnよりも大幅に高速で、パフォーマンスが優れています。それがあなたのために働くことを願っています。

ただし、SVNリポジトリサーバーにアクセスできる場合は、 SubGit をインストールすることをお勧めします。この場合、SVNリポジトリと自動的に同期される(そして同時安全な)Gitリポジトリを取得します。

どちらのアプローチにも、自動タグ付け、無視、EOL変換など、git-svnに比べて大きな利点があります。 SubGitは、SVNにコミットしている間、可能な限り日付を保持しようとします。

0
Dmitry Pavlenko