git receive-pack在0000停止

时间:2012-08-29 20:32:00

标签: git trac opensuse

我是git的新手,目前正在尝试使用gitolite和trac设置环境。

我设法使用http://john.albin.net/git/git-svn-migrate中的脚本迁移旧的svn存储库。

现在我坚持使用trac / git-integration,因为git-receive-pack命令没有按预期运行。

执行以下命令时,它在打印0000后挂起,我按CTRL + C返回。

$ git-receive-pack .
0072c0b863c86da4bb75caa8cb5b6cd46604096b84e9 refs/heads/master report-status delete-refs side-band-64k ofs-delta
0046c0b863c86da4bb75caa8cb5b6cd46604096b84e9 refs/remotes/origin/HEAD
0048c0b863c86da4bb75caa8cb5b6cd46604096b84e9 refs/remotes/origin/master
0000

我尝试在新的迁移存储库,gitolite管理存储库和我的Windows客户端上的本地克隆上使用git on cygwin执行命令。在所有情况下,我都坚持上述行为。

receive-pack返回一些可能正确的行,然后是0000并挂起。

有谁知道这是怎么回事?

关于git-receive-pack的所有评论都集中在证书或路径错误上 - 它们都完全有效。但在我的情况下,它返回几行并停止???

为什么我这样问?

我的trac安装返回以下错误:

Trac[git_fs] ERROR: GitError: Could not retrieve GIT version (tried to execute/parse '/usr/bin/git-receive-pack --version' but got ValueError('need more than 0 values to unpack',))

克隆,拉动和推动似乎有效,但是我在svn中的标签名称中出现了另一个错误,它在svn-to-git-migration之后引起了gitolite的问题。所以我认为git可能会出现另一个问题。

2 个答案:

答案 0 :(得分:1)

正如man page

所述
  

git send-pack调用,并使用从远程端提供的信息更新存储库。

     

此命令通常不会由最终用户直接调用   协议的UI位于git send-pack端,程序对用于将更新推送到远程存储库

所以不要花太多时间测试那个命令。检查您是否可以克隆/推/拉您的回购。

答案 1 :(得分:0)

您的研究使您走向了错误的方向。问题是openSUSE如何构建和安装Git,以及它如何链接可执行文件 - 只需遵循以下链:

  1. / usr / bin / git - > ../ LIB / GIT中/ GIT-添加
  2. / usr / lib / git / git-add - > GIT中
  3. / usr / lib / git / git - > ../../斌/ GIT-接收包
  4. 由于Trac最初使[git] git_bin成为PathOption,Trac实际上会解析包含链接的路径并实际执行/usr/bin/git-receive-pack --version。问题当然是git-receive-pack不支持--version参数,因此失败。

    最近的Trac版本已更改,请参阅http://trac.edgewall.org/ticket/10997

    为较旧的Trac和插件版本修复它的补丁非常简单(PathOption - > Option)。