Es muy posible que queramos tener un control de usuarios y permisos en nuestro repositorio git centralizado, si por ejemplo, tenemos a varios equipos de varios desarrolladores trabajando cada uno con un repositorio diferente. Afortunadamente, existen varias soluciones a este problema pero yo me he quedado con gitolite, por su facilidad de gestión y sus posibilidades.
NOTA: En este post se irá cambiando del servidor (miServer) a mi PC local (miPC). Se irá comentando a lo largo del post a qué entorno se hace referencia, pero si te pierdes, fíjate en el inicio de cada comando ejecutado (ej: [root@miServer ~] vs [adri@miPC])
Instalación
Añadimos el repositorio EPEL para nuestro servidor con el repositorio central, un CentOS 6:
[root@miServer ~]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@miServer ~]# rpm -Uvh epel-release-6-8.noarch.rpm
Instalamos git y a posteriori gitolite, que en mi caso, me ha instalado y/o actualizado bastantes paquetes, la mayoría relacionados con perl:
[root@miServer ~]# yum install git gitolite3.noarch
A continuación, crearemos un usuario de sistema, para gitolite, al que en el ejemplo hemos llamado «git», y que será el usuario de sistema con el que interactuarán los usuarios con el repo:
[root@miServer ~]# useradd --system --shell /bin/bash --home /home/git git

Es normal el rechazo que provoca en algunos usuarios cualquier nuevo icono que aparezca en su PC (hablo de software que se ha decidido instalar en los PCs de la empresa), y más si desde el departamento de sistemas no se informa convenientemente de qué es eso y para qué se va a usar. Este efecto se agrava exponencialmente si lo que se instala es una aplicación de «control remoto» o de «inventariado»: ¡Dios mio, me están controlando!
Foto por