Gitolite,如何包含具有相对路径的 .conf 文件?

FMa*_*008 5 configuration gitolite

我正在运行 Gitolite 服务器,我想每个存储库有 1 个配置文件。

现在我有这个 gitolite.conf 文件:

@php_dev = userA userB
@int_dev = userC
@lead = userD
@admin = @php_dev

repo    gitolite-admin
        RW+     =   @admin

repo    testing
        RW+     =   @all

include "repositories/*.conf"
Run Code Online (Sandbox Code Playgroud)

然后我有 gitolite-admin/conf/repositories/cms/admin/repoA.conf 文件:

repo    cms/admin/repoA
        RW+     =   @php_dev
        RW      =   @int_dev
        R       =   @lead
Run Code Online (Sandbox Code Playgroud)

当我提交时,我只有以下警告:

remote: the following users have no pubkeys:
remote: userC
Run Code Online (Sandbox Code Playgroud)

确实如此,userC 还没有公钥。(我只是提一下,以防万一)

然后我查看服务器,在 /home/git/repositories/ 文件夹中:

git@FX55TMP:~/repositories$ ls -la
total 16
drwx------ 4 git git 4096 2011-04-03 22:16 .
drwxr-xr-x 6 git git 4096 2011-04-03 22:16 ..
drwx------ 8 git git 4096 2011-04-03 23:21 gitolite-admin.git
drwx------ 7 git git 4096 2011-04-03 23:21 testing.git
Run Code Online (Sandbox Code Playgroud)

他们没有自动创建的 cms/admin/ 文件夹——如文档中所述——,所以让我认为我的配置文件没有加载。

我做错了什么吗?

小智 1

您包含“repositories/*.conf”,但您的文件位于repositories/cms/admin/repoA.conf 中。星号通配符(至少在 gitolite 中)不会匹配子目录组件。他们在http://sitaramc.github.com/gitolite/doc/gitolite.conf.html中将通配符称为 glob ,并且通常 shell glob 仅在它们使用的目录内匹配。

由于它找不到任何存储库/*.conf(因此永远找不到您的repoA.conf),因此它不会创建这些存储库。