Control de versiones

Ejemplo de árbol de versiones

La gente que nos dedicamos al desarrollo de software requerimos constantemente el manipular varias versiones del mismo código, o colaborar activamente con otros desarrolladores en el desarrollo de las aplicaciones. En este último caso, puede darse comúnmente que varias personas escriban código incompatible entre sí, a causa de sobrescribir el trabajo de otros o trabajar sobre versiones antiguas de dicho código.

Para evitar esto, existen los llamados sistemas de control de versiones o de gestión de código fuente (SCM, de sus siglas en inglés), como SVN, GIT, CVS, Mercurial, etc.

Pero ¿Cómo funcionan? Resumiendo mucho, se podría decir que alguien crea un repositorio de código, y todos los programadores actualizan sus versiones desde allí, trabajan con el código, y lo vuelven a subir al repositorio.

Estos sistemas ya se encargarán de notificar posibles problemas de ediciones del mismo fichero (si no se han modificado las mismas líneas, el sistema detecta los cambios y los fusiona), intentos de subir versiones antiguas, o fusionar varias ramas de desarrollo paralelas.

A mí, personalmente, me encanta SVN, que es el sistema que ofrecen los servidores gratuitos (para código abierto) code.google.com, sourceforge.net, aunque también existen Git, con github.com, Bazaar con launchpad.com, sólo por citar unos ejemplos.

Para empezar a usarlos, deberemos crearnos una cuenta para dichos servicios, y descargar una aplicación cliente que se encargará de comunicar los ficheros que modifiquemos localmente con los del servidor. Mi preferida es, sin duda, RapidSVN. Configuraremos una copia local, en la que haremos Checkout para bajarnos los archivos, programar normalmente con nuestro editor de toda la vida, y cuando terminemos añadiremos los nuevos que hayamos creados y los subiremos, junto con los modificados, al servidor, usando la misma aplicación.

Aunque bueno, como muchas otras cosas, en la variedad está el gusto. De hecho, tanto NetBeans como Eclipse disponen de clientes SVN integrados, pero personalmente prefiero las aplicaciones sencillas que simplemente cumplen su cometido a los grandes del todo incluido.

Créditos: La imagen de las ramas ha sido robada vilmente de la Wikipedia.

0 comentarios:

Publicar un comentario