我的 git 有问题,当我推送更改时,git 向我发送此错误:
git FATAL: split conf set, gl-conf not present for "name of repository"
我能做些什么?或者我怎么会导致这个问题?谢谢你的帮助。
梅芙
您是如何创建远程存储库的?如果您手动创建存储库的裸克隆并将其移动到 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/.*'
]
]
}
);
文件似乎gl-conf
丢失了。您可以自己创建它(参见 JDD 的回答)或更简单,只需运行以下命令 - gitolite 将负责其余的工作:
gitolite setup
如果将裸存储库迁移到 gitolite,可能会导致问题。gitolite 需要一个gl-conf
文件来存储特定存储库的“编译”配置。数据取自gitolite-admin/conf/gitolite.conf
(存储库,您将访问配置放入存储库)。
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.