我的git有问题,当我推动我的更改时,git向我发送了这个错误:
git FATAL: split conf set, gl-conf not present for "name of repository"
我该怎么办?或者我怎么能引起这个问题? 谢谢你的帮助。
麦菲
答案 0 :(得分:3)
您是如何创建远程存储库的?如果手动创建存储库的 bare 克隆并将其移动到Gitolite的存储库文件夹,则需要手动设置一些事项:
chown -R git:users
chmod -R 755 myproject.git
gl-conf
文件夹中是否有project.git/
。如果没有从另一个工作Gitolite项目复制一个。通常,当您使用 gitolite-admin 配置新项目时,它会自动进行设置。这是文件的样子。# 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。