我是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可能会出现另一个问题。
答案 0 :(得分:1)
正如man page
所述由
git send-pack
调用,并使用从远程端提供的信息更新存储库。此命令通常不会由最终用户直接调用 协议的UI位于git send-pack端,程序对用于将更新推送到远程存储库
所以不要花太多时间测试那个命令。检查您是否可以克隆/推/拉您的回购。
答案 1 :(得分:0)
您的研究使您走向了错误的方向。问题是openSUSE如何构建和安装Git,以及它如何链接可执行文件 - 只需遵循以下链:
由于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
)。