SVN, o como hacer eficiente el trabajo en equipo

Si eres programador y crees es un incordio trabajar en equipo necesitas leer esta entrada.

Uno de los mayores problemas para trabajar varias personas sobre un mismo proyecto de forma simultanea es el intercambio de ficheros, modificación de éstos, y discrepancias de código por modificaciones que otro haya podido hacer. En definitiva, una perdida de tiempo enorme.

Por suerte, existe el control de versiones. Primero fue cvs y actualmente su evolución svn (subversion).

Con subversion, la idea es partir de un proyecto base común y tenerlo en una maquina correctamente configurado mediante un servidor svn (local o remotamente), de tal forma que todo el equipo pueda crear contenido nuevo y modificar el actual de forma simultánea. En el momento que vayamos terminando nuestras tareas, bastará con hacer commit de nuestra carpeta de proyecto para que sean enviados los cambios.
Cuando hagamos update, nuestro cliente svn será el encargado de fusionar todos los cambios, del que en muy pocos casos será necesario resolver un conflicto de algún fichero.
En definitiva, un ahorro de tiempo inmenso.

En la web tenemos a nuestra disposición desde svn online gratuitos (nuestro código será publico en ellos, pues se supone código libre como es el caso de google code o sourceforge), hasta hospedajes privados de pago o, la opción de montar nuestro propio servidor en nuestra máquina de forma totalmente gratuita, y adaptándolo a nuestras necesidades (bien en una red de empresa, bien utilizando esa maquina como servidor online).

Los clientes svn que recomiendo son:

Para terminar, un par de recomendaciones en su uso:
  1. No seleccionar para compartir ficheros de proyecto que sean exclusivos del equipo.
  2. Hacer Update SIEMPRE antes de hacer Commit.