At ZeroZaku, we use Git and Gitolite to easily push updates from our local computers to the server; however, the problem is that a fresh installation of Gitolite would prevent apache from reading the working tree because of its default permissions.

Apache, Permissions, and umasks

In short, umasks determine the file and directory permissions for newly created files and directories. Because Git checkouts consistently create and destroy files, they constantly change permissions.

Apache, however, must have permissions to read the file in order to serve it to users. Apache likes the 0022 umask, so let's change the Gitolite configuration for umasks.

The umask Configuration in Gitolite

The default UMASK that gitolite uses makes all the repos and their contents have rwx