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.

  • git submodules , gitslave, git subtree or a simpler solution
  • No submodule mapping found in .gitmodules for path
  • How do I keep GIT repositories inside Dropbox?
  • Xcode 4 git integration
  • Is it possible to have all “git diff” commands use the “Python diff”, in all git projects?
  • Git: How to diff two commits and apply that diff to a third one
  • Meph

  • Can I use `git checkout --patch` non-interactively?
  • Git - How to revert origin remote remove
  • Config/initializers not pushing to repo
  • Git: merging branches with very different structures
  • How to revert some changes to files in my working copy before doing commit
  • Two repositories (1 svn and 1 git) on same folder?
  • 3 Solutions collect form web for “Gitolite push error”

    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/.*'
          ]
        ]
      }
    );
    

    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).

    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.

    Git Baby is a git and github fan, let's start git clone.