多年来,在一个深层子目录树中成功组织了大量存储库之后,对于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的变通方法吗?
答案 0 :(得分:1)
解决了!
在我使用的服务器上的git帐户中
gitolite setup --hooks-only
如果从未使用回购协议完成过,似乎是最近发布的gitolite引起了问题。我只是将现有的存储库放到了由gitolite管理的存储库目录中,所以我一开始从未这样做。