Estoy tirado en el sofá de casa después de un largo día de trabajo y entonces… me pongo a escribir sobre Subversion… cosas del frikismo.
La definición de “control de versiones” según la wikipedia es: Una versión, revisión o edición de un producto, es el estado en el se encuentra en un momento dado en su desarrollo o modificación. Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. En castellano “antiguo”, una herramienta imprescindible en cualquier proyecto de desarrollo de software, sobre todo si participa más de una persona.

Existen distintas herramientas que permiten la gestión de versiones, las dos más conocidas son CVS y Subversion (SVN). Posiblemente todo vaya según gustos personales, en mi caso prefiero Subversion, una evolución de CVS bajo licencia “Apache/BSD” (es decir, libre).
Existen dos razones fundamentales para el uso de una herramienta de control de versiones:
Estas dos razones deberían ser motivo suficiente para su implantación en cualquier proyecto; todavía me resulta increíble ver numerosos casos en los cuales no se utiliza ninguna herramienta de este tipo.
Entrando en detalle, Subversion es una aplicación de tipo cliente/servidor, es decir, necesitaremos por un lado un servidor que atienda las peticiones y almacene los proyectos y por otro lado uno o varios clientes que accedan a los repositorios (un repositorio es el lugar donde se almacena un proyecto).
Existen dos vías para la implantación del servidor de SVN: su propio servidor (svnserve) o como módulo de Apache 2.0 (mod_dav_svn). Aunque svnserve es ligeramente más sencillo de configurar, recomiendo ejecutarlo como módulo de Apache. El manual es sencillo en el capítulo que explica como configurarlo, se puede encontrar aquí.
Si hablamos de los clientes, no tenemos muchas opciones… tenemos muchísimas. Podremos elegir clientes dependiendo de nuestra plataforma (Windows, Linux, Mac) o bien algún cliente Java multiplataforma. Los tendremos que se integran con la shell (en el caso de Windows) o totalmente independientes. Como para gustos colores… os dejo una lista con los dos clientes más conocidos para Windows:
Otro día prometo hace un pequeño post sobre la integración de Subversion y el IDE de desarrollo Eclipse… como nos facilita la vida a todos los que programamos…
