从2.9升级到2.13.4后,Gerrit的内部shell无法找到git-receive-pack

时间:2017-01-02 17:05:37

标签: git ssh gerrit

我们最近将Gerrit服务器从2.9升级到2.13.4。除了通过SSH访问存储库之外,我们完成了所有工作,它使用Gerrit的内部SSH服务器,该服务器使用jgit在Java中实现。 Gerrit的内部shell无法找到git-receive-pack。所有其他正常的Gerrit SSH命令似乎都在工作,对所有存储库的HTTPS访问工作正常。

特别是,这是我对git --help所期望的:

$ ssh -p 29418 me@robotics.our-machine.net git --help
git [COMMAND] [ARG ...] [--] [--help (-h)]

 --          : end of options
 --help (-h) : display this help text

Available commands of git are:

   receive-pack
   upload-pack

See 'git COMMAND --help' for more information.

这就是它的样子:

$ ssh -p 29418 me@robotics.our-machine.net git --help
git [COMMAND] [ARG ...] [--] [--help (-h)]

 --          : end of options
 --help (-h) : display this help text

Available commands of git are:


See 'git COMMAND --help' for more information.

当我尝试从现有的存储库中获取时会发生这种情况,该存储库曾经与2.9版一起使用:

$ git fetch gerrit
fatal: Gerrit Code Review: git-upload-pack: not found
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

有人知道可能出现什么问题吗?

1 个答案:

答案 0 :(得分:0)

我们的一位团队成员发现我们需要将以下行添加到[download]文件的gerrit/review_site/etc/gerrit.config部分:

   command = checkout
   command = cherry_pick
   command = pull
   scheme = ssh

然后重启gerrit。万一它可以帮助某人,这里是[download]部分中的所有内容:

[download]
        command = checkout
        command = cherry_pick
        command = pull
        scheme = http
        scheme = ssh
        archive = tbz2
        archive = tgz

git --help输出现在显示upload-archiveupload-pack命令可用。我怀疑,如果我们安装了新版本的gerrit,而不是通过升级,我们已经为我们设置了这些配置选项。

# ssh -p 29418 michael@robotics.our-machine.net git --help
git [COMMAND] [ARG ...] [--] [--help (-h)]

 --          : end of options
 --help (-h) : display this help text

Available commands of git are:

   receive-pack     
   upload-archive   
   upload-pack