Gitweb not displaying some repos

2019-05-27 12:58发布

问题:

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

回答1:

Reading from this question I PARTIALLY solved it like this:

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

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

  3. 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?



回答2:

also, if rights are ok, you should check which dir is scan for gitweb and where put gitolite repos, it can be different and symlinks makes new repos visible.