I am trying to push content from a workstation to a server. But it gives me an error. Please look at the following for command and error:
Administrator@ganesh ~/testing
$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 241 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: ENV GL_RC not set
remote: BEGIN failed--compilation aborted at hooks/update line 20.
remote: error: hook declined to update refs/heads/master
To git@ganesh:repositories/testing
! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'git@ganesh:repositories/testing'
It seems that I need to set the environment variable GL_RC
. Is this so?
Can anyone here tell me what the problem might be and how I can solve it? I am using gitolite on Windows Server 2003.
Just got the same error.
Correct answer is you need to use
git clone gitolite:repo_name
command to clone the repository andgit push gitolite:repo_name
to push changes, instead ofgit clone git@yourservername:repo_name
.As illustrated in the doc ssh troubleshooting, this is probably caused by an incorrect path during cloning.
The documentation (some parts below were only valid for Gitolite V2) mentions:
(ie. "you are able to clone repositories but are unable to push changes back (the error complains about the
GL_RC
environment variable not being set, and the hooks/update failing in some way)The message that appears on a successful run of the "easy-install" program clearly includes the following warning:
So in your case, you must have cloned your repo with:
instead of:
Try to:
You should see gitolite-shell instead of bash:
If not it means you bypass gitolite-shell and use bash instead. The reason might be, that by running gl-setup your_pub_key.pub you added your key to the bottom of /home/git/.ssh/authorized_keys file.
Therefore, this key is never reached, because there are other keys at the top. So, you simply need to open /home/git/.ssh/authorired_keys and move the recently added gitolite key to the top of the file.
After moving this record to the top of the file, you should be able to use: git clone git@ganesh:testing.git insead of git clone git@ganesh:repositories/testing.git The second one clones the repo but leads to the error, because you run "git push" via bash instead of gitolite-shell
The ssh troubleshooting document at http://sitaramc.github.com/gitolite/doc/ssh-troubleshooting.html (as well as in the gitolite source repo) has been totally re-worked now. I'm hoping that it flows much better and explains things easier, including this specific error.
I'll also add that you should ideally read that document in full, at least the first time.
Sitaram