Subversion es un software que controla las versiones de los ficheros. Básicamente permite trabajar con la versión más actual de un fichero, pero permite la posibilidad de acudir a versiones anteriores, nunca se sabe que se edita, que añade ni que se cambia hasta que se echa de menos. Además permite añadir notas a cada cambio que se hace sobre el fichero, pequeñas notas que nos ayuden a la hora de buscar una versión antigua para saber qué había o que cambiamos.
Es una evolución de CVS, controladores de versiones, que permite integrarse con servicios web de Apache, que recoge en su seno de desarrollo y desde donde puedes descargarlo y documentarte en profundidad.
Puedes compilarlo desde el código fuente, puedes usar MacPorts o puedes usar la forma más sencilla, que no será la mejor pero si que funciona sin problemas a la primera, para conexiones con aplicaciones en C y JavaHL, una instalación desde un binario para tu versión de Mac OS X. En mi caso, la compatible con 10.6.
Descargar Subversion para Mac, en concreto la distribución binaria en formato DMG para 10.6.x, la versión en el momento de escribir esto es la 1.6.15.
Instalar, seguir el setup de instalación gráfico.
Directorio de los ejecutables instalados:
/opt/subversion/bin
Añadir path de los ejecutables instalados al PATH de búsqueda del sistema. Editar el fichero profile para todos los usuarios del sistema:
# vi /etc/profile
Añadir al final del fichero:
export PATH=/opt/subversion/bin:$PATH
guardar (:w!) y cerrar (:q)
Configurar el servidor de SVN.
Crear el directorio padre que contendrá cada proyecto.
# mkdir /repositorioSVN
Arrancar SVN server:
# svnserve -d -r /repositorioSVN
Crear repositorios por proyecto.
# svnadmin create /repositorioSVN/proyecto1
El repositorio está listo para conectarse a él. La ruta de conexión para un cliente SVN es:
svn://localhost/proyecto1
Ajustar permisos. El servidor SVN permite accesos mediante una lista de control de acceso.
Por cada repositorio, editar el fichero ‘passwd’ para añadir por línea usuario y contraseña:
# vi /repositorioSVN/proyecto1/conf/passwd
Añadir al final del fichero, tantos usuarios y contraseña como deseemos
nombre_usuario = password_que_queramos
Guardar y cerrar (:wq)
Editar el fichero svnserve.conf para que compruebe accesos por contraseña.
# vi /repositorioSVN/proyecto1/conf/svnserve.conf
Descomentar la línea donde dice:
password-db = passwd
Guardar y cerrar (:wq)
Ahora el acceso está controlado por la lista de usuarios de cada repositorio.
Mover un repositorio de un equipo a otro
Si se copia el directorio remoto a su nueva localización, /repositorioSVN/proyecto1, en abierto y se modifican los ficheros de configuración para controlar el acceso de usuarios, al conectar se recuperan las versiones sin problemas.
SaludoX.