sábado, 8 de marzo de 2014

Cómo Crear un Repositorio de GIT Compartido en Debian


Git es un sistema distribuido de control de revisiones.

Vamos a crear un repositorio remoto compartido de git y le añadiremos la siguiente funcionalidad:

- Acceso de lectura y escritura usando el protocolo ssh.
- Acceso anónimo de sólo lectura vía git-daemon.
- Navegar por los repositorios de git vía web.
- Mandar notificaciones por email cuando el usuario realiza un commit.


Este artículo muestra cómo configurar un repositorio de Git en una distribución Debian (Sid).


Crear el repositorio en la máquina remota


Primero vamos a configurar la máquina remota donde instalaremos el repositorio de git.


Creamos el directorio donde colocaremos el repositorio de git:
$ mkdir /gitrepo

Instalamos git
$ sudo aptitude install git

Todos los usuarios capaces de leer y escribir en el repositorio deben pertenecer al grupo gitgroup:
$ sudo groupadd gitgroup
$ sudo chgrp -R gitgroup /gitrepo
$ sudo chmod g+w /gitrepo

Directorio "home" genérico para los usuarios pertenecientes al grupo gitgroup:
$ sudo mkdir /home/gitgroup
$ sudo chgrp -R gitgroup /home/gitgroup


Añadimos nuestro usuario actual al grupo gitgroup.
$ sudo adduser mi_usuario gitgroup
Los cambios se harán efectivos después de volverse a loguear.
$ groups
mi_usuario sudo gitgroup


Creamos ahora un repositorio git vacío.
$ cd /gitrepo
$ git init --bare --shared=0664 my_git_project
Initialized empty shared Git repository in /gitrepo/bar/

NOTA:
0664: el usuario "otro" tiene permisos de sólo lectura.
0660: el usuario "otro" no tiene permisos.

$ chgrp -R gitgroup my_git_project

La opción --shared hace que los directorios, los nuevos ficheros que se creen, etc, tengan los permisos adecuados.

Ahora tenemos un repositorio vacío donde podemos subir nuestros nuevos commits, o algún repositorio preexistente.


Acceso de lectura y escritura