Gitolite推错误

时间:2013-03-26 16:27:11

标签: git gitolite

我的git有问题,当我推动我的更改时,git向我发送了这个错误:

git FATAL: split conf set, gl-conf not present for "name of repository"

我该怎么办?或者我怎么能引起这个问题? 谢谢你的帮助。

麦菲

3 个答案:

答案 0 :(得分:3)

您是如何创建远程存储库的?如果手动创建存储库的 bare 克隆并将其移动到Gitolite的存储库文件夹,则需要手动设置一些事项:

  1. 将所有者更改为Gitolite用户,例如chown -R git:users
  2. 更改文件夹和文件的权限,例如chmod -R 755 myproject.git
  3. 检查gl-conf文件夹中是否有project.git/。如果没有从另一个工作Gitolite项目复制一个。通常,当您使用 gitolite-admin 配置新项目时,它会自动进行设置。这是文件的样子。
  4. # gl-conf
    %one_repo = (
      'myproject' => {
        'meph' => [
          [
            4,
            'RW+',
            'refs/.*'
          ]
        ]
      }
    );
    

答案 1 :(得分:2)

似乎缺少文件gl-conf。您可以自己创建它(请参阅JDD的答案)或更简单地运行以下命令 - gitolite将负责其余的工作:

gitolite setup

如果将裸存储库迁移到gitolite,则可能会导致此问题。 gitolite需要gl-conf文件来存储仅针对特定存储库的“已编译”配置。数据来自gitolite-admin/conf/gitolite.conf(存储库,您将访问配置放入存储库中)。

答案 2 :(得分:1)

该错误消息来自src/lib/Gitolite/Conf/Load.pm

 if ( -f "gl-conf" ) {
    return if not $split_conf{$repo};

    my $cc = "./gl-conf";
    _die "parse '$cc' failed: " . ( $! or $@ ) unless do $cc;

    $last_repo = $repo;
    $repos{$repo} = $one_repo{$repo};
    $configs{$repo} = $one_config{$repo} if $one_config{$repo};
} else {
    _die "split conf set, gl-conf not present for '$repo'" if $split_conf{$repo};
}

因此它预计你的裸仓中有一个本地的gitolite配置,好像它是来自gitolite g2的"big-config"
检查$GL_BIG_CONFIG = 1;中是否还有~/.gitolite.rc,而现在是gitolite g3。