Meph-
Meph-

Reputation: 677

Gitolite push error

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

Answers (3)

Jan
Jan

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

JJD
JJD

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:

  1. Change the owner to the Gitolite user, e.g. chown -R git:users
  2. Change the permissions for folders and files, e.g. chmod -R 755 myproject.git
  3. Check if there is 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

VonC
VonC

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

Related Questions