git-svn 克隆检出错误的仓库?

45

我正在尝试使用git-svn切换到git。我有一个名为myrepo的svn仓库,我想克隆其中的一个叫做myproject的项目。问题是通过运行以下命令:

git svn clone path-to-repo/myrepo/myproject --stdlayout --prefix=svn myproject

克隆了整个repo myrepo 而非只有 myproject。我也尝试使用 -T、-t、-b 将项目布局告知 git,但都没有成功。我总是得到以下输出:

Using higher level of URL: path-to-repo/myrepo/myproject => path-to-repo/myrepo

并试图克隆那个路径。我做错了什么吗?可能是svn repo的布局出了问题或者与git不兼容?

4个回答

74
您可以尝试使用--no-minimize-url选项。 根据http://schacon.github.com/git/git-svn.html的说明:

--no-minimize-url

当跟踪多个目录(使用--stdlayout、--branches或--tags选项)时,git svn会尝试连接到Subversion存储库的根目录(或最高允许级别)。这样做可以更好地跟踪历史记录,如果整个项目在存储库内移动,但可能会在限制读取访问的存储库上出现问题。传递--no-minimize-url将允许git svn接受URL而不尝试连接到更高级别的目录。当仅跟踪一个URL/分支时,默认情况下关闭此选项(它没有什么好处)。


我找不到 --minimize-url 选项。我已经尝试了 git 1.5.4.3 和 git 1.6.0.4。你能给我更多的细节吗?谢谢。 - hyperboreean
2
啊...它已经被添加到git v1.6.4中了。 - kartikmohta
1
所有1.6.4以下的版本中,最小化URL选项设置为1,因此我认为较低版本没有可用的内容。 在获取新版本方面是否有任何问题? - kartikmohta
是的,我有许多安装了低于1.6.4版本的Git服务器,要在每个服务器上升级到新版本会很麻烦。 - hyperboreean
我遇到了类似的问题,并使用了 --no-minimize-url 选项。这使得克隆成功,但是大约一半的标签都丢失了。原来禁止克隆上一级意味着它无法看到之前发生的存储库重命名。一旦我删除了 --no-minimize-url 选项,缺失的标签就出现了。 - saberworks
显示剩余2条评论

2

0
请确保您指定了完整路径到myproject,似乎部分路径在克隆操作的fetch部分中无法处理。您可以在Windows上使用该路径中的冒号(例如c:\myproject)(但不能在源存储库路径中使用冒号)。
git svn clone path-to-repo/myrepo/myproject --stdlayout --prefix=svn myproject

0

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