Subversion (SVN) es una aplicación para el control de versiones que nos permite gestionar los cambios y versiones que realizamos en nuestros desarrollos de una forma sencilla. Es mucho mas intuitivo que el antiguo CVS y mas versátil que SourceSafe. En este post no vamos describir que es SVN o CVS, son proyecto Open Source con una gran comunidad y existe abundante información en Internet sobre ellos. Nuestro objetivo es instalar SVN de la forma más sencilla, pero con la suficientemente configuración para que podamos trabajar sin problemas (multipuesto y con backups).

Antes de empezar, indicaros que existe un proyecto que persigue instalar SVN con un sólo click (svn1clicksetup) . Ciertamente, funciona e instala en un solo paso todo lo necesario, pero en nuestro caso queremos tener un poco mas de control sobre la instalación y lo haremos en 5 pasos.

La instalación más sencilla de Subversión (SVN) (a parte de la opción de instalación en monopuesto) es utilizar el servidor Svnserve en lugar de Apache. Snvserver en un servidor ligero (lightweight) e independiente (stand-alone) que utiliza un protocolo especifico (svn) sobre una conexión TCP/IP. En la mayoría de los casos no sólo es más sencillo configurar Snvserve en lugar de un servidor basado en Apache, sino que además es más rápido.

Para la parte cliente, os recomendamos usar TotoiseSVN, es una herramienta que se integra con el Explorador de Windows y permite gestionar nuestros ficheros de una forma muy sencilla.

Requisitos:

  • WindowsXP / Windows 2003 Server.
  • Servidor Svnserve 1.4.3 (versión utilizada en este post)
  • TortoiseSVN 1.4.3 (versión utilizada en este post)

Pasos para instalar SVN:

1) Instalar Snvserve

  • a) Obtener la última versión del servidor Svnserve aquí.
  • b1) Si tienes el instalable para Windows, sólo ejecutarlo.
  • b2) Si tienes un archivo zip con los binarios, crea un directorio, Por ejemplo, c:\svnserve (<directorio_de_Svnserve>). Copia todos los ficheros de zip.

2) Instalar TotoiseSVN (Es necesario reiniciar el PC)

  • b) Ejecutar la instalación de TortoiseSVN.

3) Configurar el servidor

  • a) Crear un directorio donde estarán los repositorios de SVN, por ejemplo: c:\repos (<directorio_de_repositorios>).
  • b) Crear un servicio de Windows para arrancar y parar fácilmente el Servidor de SVN. En una ventana de la consola de Windows ejecutar el siguiente comando:

sc create svn.local binpath= "\"<directorio_de_Svnserve>\svnserve.exe\" ----service ----root <directorio_de_repositorios>" displayname= "Subversion Repository" depend= Tcpip

  • Donde:
    • <directorio_de_Svnserve> : Es el directorio donde instalamos el servidor Svnserver (Paso 2b).
    • <directorio_de_repositorios> : Es el directorio que hemos creado para los repositorios. (Paso 3a)
  • c) Arrancar el servicio de SVN. En la ventana de gestión de servicios de Windows (Panel de control de Windows -> Herramientas administrativas -> Servicios), buscar el servicio “Subversión Repository” e inicializarlo.

4) Añadir un nuevo proyecto de desarrollo

  • a) Crear un directorio dentro del directorio de repositorios, en nuestro ejemplo c:\repos\test. El repositorio se creará dentro de este directorio, aseguraros de que el directorio esta vacío y no tiene protección contra escritura.
  • b) Botón derecho encima del directorio y con tortoiseSVN crea un repositorio (Opción “Create repository here…”).
  • c) Selecciona “Native filesystem (FSFS)”, es menos problemática con configuraciones en red. NOTA: TortoiseSVN creará varios ficheros dentro del directorio, NO cambiar NADA.
  • d) Editar los ficheros de configuración. NO tocar nada más. En el directorio del ejemplo c:\repos\test\conf editar los ficheros:
  • Fichero svnserve.conf, añadir

[general]
# Solo acceso a usuarios autorizados.
auth-access = write
# Fichero de usuarios.
password-db = passwd

  • Fichero passwd, añadir

[users]
# listado de usuarios y password
usuario = pass

5) Crear un proceso de Backup de nuestros ficheros

  • a) Crea un directorio donde guardar el Backup, en el ejemplo c:\SvnBackup
  • b) Crear un fichero RealizaBackupSVN.bat y añade el siguiente shell script.

rem borra el contenido del anterior backup
del "c:\SvnBackup" /S /F /Q
rd c:\SvnBackup /S /Q
md c:\SvnBackup

rem backup en caliente
c:\<directorio_de_Svnserve>\svnadmin.exe hotcopy c:\repos\test c:\SvnBackup

  • c) Crea una tarea programa de Windows que ejecute el shell script anterior, puede ser a cualquier hora ya que la copia se hace en caliente y no es necesario parar el servidor de SVN.
  • NOTA: Si el backup falla, y borramos el anterior backup podemos quedarnos sin ninguna copia de seguridad. Esto se puede resolver fácilmente haciendo un backup previo antes de borrar los ficheros.
Be Sociable, Share!