I am trying to use Gitolite + Gitweb but I am running into some problems..
My conf/gitolite.conf
is the following
@dataset_repos = dat1 dat2
@closedsrc_repos = cod1 cod2
@opensrc_repos = testing
@admins = user1 user2
@bios = user1 user2 user3
@coders = user1 user3
repo gitolite-admin
RW+ = @admins
repo @opensrc_repos
RW+ = @all
repo @dataset_repos
RW+ = @admins @bios
repo @closedsrc_repos
RW+ = @admins @coders
When I first inserted repository code1 and code2, git told me:
remote: Initialized empty Git repository in /home/git/repositories/code1.git/
remote: Initialized empty Git repository in /home/git/repositories/code2.git/
I did an initial commit on code2 but it didn't show up. So I checked the permission and I found that these were:
drwxrwx--- 8 git git 4096 Oct 1 18:58 ./
drwxr-xr-x 8 git git 4096 Oct 1 19:08 ../
drwxrwx--- 8 git git 4096 Oct 1 19:08 gitolite-admin.git/
drwxrws--- 7 git git 4096 Oct 1 17:15 dat1.git/
drwx------ 7 git git 4096 Oct 1 18:58 code1.git/
drwx------ 7 git git 4096 Oct 1 18:58 code2.git/
drwxrwx--- 7 git git 4096 Sep 30 18:20 testing.git/
drwxrws--- 7 git git 4096 Oct 1 17:15 dat2.git/
So I fixed permission for repo code1.git
and code2.git
with:
# Fix ownership
sudo chown -R git:git *
# Fix directory permissions
sudo find <repo.git> -type d -exec chmod 770 {} \;
# Fix file permissions
sudo find <repo.git> -type f -exec chmod 660 {} \;
The two repos showed up on gitweb interface.
However, gl-conf
for each of these two repos was not generated.
Now, doing a commit, permissions are messed up again, and repos are not showing..
What am I doing wrong?
Thanks
Reading from this question I PARTIALLY solved it like this:
Initially, gitweb doesn't have any permissions to read the repository, so we fix the problem by adding the gitweb user (usually www-data
or apache
) to the git group 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
.
Change the UMASK
property on the .gitolite.rc
file (present in git user home directory), from the default value of 0077
to 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
More infos on link above.
Anyway, every time I edit gitolite-admin
repo, this shows up in the list of present repositories.. How to change it?