通过git SVN克隆单个SVN分支时出现问题

通过git SVN克隆单个SVN分支时出现问题,svn,git,git-svn,Svn,Git,Git Svn,我在我的SVN存储库中尝试了以下命令,通过git仅克隆一个分支 git svn clone http://svn.supose.org/supose/branches/B_0.7.1 但收到以下错误消息: Initialized empty Git repository in /Users/km/workspace-supose/git/B_0.7.1/.git/ W: Ignoring error from SVN, path probably does not exist: (16001

我在我的SVN存储库中尝试了以下命令,通过git仅克隆一个分支

git svn clone  http://svn.supose.org/supose/branches/B_0.7.1
但收到以下错误消息:

Initialized empty Git repository in /Users/km/workspace-supose/git/B_0.7.1/.git/
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no    item: '/supose/!svn/bc/100/branches/B_0.7.1' path not found
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
This may take a while on large repositories
error: git-svn died of signal 10
mac:git km$ 


mac:git km$ git --version
git version 1.7.1
有人知道出了什么问题吗

更新: 我通过环境变量打开了跟踪。试过了,也失败了。更新到git 1.7.2,结果相同

mac:git km$ git svn clone  http://svn.supose.org/supose/branches/B_0.7.1
trace: exec: 'git-svn' 'clone' 'http://svn.supose.org/supose/branches/B_0.7.1'
trace: run_command: 'git-svn' 'clone' 'http://svn.supose.org/supose/branches/B_0.7.1'
trace: built-in: git 'config' '--bool' '--get' 'svn.noauthcache'
trace: built-in: git 'config' '--bool' '--get' 'svn.nometadata'
trace: built-in: git 'config' '--get' 'svn.revision'
trace: built-in: git 'config' '--get' 'svn.rewriteuuid'
trace: built-in: git 'config' '--bool' '--get' 'svn.usesvmprops'
trace: built-in: git 'config' '--bool' '--get' 'svn.nocheckout'
trace: built-in: git 'config' '--get' 'svn.authorsprog'
trace: built-in: git 'config' '--bool' '--get-all' 'svn.branches'
trace: built-in: git 'config' '--bool' '--get' 'svn.usesvnsyncprops'
trace: built-in: git 'config' '--bool' '--get' 'svn.followparent'
trace: built-in: git 'config' '--get' 'svn.prefix'
trace: built-in: git 'config' '--bool' '--get' 'svn.useSvmProps'
trace: built-in: git 'config' '--get' 'svn.authorsfile'
trace: built-in: git 'config' '--get' 'svn.username'
trace: built-in: git 'config' '--bool' '--get' 'svn.stdlayout'
trace: built-in: git 'config' '--get' 'svn.repackflags'
trace: built-in: git 'config' '--bool' '--get' 'svn.localtime'
trace: built-in: git 'config' '--int' '--get' 'svn.repack'
trace: built-in: git 'config' '--get' 'svn.template'
trace: built-in: git 'config' '--get' 'svn.ignorepaths'
trace: built-in: git 'config' '--bool' '--get' 'svn.minimizeurl'
trace: built-in: git 'config' '--get' 'svn.rewriteroot'
trace: built-in: git 'config' '--bool' '--get' 'svn.quiet'
trace: built-in: git 'config' '--int' '--get' 'svn.logwindowsize'
trace: built-in: git 'config' '--get' 'svn.shared'
trace: built-in: git 'config' '--get' 'svn.configdir'
trace: built-in: git 'config' '--bool' '--get' 'svn.addauthorfrom'
trace: built-in: git 'config' '--bool' '--get' 'svn.noMetadata'
trace: built-in: git 'config' '--bool' '--get' 'svn.useSvnsyncProps'
trace: built-in: git 'config' '--bool' '--get-all' 'svn.tags'
trace: built-in: git 'config' '--get' 'svn.trunk'
trace: built-in: git 'config' '--bool' '--get' 'svn.uselogauthor'
trace: built-in: git 'init'
Initialized empty Git repository in /Users/km/workspace-supose/git/B_0.7.1/.git/
trace: built-in: git 'config' '--bool' 'svn.useSvmProps'
trace: built-in: git 'config' '-l'
trace: built-in: git 'config' '--get' 'svn-remote.svn.url'
trace: built-in: git 'config' '-l'
trace: built-in: git 'config' 'svn-remote.svn.url' 'http://svn.supose.org/supose/branches/B_0.7.1'
trace: built-in: git 'config' '--add' 'svn-remote.svn.fetch' ':refs/remotes/git-svn'
trace: built-in: git 'config' '--bool' 'svn.useSvmProps'
trace: built-in: git 'config' '-l'
trace: built-in: git 'config' '--get' 'svn-remote.svn.fetch' ':refs/remotes/git-svn$'
trace: built-in: git 'config' '--get' 'svn-remote.svn.url'
trace: built-in: git 'config' '--get' 'svn-remote.svn.uuid'
trace: built-in: git 'config' 'svn-remote.svn.reposRoot' 'http://svn.supose.org/supose'
trace: built-in: git 'config' '--get' 'svn-remote.svn.usesvmprops'
trace: built-in: git 'config' '--add' 'svn-remote.svn.uuid' 'd38d36a4-06d2-11df-b1fb-6b773c2c1a53'
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: '/supose/!svn/bc/100/branches/B_0.7.1' path not found
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
This may take a while on large repositories
trace: built-in: git 'config' '--get' 'svn-remote.svn.nometadata'
trace: built-in: git 'config' '--get' 'svn-remote.svn.followparent'
trace: built-in: git 'config' '--bool' '--get' 'svn.brokenSymlinkWorkaround'
trace: built-in: git 'config' '--get' 'svn-remote.svn.ignore-paths'
trace: built-in: git 'update-index' '-z' '--index-info'
trace: built-in: git 'config' 'svn-remote.svn.reposRoot' 'http://svn.supose.org/supose'
error: git-svn died of signal 10

一个好的开始是将GIT_TRACE环境变量设置为1。我是git用户,不是SVN用户,所以我不确定您的确切问题是什么,但这会让您更加详细

更新:我已经阅读了更多文档,在我看来,您可能无法仅克隆单个分支本身;您可能至少只能克隆感兴趣的主干和分支。从文档上看,与主干相比,SVN中的分支似乎是二等公民,而git中的分支则更加模块化。老实说,最简单的方法可能是复制整个回购协议

但如果您真的不想这样,您可能可以一起破解一个解决方案:

git svn init --stdlayout http://svn.supose.org/supose
然后在repo中编辑.git/config,如下所示:

[svn-remote "supose"]
        url = http://svn.supose.org/supose
        fetch = trunk:refs/remotes/trunk
        branches = branches/B_0.7.1:refs/remotes/branches/*
然后
git svn fetch

这是一种冒险,但可能会奏效


更新2:好的,到此为止(见下面的评论)。丹的建议似乎是最好的;但是如果您想从脚本中挤出更多的信息,那么运行
git--exec path
来查找git命令的可执行文件。然后将
-d
选项添加到git svn的第一行(即
#!/usr/bin/perl
变成
#!/usr/bin/perl-d
)。这可能有助于了解故障发生的确切位置。当你用完它的时候记得把它拿走

git svn实际上是一个Perl脚本。
git
可执行文件本身实际上只是一个启动其他程序的程序。
“死于信号”
消息来自
git
启动器。信号10通常是SIGBUS。这可能意味着很多事情:

  • Perl有一个问题
  • Subversion Perl绑定存在问题
  • Subversion客户端存在问题
这也可能意味着您遇到的
git svn
中有一个bug,但这似乎不太可能(Perl脚本中的bug永远不会导致Perl-to-bus错误)


我将检查以上所有版本,并验证它们是否彼此兼容。

尝试克隆单个Subversion分支(或任何任意子目录)没有错。它应该很好用。谢谢;我不确定。让我远离一场白鹅追逐的荣誉:)我很困惑为什么在git配置过程中痕迹会消失。也许我们应该看看它在perl中走了多远。在更新GIT和SVN绑定之后,它现在可以工作了。谢谢