Redmine + Gitolite – Issue with repository permissions and more
I have a Redmine installation on the same server as my gitolite repositories.
In order to link my repository to my Redmine instance, I locally cloned the repo with the following command:
git clone --bare --local /home/git/repositories/my-repo.git
Just as I successfully clone the repo on the server, I can navigate through the repo on Redmine, as expected.
The thing is, as soon as I do that, I can’t push anything more to the remote repo on my local machine.
When I try
I get the following errors:
Counting objects: 15, done. Delta compression using up to 4 threads. Compressing objects: 100% (7/7), done. Writing objects: 100% (8/8), 695 bytes, done. Total 8 (delta 6), reused 0 (delta 0) fatal: loose object 455f30c5243ec5b5cc698b1e51bdfb23ee6c1b22 (stored in ./objects/45/5f30c5243ec5b5cc698b1e51bdfb23ee6c1b22) is corrupt error: unpack failed: unpack-objects abnormal exit To email@example.com:my-repo.git ! [remote rejected] master -> master (n/a (unpacker error)) error: failed to push some refs to 'firstname.lastname@example.org:my-repo.git'
Any ideas on that?
The gitolite logs show the following:
2012-10-22.10:59:59 13121 ssh ARGV=drgomesp SOC=git-receive-pack 'my-repo.git' FROM=126.96.36.199 2012-10-22.11:00:00 13121 access(my-repo, drgomesp, W, 'any'),-> refs/.* 2012-10-22.11:00:00 13121 trigger,Writable,access_1,ACCESS_1,my-repo,drgomesp,W,any,refs/.* 2012-10-22.11:00:00 13121 pre_git my-repo drgomesp W any -> refs/.* 2012-10-22.11:00:00 13121 system,git,shell,-c,git-receive-pack '/home/git/repositories/my-repo.git' 2012-10-22.11:00:00 13121 END
2 Solutions collect form web for “Redmine + Gitolite – Issue with repository permissions and more”
I managed to get it working pointing the original repo to Redmine, since both sit on the same machine, by following some simple steps:
Add a repository on Redmine with the original repo of gitolite’s repository. The path would be something like
Initially, Redmine doesn’t have any permissions to read the repository, so we fix the problem by adding the Redmine user (usually
apache) to the
gitgroup by running
usermod -a -G git www-data(be aware of your server’s configuration, because that can be a little different, according to how you configurated gitolite.
UMASKproperty on the
.gitolite.rcfile, from the default value of
0022, the equivalent of
755 (rwxr-xr-x)for directories and
644 (rw-r--r--)for files.
For existing repos, you might need to run a
chmod -R g+rX
If you still experience the permissions trouble with Redmine, where it opens a
404instead of the repo on the repository tab, you might have to run a
chmod -R g+rX on the whole
/home/git/repositories, in order to make sure the Redmine user can read all the way through the repos.
git repack remote/origin/master doesn’t fix the issue, check your umask (
umask 0002) to avoid any writing permission issue, as mentioned in “git: can’t push (unpacker error)”.
Beside that, “Unpacker error Git-pushing from bare repo to staging server” summarize all the other points to check.