Reputation: 677
I have problem with my git, when I push my changes, git sends me this error:
git FATAL: split conf set, gl-conf not present for "name of repository"
What Can I do? Or how can I caused this problem? Thanks for your help.
Meph
Upvotes: 8
Views: 5426
Reputation: 1221
It seems that the file gl-conf
is missing. You can create it on your own (see answer by JDD) or more simple just run the following command – gitolite will take care of the rest:
gitolite setup
The problem can be caused if you migrate a bare repository to gitolite. A gl-conf
file is needed by gitolite to store the “compiled” configuration only for the specific repository. The data is taken from gitolite-admin/conf/gitolite.conf
(the repository, where you put the access configuration to the repositories in).
Upvotes: 2
Reputation: 51844
How did you create the remote repository? If you manually create a bare clone of your repository and moved it to the repository folder of Gitolite there are a couple of things which need to be setup manually:
chown -R git:users
chmod -R 755 myproject.git
gl-conf
in the project.git/
folder. If not copy one from another working Gitolite project. Normally it gets setup automatically when you use gitolite-admin to configure a new project. Here is what the file looks like.# gl-conf
%one_repo = (
'myproject' => {
'meph' => [
[
4,
'RW+',
'refs/.*'
]
]
}
);
Upvotes: 3
Reputation: 1324757
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.
Upvotes: 1