gitolite + cgit: No repositories found

I've set up and configuered gitolite and wish to configure the cgit web interface to it.

Problem:

When browsing a directory using cgit I get the error:

No repositories found

Setup

When a new repository is created gitolite creates a corresponding directory to it under /home/git/repositories automagically. cgit is configuered to read these repositories using:

project-list=/home/git/projects.list 
scan-path=/home/git/repositories

The problem is that these repositories doesn't seem to be bare repositories. If I instead manually clone one of these repositories using

git clone --bare user@server:repo

it seems to work. I really don't want to do this manually every time a new repository is checked in. Why aren't the repositories created by gitolite bare already? How can I automate this?

Answers


Turns out - after trying to verify it several times - this is just a file system rights issue. After trying

chown -R www-data:www-data repositories/repo

to force ownership into my apache user running cgit, the repository shows up in the web interface.

The proper solution is to add the apache user to the git group and change the value umask in .gitolite.rc to

$REPO_UMASK=0027

Note: with Gitolite V3 or 'g3', that would be (see doc):

$UMASK=0027

It was similar with permission issue i encountered before. I used a scripts to fix permission of git repositories.

script: fix_perm_cgit.sh

#!/bin/sh
reponame="$1"
if [ ! -d "$reponame" ]; then
   echo "missign repo_name"
   exit 1
fi


find "$reponame" -type d | while read fn ; do chmod og+rx $fn ; echo "d-> $fn" ; done
find "$reponame" -type f | while read fn ; do chmod og+r $fn ; echo "f-> $fn" ; done

Need Your Help

Parallel for vs omp simd: when to use each?

c++ c performance openmp simd

OpenMP 4.0 introduces a new construct called "omp simd". What is the benefit of using this construct over the old "parallel for"? When would each be a better choice over the other?

Comma in DoubleDouble Quotes in CSV File

python csv

I have a string like given in the example: