Instalación del control de versiones Subversion
Este artículo es realmente antiguo (algo así como del 2006 o 2007). Haciendo limpieza de la wiki interna iba a borrarlo porque está bastante obsoleto. No por el procedimiento de instalación, sino porque actualmente seria mucho mejor optar por un sistema de control de versiones distribuido como Git o PlasticSCM. Pero creo que publicarlo aquí no cuesta nada y quizás a alguien le pueda ser de alguna utilidad.
Introducción
Nos proponemos mover el servidor de control de versiones entre dos servidores. Debido a las nuevas aplicaciones que implementan este servicio y mejoran el antiguo CVS. Vamos a hacer un estudio para saber qual es la mejor opción.
Alternativas
Debido a que una de las aplicaciones que más vamos a usar en conjunto con el servidor de control de versiones es el Intellij IDEA, solo nos fijaremos en las aplicaciones que este soporta. Y estas opciones son:
-
CVS: Es la alternativa de toda la vida.
-
Perforce: Es la solución comercial a las mejoras del CVS tipico. Es free si trabajas con codigo open-source, pero de pago para empresas. En [1] nos recomiendan subversion si queremos una herramienta open-source equivalente.
-
Subversion: La única, junto a CVS que es open-source.Contiene todas las mejoras necesarias con CVS y continua siendo open-source.
-
StarTeam: Pertenece a Borland. Vale 700$.
-
Visual SourceSafe: Pertenece a Microsoft Visual Studio.
Instalación Subversion
Nos decantamos por el Subversion al ser la única aplicación open-source, exceptuando CVS, que es la que ya teniamos y la que queremos mejorar:
# aptitude install subversion subversion-tools
Creamos un directorio donde tendremos todos los repositorios:
Tenemos que crear un usuario con el que se ejecutará el servicio svn:
Aplicamos los permisos al directorio:
/var/lib# chown svn.svn svn
Configuración del servicio
El paquete Subversion no incluye un script de parada y reinico del servicio. En [2] indican como instalar el servicio con el superservidor inetd.
Añadimos la siguiente linea en el fichero /etc/inetd.conf:
svn stream tcp nowait svn /usr/bin/svnserve svnserve -i
Ahora podemos reiniciar el servicio reiniciando el inetd.
hs-412:/etc# /etc/init.d/openbsd-inetd restart
Usuarios y passwords
La gestión de acceso se realiza mediante un fichero de usuarios. El fichero es especifico de cada repositorio pero tenemos un fichero maestro genérico para uso de los proyectos internos con acceso a todos los usuarios.
El contenido tiene la siguiente forma:
Configuración del cliente
Para acceder a nuestro repositorio ‘gproject’, por ejemplo, està es la URL necesaria:
svn://10.1.5.1/var/lib/svn/gproject
Configuración del acceso websvn
Instalación
Vamos a instalar el paquete websvn para poder acceder a los repositorios por web:
# aptitude install websvn
Durante la instalación nos van a pedir:
- Qual es nuestro servidor web(apache, apache-perl, apache-ssl o apache2), para una configuración automatica. Indicamos que el nuestro es el apache2.
- El directorio donde estan nuestros repositorios: /var/lib/svn
- Repositorios concretos a añadir: en blanco ya que hemos indicado el padre anteriormente y estan todos ahíTenemos que añadir el usuario con el que se ejecuta el apache en el grupo svn para que pueda acceder a los repositorios:
# adduser www-data svn
Configuración
Queremos acceder al repositorio via web por la VPN únicamente. Por eso vamos a colgar el repositorio desde la configuración del apache para la VPN. Borramos el fichero /etc/apache2/conf.d/websvn. Al final del fichero /etc/apache2/conf.d/vpn añadiremos la siguiente linea:
Tambien es necesario mover el soft link de /var/www/websvn al directorio base del virtual host.
Syntax coloring
Documentamos el mecanismo para configurar colores en el código fuente que mostramos mediante websvn. Seguimos este howto.
Bibliografia
- [1] Better SCM Initiative: better-scm.berlios.de.
- [2] Version Control with Subversion: http://svnbook.red-bean.com/en/1.1/svn-book.html
- [3] TortoiseSVN: http://tortoisesvn.tigris.org
- [4] Subclipse: Un plugin para el eclipse. http://subclipse.tigris.org[5] eSvn: http://esvn.umputun.com