{{tag> subversion cvs}}
===== Subversion =====
Partimos de un Centos 5.4 64 bits ya instalado
==== Instalar el servidor de Subversion ====
yum install subversion
Para comprobar que la versión de subversion es la correcta ejecuta svn --version
En los repositorios base la versión de subversion que encontramos es la 1.4.x. En caso de querer instalar la versión 1.6 hay que [[linux:centos:repositorios|añadir el repositorio rpmforge]]
Si queremos instalar la versión 1.6 una vez que hemos añadido el repositorio rpmforge
yum --enablerepo=rpmforge install subversion mod_dav_svn
==== Configurar Apache ====
Configuramos apache para que se puedan conectar al repositorio por Webdav
yum install mod_dav_svn
Instalamos el mod_dav_svn para apache
vi /etc/httpd/conf.d/subversion.conf
Buscamos en el fichero de configuración las siguientes líneas y descomentarlas o bien añadirlas
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
#Este parámetro es donde ponemos el nombre para acceder en este caso http://dominio/svn
DAV svn
SVNParentPath /var/svn
AuthType Basic #pedimos autentificación
AuthName "Repositorio Subversion"
AuthUserFile /etc/subversion/svn-auth-file
Require valid-user
==== Crear el repositorio Subversion ====
mkdir /var/svn/
mkdir /var/svn/repositorio1
Crearemos el directorio svn/nombrerepositorio en /var/, donde se alojarán los repositorios de subversion
svnadmin create /var/svn/repositorio1
Instalamos un repositorio en ese directorio mediante el comando svnadmin create
chmod -R 777 /var/svn/repositorio1
Muy importante es dar permisos de escritura a este directorio. Si no es así, apache no podrá modificar estos archivos y por tanto, los commits nunca funcionarán.
también podemos darle permisos al grupo apache en vez de a todos los usuarios chown -R apache:apache /var/svn
chmod 755 /var/svn
==== Crear usuarios ====
htpasswd -c /etc/svn-auth-file usuario1
La aplicación htpasswd crea un archivo en /etc/svn-auth-file e introduce un usuario con nombre usuario1
Si queremos crear más usuarios, no debemos usar la opción -c, ya que esta crea un nuevo fichero, sobreescribiendo el anterior. Para el segundo y siguientes usuarios, usaremos htpasswd /etc/svn-auth-file usuario2
.
Si queremos borrar un usuario, podemos editar el fichero o usar la opción -D mayúscula.
Reiniciamos el servidor apache /etc/init.d/httpd restart
y desde un navegador web ponemos http://ip_o_nombre/svn.
=== Limitar permisos ===
Si queremos ajustar más los permisos, añadimos al fichero de configuración subversion.conf la siguiente línea AuthzSVNAccessFile /var/svn/aclfile
Creamos un fichero "aclfile" y añadimos los permisos para cada usuario, por ejemplo
#fichero de permisos aclfile
[calc:/svn/repositorio1]
usuario1: rw
usuario2 :r
===== Referencias =====
* http://hpantaleev.wordpress.com/2011/08/19/instalacion-de-subversionwebsvn-en-debian-6/
* http://subversion.tigris.org/
* http://blogofsysadmins.com/instalar-un-servidor-de-subversion-en-un-centos-con-plesk
* http://polaris.dit.upm.es/~rubentb/docs/subversion/TutorialSubversion/index.html
* http://joniux.x-red.com/2008/03/31/instalando-un-servidor-subversion/
* http://lihuen.info.unlp.edu.ar/index.php/C%C3%B3mo_usar_SVN