
Una versión, revisión o edición de un producto, es el estado en el que se encuentra en un momento dado en su desarrollo o modificación. Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Los sistemas de control de versiones facilitan la administración de las distintas versiones de cada producto desarrollado, así como las posibles especializaciones realizadas (por ejemplo, para algún cliente específico).
El control de versiones se realiza principalmente en la industria informática para controlar las distintas versiones del código fuente. Sin embargo, los mismos conceptos son aplicables a otros ámbitos como documentos, imágenes, sitios web, etcétera.
Aunque un sistema de control de versiones puede realizarse de forma manual, es muy aconsejable disponer de herramientas que faciliten esta gestión:
Bonsai cvs
Bonsai CVS es un software diseñado para ayudar a gestionar de forma productiva grandes proyectos de programación que utilizasen el sistema de control de versiones CVS. Fue desarrollado inicialmente por la Fundación Mozilla para que múltiples programadores pudieran editar su extremadamente grande base de software. Entre otras características, Bonsái permite realizar consultas complejas al servidor CVS, así como realizar actualizaciones casi en tiempo real al mismo.
Bonsái fue fundado por Terry Weissman. En principio se escribió en Tcl, y más tarde fue portado a Perl. Se ejecuta sobre una base de datos MySQL, y puede ser utilizado mediante cualquier servidor que soporte scripts en Perl, como por ejemplo Apache.
Git
Git es un software de sistema de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran numero archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir el interfaz de usuario o front end como Cogito o StGIT. [1] Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. [2] Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo del sistema operativo Linux.
El mantenimiento del software Git esta presentemente (2009) supervisado por Junio Hamano, quien recibe contribuciones al código de alrededor de 280 programadores.
Git es un software de sistema de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran numero archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir el interfaz de usuario o front end como Cogito o StGIT. [1] Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. [2] Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo del sistema operativo Linux.
El mantenimiento del software Git esta presentemente (2009) supervisado por Junio Hamano, quien recibe contribuciones al código de alrededor de 280 programadores.
Mercurial
Mercurial es una herramienta de sistema de control de versiones multiplataforma, para desarrolladores de software. Está implementado principalmente haciendo uso del lenguaje de programación Python, pero incluye una implementación binaria de diff escrita en C. Mercurial fue escrito originalmente para funcionar sobre Linux. Ha sido adaptado para Windows, Mac OS X y la mayoría de otros sistemas tipo Unix. Mercurial es, sobre todo, un programa para la línea de comandos. Todas las operaciones de Mercurial se invocan como opciones dadas a su programa motor, hg, que hace referencia al símbolo químico del mercurio.
Las principales metas de desarrollo de Mercurial incluyen un gran rendimiento y escalabilidad; desarrollo completamente distribuido, sin necesidad de un servidor; gestión robusta de archivos tanto de texto como binarios; y capacidades avanzadas de ramificación e integración, todo ello manteniendo sencillez conceptual.[1] Incluye una interfaz web integrada.
El creador y desarrollador principal de Mercurial es Matt Mackall. El código fuente se encuentra disponible bajo los términos de la licencia GNU GPL versión 2, lo que clasifica a Mercurial como software libre.
Microsoft Visual SourceSafe
Microsoft Visual SourceSafe (también conocido por sus siglas VSS) es una herramienta de Control de versiones que forma parte de Microsoft Visual Studio aunque está siendo sustituida por el Visual Studio Team Foundation Server.
SourceSafe fue creado por la compañía americana One Tree Software a principios de los años noventa. Su primera versión fue la 3.1 coincidiendo con el mismo número de versión del sistema operativo Windows. Microsoft adquirió los derechos sobre SourceSafe que era un programa de 16 bits y lo liberó en 1995 como un programa de 32 bits, dándole la versión 4.0 SourceSafe es un sistema basado en un equipo anfitrión a diferencia de la mayoría de los programas de control de versiones que son basados en Cliente-Servidor donde el repositorio de control de cambios reside en el equipo servidor y los clientes toman de allí la última versión para modificarla y posteriormente ingresarla con las modificaciones realizadas. Como en todos los programas de control de versiones, se basa en obtener una copia de trabajo (”check-out” o “desproteger”), realizar cambios sobre la copia y reingresarla al repositorio. Para lograr el acceso compartido al repositorio, VSS emplea el protocolo de archivos compartidos SMB lo cual crea algunos inconvenientes
Monotone
Monotone es una herramienta software de fuente abierta para control distribuido de versiones.
Monotone registra revisiones de ficheros, agrupa conjuntos de revisiones (’changesets’) y mantiene el histórico tras cambios de nombre. El principio de diseño es el de operación distribuida haciendo gran uso de primitivas criptográficas para trazar revisiones de ficheros (mediante el hash seguro SHA1) y para autenticar acciones de usuarios (mediante firmas criptográficas RSA). Cada participante mantiene su propio almacén de revisiones históricas en una base de datos SQLite local.
Monotone es especialmente potente en su soporte de la rutina de separación/integración (’diverge/merge’), que consigue en parte al permitir siempre hacer ‘commit’ antes de integrar. Las revisiones se intercambian haciendo uso del protocolo propio netsync, que tiene su propio puerto (4691) asignado por IANA y dispone de un plugin para Wireshark que permite el análisis de tráfico (netsync comparte cierto terreno conceptual con rsync y cvsup). El enfoque del proyecto está en la integridad por encima del rendimiento.
Antes de ciertas optimizaciones importantes en la revisión 0.27, se solía culpar a este énfasis en la corrección en lugar de optimización como la causa de malas experiencias iniciales. La primera acción de un usuario nuevo suele ser sincronizar (clonar) una gran base de datos de Monotone ya existente, acción que solía llevar horas de ejecución debido a las comprobaciones exhaustivas de validación e integración que realiza Monotone cuando se mueven revisiones por la red. Una vez poblada la base de datos inicial (clon), las acciones posteriores suelen ser rápidas. Sigue habiendo espacio para optimizaciones en algunas de las funciones menos habituales.
Subversion
Subversion es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS, el cual posee varias deficiencias. Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser ese el nombre de la herramienta de línea de comandos. Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo.
Subversión es muy conocido en la comunidad de software libre y se utiliza en muchos proyectos, incluyendo la fundación del software de Apache, KDE, GNOME, Free Pascal, FreeBSD, GCC, Python, Django, Ruby, Mono, SourceForge.net, ExtJS y Tigris.org. El servicio Google Code también proporciona almacenamiento Subversion para sus proyectos de software libre. Los sistemas de BountySource lo utilizan exclusivamente. Codeplex ofrece acceso tanto para Subversión como para otros tipos de clientes. Subversión también está siendo adoptado en el mundo corporativo. En un informe 2007 de Forrester Research, reconocía a Subversion como el único líder en la categoría de sistema de control de versiones.
Tortoise CVS
TortoiseCVS es una herramienta CVS para Microsoft Windows publicada bajo la GNU General Public License. Al contrario que la mayoría de las herramientas CVS, se incluye en el shell propio de Windows añadiendo entradas en el menú contextual del explorador de ficheros, por lo tanto no se ejecuta en su propia ventana. Más aún, esto añade iconos sobre los ficheros y directorios controlados por CVS, dando información adicional al usuario sin tener que ejecutar una aplicación individual.
El proyecto fue comenzado por Francis Irving cuando fue empleado por Creature Labs para suministrar una mejor interfaz a CVS para sus colegas. Parte del código estaba derivado de WinCVS y CVSNT. La primera publicación fue el 4 de Agosto del año 2000.
Últimos comentarios