Git SVN无法从SVN仓库获取

34
我想同时使用SVN和Git。我有一个svn仓库,并且正在尝试将其提取到工作目录,但是我遇到了以下错误。
svn,版本1.6.6(r40053)
git版本1.7.3.1.msysgit.0
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工作目录?谢谢。

https://dev59.com/y0fRa4cB1Zd3GeqP6BW1#708492 - jfs
@J.F.Sebastian:这不是这种情况:format="4"已经是FSFS了。 - quetzalcoatl
2个回答

47

我认为这是以下问题: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作为TortoiseSVN的一部分可供使用(如果您使用Windows操作系统)(我使用TortoiseSVN版本1.8.6进行了检查)

然后您只需启动:

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

使用以下命令克隆存储库:

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

10
这是最佳解决方案:TortoiseSVN已经附带必要的命令行工具(不过默认未安装,需要在安装程序中选择)。然后您只需启动svnserve -d -R --root d:\svnroot并使用git clone svn://localhost/myproject克隆存储库即可。 - Maddin
@Maddin,我已经更新了答案。感谢你的有用提示! - sergtk

1

我建议使用SmartGit克隆您的存储库。它在Java中实现了git-svn功能,比git-svn更快且性能更好。希望这对您有帮助。

但是,如果您可以访问您的SVN存储库服务器,我建议您在其中安装SubGit。这样,您将获得一个与SVN存储库自动同步(并发安全)的Git存储库。

这两种方法都比git-svn具有很大的优势,例如:自动标签、忽略、EOL转换。SubGit也尝试在提交到SVN时尽可能保留日期。


感谢SmartGit,它完美地运行。当克隆一个SVN仓库时,MsysGit会出现AV错误,而SmartGit却可以正常工作。此外,它比git-svn更快地克隆整个仓库。 - Fr0sT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接