viernes, 12 de noviembre de 2010

La evolución del control de versiones, primera parte.


Repito una vez mas, sin cansarme: quien no usa control de versiones es como quien no usa cinturón de seguridad, no compra seguro del auto, no trae llanta de refacción y habla por el celular mientras conduce: podrá llegar muchas veces a su destino pero no significa que no esta arriesgando mucho en el camino, aun cuando vaya solo.


Y eso que los sistemas de control de versiones existen desde hace tanto y han evolucionado increíblemente.
En el principio existió CVS: no manejaba muy bien los archivos binarios, pero la idea de que pueda bajar mi código como lo tenia ayer o hace un año, comparar las diferencias y además de tenerlo respaldado todo el tiempo, todo con unos sencillos comandos es innegablemente excelente.

Subversion fue el sistema que sustituyo a CVS, y que hace ver a su ancestro como juguete de bebés. Resuelve el problema de los binarios y hace que colaborar sea muy sencillo, y aun mas con un cliente como TortoiseSVN. Integra la idea de crear ramas de desarrollo que luego se pueden “remezclar” en el código principal, o marcar revisiones, corregir bugs sobre versiones viejas y luego integrar esa corrección en el desarrollo principal, etc.

Como todo, Subversion ahora no es suficiente. Hay nuevas necesidades en el desarrollo cada vez mas distribuido y hay pequeños y grandes detalles de Subversion que podrían ser mejores a la hora de colaborar.

Aquí es donde entran los nuevos reyes del control de versiones: Mercurial, Git y Bazaar.

Norberto Martínez y su servidor tenemos nuestras apuestas con Git y Mercurial, y hemos estado comparándolos, especialmente Norberto se dio a la tarea de investigar lo que ambos tienen que ofrecer en el web. Voy a escribir sobre ellos en los siguientes posts para que cada quien tome el camino que mas le lata.

1 comentario: