Gitolite无法访问子目录中存储的存储库

时间:2020-04-22 20:55:48

标签: git gitolite

多年来,在一个深层子目录树中成功组织了大量存储库之后,对于RHEL / Centos 7,在Gitolite 3.6.6和3.6.11之间的某个地方,我失去了访问存储在子目录中的存储库的能力。

尝试通过“拒绝失败”来获取或推送失败,而可以成功访问顶级目录中的存储库。

Gitolite的配置如下

@supergroup = spirald

@foogroup = spirald
@foogroup = johnny

repo gitolite-admin
    RW+     =   @supergroup

repo testing
    RW+     =   @all

repo foo/bar/baz
    RW+     =   @foogroup

repo footest
    RW+     =   @foogroup

Gitolite记录如下:

2020-04-22.11:04:24     27731   ssh     ARGV=spirald       SOC=git-upload-pack 'foo/bar/baz'      FROM=111.222.333.444
2020-04-22.11:04:24     27731   die     R any foo/bar/baz spirald DENIED by fallthru<<newline>>(or you mis-spelled the reponame)

ssh信息显示以下内容

hello spirald, this is git@aserver running gitolite3 3.6.11-1.el7 on git 1.8.3.1

 R W    footest
 R W    gitolite-admin
 R W    testing

在git帐户中,通过gitolite访问-s foo / bar / baz螺旋W any 返回

FATAL: this should not happen! W any foo/bar/baz spirald DENIED by fallthru at /usr/share/gitolite3/commands/access line 101, <DATA> line 1. 

同时:凹凸棒石通道-s的最底螺旋W任何 返回

legend:
    d => skipped deny rule due to ref unknown or 'any',
    r => skipped due to refex not matching,
    p => skipped due to perm (W, +, etc) not matching,
    D => explicitly denied,
    A => explicitly allowed,
    F => fallthru; access denied for normal refs, allowed for VREFs

  A        gitolite.conf:23         RW+     =   @foogroup

refs/.*

gitolite list- *命令正确显示存储库和成员身份

有人了解这个问题或某种不涉及更改大量URL的变通方法吗?

1 个答案:

答案 0 :(得分:1)

解决了!

在我使用的服务器上的git帐户中

gitolite setup --hooks-only

如果从未使用回购协议完成过,似乎是最近发布的gitolite引起了问题。我只是将现有的存储库放到了由gitolite管理的存储库目录中,所以我一开始从未这样做。