Gitolite git clone error

It seems the correct fix to this error is to add

$ENV{GIT_EXEC_PATH} = "/usr/libexec/git-core";

to your .gitolite.rc file.


The OP skipper3k reports an issue with RUNTIME_PREFIX in Git, a bit similar to "git pull broken" question:

I'm not sure whether RUNTIME_PREFIX is defined for you. But while nosing in the Makefile, I did notice that prefix defaults to $(HOME). I suspect that this may be the cause of your problems.

The simple answer is to put this in ~/.bashrc:

export GIT_EXEC_PATH=/opt/local/libexec/git-core

If you want to find out more about what's going on, you'll probably have to recompile git using port -d upgrade -f git-core (or similar) and look closely at the build log to see where prefix is being set.
Incidentally, port cat git-core shows heavy usage of ${prefix}.


Original answer:

First, did you get the most up-to-date gitolite version?
At https://github.com/sitaramc/gitolite/, you need to consider the 'pu' branch.

The installation documentation is then this one.


GitoliteV3 or 'g3' doc:

"Installation" consists of the following options:

  1. Keep the sources anywhere and use the full path to run the gitolite command.
  2. Keep the sources anywhere and symlink just the gitolite program to some directory on your $PATH.
  3. Copy the sources somewhere and use that path to run the gitolite command.

You can run the 'install' command in 3 different ways:

# option 1
gitolite/install

# option 2
gitolite/install -ln
# defaults to $HOME/bin, or use a specific directory:
gitolite/install -ln /usr/local/bin

# option 3
gitolite/install -to /usr/local/gitolite/bin

Old answer for gitolite V2: Second, I prefer the "from-client method" method:

The advantage of this method is that it forces you to solve the ssh pubkey problem before attempting to install.
It works best if you have dedicated userids,

  • one on the server for installing gitolite,
  • and one on the client for administering it.

The disadvantage is that the admin user ends up with two keys

  • one for shell access (that he started with) and
  • one for gitolite access (which the script creates if needed).

So I like to create a ~/.ssh/config file with the two different sets of parameters:

host gitolite
     user git
     hostname server
     identityfile ~/.ssh/git
host gitadmin
     user git
     hostname server
     identityfile ~/.ssh/id_rsa (myaccount public key)

The gitolite-admin is only visible for the first public ssh key:

C:\HOMEWARE\git>ssh gitolite
hello git, the gitolite version here is v1.5.9-25-ga10287a
the gitolite config gives you the following access:
     R   W      gitolite-admin
    @R_ @W_     testing
Connection to server closed.

With my account:

C:\HOMEWARE\git>ssh gitadmin
hello myaccount, the gitolite version here is v1.5.9-25-ga10287a
the gitolite config gives you the following access:
    @R_ @W_     testing
Connection to mccprdgit10 closed.

So:

C:\HOMEWARE\git>git clone gitolite:gitolite-admin
Cloning into gitolite-admin...
remote: Counting objects: 16, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 16 (delta 2), reused 0 (delta 0)
Receiving objects: 100% (16/16), done.
Resolving deltas: 100% (2/2), done.

The problem was with the way git was compiled on mac. I had to manually compile git without the RUNTIME_PREFIX set. Now it works.