从svn存储库克隆的Git无法识别远程

时间:2012-05-07 13:49:32

标签: git git-svn

今天我将我们的svn存储库克隆到git中。我有一些未提交的工作,所以我svn commit他们然后去把他们拉进git仓库。

问题是,git似乎在某种程度上混淆了svn存储库。

首先,git remote没有显示任何内容!但是,如果我写git pull <tab>,它会自动完成svn-remote.svn。尝试结果

fatal: 'svn-remote.svn' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

我去查看git自己的文件。这是配置文件:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[svn-remote "svn"]
        url = svn+ssh://myname@repository_address
        fetch = libskin/dev:refs/remotes/trunk
        branches = libskin/branch/*:refs/remotes/*

所以远程实际上是(虽然奇怪的是分支不是)。所以我开始尝试git pull svngit pull trunk以及其他事情,但他们都失败了同样的信息。

我甚至尝试在配置文件中手动添加分支:

[branch "master"]
        remote = svn
        merge = refs/heads/master

但问题仍然存在。

如何解决此问题?

2 个答案:

答案 0 :(得分:6)

要同时使用Git和Subversion,您使用的命令是git-svn

git svn fetch
git svn rebase

你无法使用普通的git命令获得新的svn。您可以阅读更多tutorial here

答案 1 :(得分:0)

要同时使用Git和Subversion,只需将SubGit安装到您的存储库中。 它使SVN和Git存储库在服务器上自动同步。因此,您可以使用任何SVN或Git客户端来使用存储库。与git-svn相比,它更好地保留SVN概念,如忽略,EOL,标签等(将它们转换为.gitignore,.gitattributes,Git标签等)。

如果您需要仅限客户的解决方案,我建议您使用SmartGit。它也比git-svn更好地保留了这些SVN概念。