Sistemas de Control de Versiones

5 Julio 2010
Subversion project visualization image.

Image via Wikipedia

¿Usaron alguna vez SCCS? ¿No? ¿Que tal RCS? ¿Tampoco? Bah, son ustedes muy jóvenes. Pero, usan un sistema de control de versiones, ¿verdad? Hoy es raro que un desarrollador no use un sistema de  control de versiones como CVS o Subversion (conocido también como SVN). 

Lo que no me explico es ¡por qué no lo usa todo el mundo!
Verán, mucha gente escribe un archivo word, “aburrido_informe_para_el_auditor.doc”, empiezan a trabajar en este, si son astutos, y tienen experiencia,  antes de realizar una modificación hacen una copia y empiezan a trabajar en “aburrido_informe_para_el_auditor-version-2.doc”, y después en ”aburrido_informe_para_el_auditor-version-3.doc” y sigue la cosa, y la carepta se llena de archivos como  “informe_auditor_4.doc”, informe-auditor-final.doc”, “informe-para-el-auditor-revisado-por-mi-jefe.doc”, “informe-ups-me-equivoqué-en-losplazos.doc” y así, la carpeta de trabajo es un desastre, si es que usan carpeta, y no lo tienen desparramado en el escritorio (los lectores de LNDS no hacen eso, por supuesto).
Los programadores tenemos este problema, pero multiplicado por mil, porque los usuarios están llenos de ideas creativas y el software va cambiando todo el tiempo, y a veces hay que volver atrás. O tienes código que implantas para un cliente, y luego se crea una rama de código con modificaciones ad hoc para un cliente. Los escenarios son múltiples.
Es por eso que desde 1972 tenemos sistemas de gestión de versiones de código. Los primeros eran los que mencioné en la primera parte de este artículo. Estos primeros sistemas estaban orientados al trabajo individual de cada programador.
El problema era cuando un equipo de programadores trabajaban en el mismo proyecto, ahí nacieron sistemas centralizados, como CVS, SourceSafe (de Microsoft), Perforce, y el más famoso de todos Subversion.
No les voy a explicar acá qué es un sistema de control de versiones, sólo les voy a sugerir, si no son programadores, que investiguen sobre estas cosas, y las utilicen en su trabajo, es una buena estrategía (para los diseñadores web esta es una herramienta muy útil).
En lo que si me quiero meter es en el tema de los sistemas de control de versiones distribuidos, que son, en mi opinión (y no estoy sólo en esto), un gran avance en nuestro campo. Pero eso lo vamos a dejar para el próximo post.

Artículos relacionados

Tags: , , , ,

5 Responses to Sistemas de Control de Versiones

  1. pablo.olmosdeaguilera on 5 Julio 2010 at 23:28

    En verdad que sí, yo soy aún más “nuevo” a este escenario así que aprendí lo básico de SVN. Luego aprendí Mercurial y la verdad es que es demasiado simple y cómodo. Honestamente ya no sé que sería mi vida sin él.
    ¿No te gustan los Sistemas de control de versiones distribuidos?

  2. Eduardo Diaz on 6 Julio 2010 at 01:28

    Claro que me gustan, pero de eso voy a hablar después.

  3. Nicolás Schubert on 6 Julio 2010 at 19:38

    Yo hace un tiempo estoy usando Flahbake (http://ur1.ca/0kdci) para mi tesis y realmente me ha servido un montón. Es fácil de configurar para los que no somos usuarios técnicos.

  4. Iván Antonio Galaz Jeria on 6 Julio 2010 at 19:47

    Personalmente tuve problemas con gestionar archivos binarios en SVN. En particular archivos de MS Word, pues no encontré manera de comparar la versión original con la que deseaba subir al repositorio si no fuera con el MS Word. Lo que nos obligó a definir la propiedad de bloqueo para cualquier archivo MS Office automáticamente al realizar el primer envío al repositorio. Forzando la comparación manual antes de subir una nueva versión del archivo.
    Me encanta la idea del control de versiones, de hecho uso frecuentemente SVN, pero definitivamente quiero cambiar del modelo centralizado al distribuido ;-)

  5. [...] Sistemas de Control de Versiones [...]

Agregar un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *

*

Notifícame de nuevos comentarios a mi email. Puedes también subscribirte sin comentar.

Si quieres ingresar código colócalo entre [code] y [/code].