8

我的 git 有问题,当我推送更改时,git 向我发送此错误:

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

我能做些什么?或者我怎么会导致这个问题?谢谢你的帮助。

梅芙

4

3 回答 3

3

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

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

文件似乎gl-conf丢失了。您可以自己创建它(参见 JDD 的回答)或更简单,只需运行以下命令 - gitolite 将负责其余的工作:

gitolite setup

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

于 2013-09-01T22:04:11.123 回答
1

That error message comes from 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};
}

So it it expected a local gitolite config in your bare repo, as if it were a "big-config" from gitolite g2.
Check if you still have a $GL_BIG_CONFIG = 1; in the ~/.gitolite.rc, while being now in gitolite g3.

于 2013-03-26T18:49:01.233 回答