【问题标题】:Problem cloning a single SVN Branch via git svn通过 git svn 克隆单个 SVN 分支的问题
【发布时间】:2010-08-20 13:53:19
【问题描述】:

我在我的 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 和 SVN 绑定后,它现在可以工作了。谢谢。

标签: svn git git-svn


【解决方案1】:

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

  • Perl 有问题
  • Subversion Perl 绑定有问题
  • Subversion 客户端有问题

这也可能意味着您遇到了git-svn 中的错误,但这似乎非常不太可能(Perl 脚本中的错误应该从不导致 Perl到总线错误)。

我会检查以上所有版本的版本并验证它们是否相互兼容。

【讨论】:

    【解决方案2】:

    一个好的起点是将 GIT_TRACE 环境变量设置为 1。我是 git 用户,而不是 SVN 用户,所以我不确定你的确切问题是什么,但它会给你更多冗长。

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

    但如果您真的不希望这样,您也许可以一起破解解决方案:

    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 命令可执行文件。然后在 git-svn 的第一行添加-d 选项(即#!/usr/bin/perl 变为#!/usr/bin/perl -d)。这可能会阐明故障发生的确切位置。请记住在完成后将其删除!

    【讨论】:

    • 尝试克隆单个 Subversion 分支(或任何任意子目录,就此而言)没有任何问题。它应该工作得很好。
    • 谢谢;我不确定。感谢你让我远离疯狂的追逐:) 我很困惑为什么在 git config 期间跟踪应该死了。也许我们应该看看它在 perl 中的发展程度。
    猜你喜欢
    • 1970-01-01
    • 2011-06-21
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 2011-05-17
    • 2011-04-14
    相关资源
    最近更新 更多