我们最近将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.
有人知道可能出现什么问题吗?
答案 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-archive
和upload-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