开发者

Git SVN Is Unable to Fetch from SVN Repository

开发者 https://www.devze.com 2023-02-13 03:02 出处:网络
I\'d like to use SVN and Git together. I have an svn repository, and I\'m trying to fetch to a working directory, but I encounter an error as below.

I'd like to use SVN and Git together. I have an svn repository, and I'm trying to fetch to a working directory, but I encounter an error as below.

svn, version 1.6.6 (r40053)

git version 1.7.3.1.msysgit.0

The svn repository path is file:///d:/tmp/test-svn/repos

These are the steps I did:

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
开发者_JAVA技巧ormat '2'; found format '4' at C:\Program Files\Git/libexec/git-core/git-svn lin
e 1773

So what is the issue? How can I fetch data from svn repository to the git working directory?

Thank you.


I think this is the following issue: http://code.google.com/p/msysgit/issues/detail?id=298

Possible solution is to setup svnserve and use the svn:// protocol instead of file:///

See here for setting up svnserve on Windows: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-serversetup-svnserve.html

UPDATE

svnserve is available as a part of TortoiseSVN if you use Windows OS (I checked with TortoiseSVN version 1.8.6)

Then you just start:

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

and clone the repository with following command:

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


I can propose to clone your repository with SmartGit. It have git-svn functionality implemented in java, which is significantly faster than git-svn and outperforms it. Hope it will work for you.

But if you have an access to your SVN repository server I recommend you to install SubGit into it. In this case you will get a Git repository that is automatically synchronized with SVN repository (and concurrent-safe).

Both approaches has large advantages over git-svn like: automatical tags, ignores, EOLs translation. SubGit also tries to preserve dates as it is possible while committing to SVN.

0

精彩评论

暂无评论...
验证码 换一张
取 消