Introducción al control de versiones

17 de Abril de 2008 • 0 comentarios

El problema

Casi cualquier proyecto de software, por pequeño que sea, requiere la intervención de más de un desarrollador. Todos los que hayamos participado en un proyecto dónde más de una persona colabora en un mismo código, nos hemos encontrado con los mismos problemas: ¿Quién tiene la versión buena? ¿Sobre qué código debo aplicar este cambio? ¿Has hecho cambios esta semana en el fichero tal?

La solución: Control de versiones

Se trata de tener una herramienta que gestione todos los cambios que sufre un determinado archivo por un determinado usuario. A eso lo llamamos Control de versiones. Hay una copia en un servidor que es dónde todos los desarrolladores deben acudir para empezar a trabajar (el repositorio). Entonces, el desarrollador parte de esa versión, hace los cambios que tiene que hacer, y sube sus cambios al servidor. Ha creado una nueva versión de los documentos que ha modificado (una revisión). Si otro desarrollador quiere trabajar en ese mismo fichero, observará que alguien ha efectuado cambios antes que él, y si ya tenia una revisión del código, se bajará los cambios hechos por su compañero para actualizar su versión local (la copia de trabajo).

Ventajas de usar un sistema de control de versiones

Usar un sistema de control de versiones nos proporciona muchas ventajas:

  • Poder en todo momento ver cuál es la versión más actual del proyecto, quien y cuándo la ha subido.
  • Comparar cualquier par de versiones, dónde vemos todas las partes añadidas, modificadas o eliminadas de los ficheros entre las dos versiones.
  • Volver atrás en el tiempo a una versión que funcionaba, si los cambios que hemos hecho no nos han llevado por el buen camino.
  • Crear distintas ramas del proyecto, para que sigan caminos separados a partir de un punto.
  • Etiquetar distintas revisiones que representan una versión oficial del proyecto (para indicar que la revisión 4283 coincide con la versión del proyecto 2.4.0, la etiquetaremos por ejemplo: 2_4_0).

Sistemas de control de versiones populares

  • CVS: Concurrent Versions System es el que ha sido mas popular hasta que ha sido rápidamente sustituido por el siguiente
  • SVN: Subversion, diseñado para reemplazar el CVS, mejorando casi todas las características de CVS y añadiendo funcionalidades que el antiguo no tenia.
  • Git: Un proyecto de Linus Torvalds, en auge y del que voy a hablar cuando tega un momentito.

En posteriores artículos hablaré de las características de Subversion, cómo se crea un repositorio, cómo se trabaja en un proyecto con Subversion, etc…

17 de Abril de 2008 • 0 comentarios

Deja un comentario