VCS, introducción al control de versiones

Publicado por Andrea Navarro en

Cuando hablamos de control de versiones en programación nos referimos a la capacidad de registrar los cambios realizados sobre los archivos del código fuente.

Este control puede hacerse de manera manual creando diferentes archivos para cada modificación o realizando copias incrementales con la fecha de modificación pero esto puede llevar mucho tiempo y dar como resultado un sistema desorganizado por lo que es mejor automatizar el proceso.

Los VCS (version control system) son aplicaciones que permiten realizar el control de modificaciones de código fuente de manera automática y eficiente. Algunas de las  características de los VCS son:

  • Reporte de cambios: Cuando un archivo es modificado se guarda la fecha y hora del cambio, el autor que lo realizó y un mensaje opcional explicando las razones o naturaleza del cambio.
  • Sincronización: Si varias personas trabajan o utilizan el mismo proyecto permite que todas puedan tener la última versión
  • Backup y restauración: Permite guardar los cambios realizados en los archivos y restaurar el archivo a cualquiera de los estados previos en los que fue guardado
  • Crear branch: Permite crear una branch (rama) del proyecto y trabajarla por separado sin modificar el proyecto original.
  • Realizar merge: Permite convertir el contenido de branch al proyecto principal

Modelos de control de versiones

El modelo local utiliza una copia de la base de control de versiones y una copia de los archivos del proyecto. Este tipo es el más sencillo y no es recomendable cuando se trabaja en equipo ya que todos tienen que acceder a los mismos archivos.

Modelo local de control de versiones

En el modelo centralizado el control de versiones se realiza en un servidor que se encargará de recibir y dar los cambios realizados en el archivo a cada uno de los usuarios.

Modelo centralizado de control de versiones

El modelo distribuido es el más utilizado, en este caso cada usuario tiene un control de versiones propio que a su vez son manejadas por el servidor.

Modelo distribuido de control de versiones

 

Sistemas de control de versiones OpenSource

Existe una gran cantidad de sistemas de control de versiones para las distintas plataformas y con diferentes licencias. A continuación se listan los sistemas más populares OpenSource multiplataforma:

 

GIT: Funciona con un modelo distribuido y está licenciado bajo GNU GPL. Originalmentre fue diseñado por Linus Torvalds y es utilizado para el proyecto del núcleo de Linux.

 

 

Subversion:

Funciona con un modelo centralizado y está licenciado bajo Apache.

 

 


CVS
:  Funciona con un modelo centralizado y está licenciado bajo GNU GPL. Este proyecto tiene mantenimiento pero no se agregarán nuevas características.

 

Mercurial:

Funciona con un modelo distribuido y está licenciado bajo GNU GPL.

 

 


Andrea Navarro

- Ingeniera en Informática - Docente universitaria - Investigadora