¿Cuales son las herramientas que podemos utilizar para el control de versiones?
Los programas para control de versiones son
un grupo de aplicaciones originalmente ideadas para gestionar ágilmente los
cambios en el código fuente de los programas y poder revertirlos.
En sus
orígenes y antes de la aparición de las redes, todos los desarrolladores usaban
el mismo ordenador. La gestión de versiones estaba orientada a ficheros
individuales, que generalmente eran absorbidos o reemplazados por otros
ficheros:
- Revision Control System (RCS) — almacena la última versión y las diferencias con la anterior, lo que permiten acceder rápidamente a la versión original.
- Source Code Control System (SCCS) — formó parte de UNIX; está basado en diferencias entrelazadas, que permiten construir versiones como un conjunto de subrevisiones.
Vamos a diferenciar dos modelos aportando
algunas características:
- Modelo cliente-servidor: Con la llegada de las redes, los desarrolladores usan un repositorio central al que acceden mediante un cliente en su máquina. Con el vuelco causado por las redes públicas (Usenet, UUCP, Internet...) distinguimos entre programas abiertos (código fuente disponible) y propietarios (comerciales):
o Codigo abierto:
§ Concurrent Versions System (CVS) — basado originalmente en RCS, licenciado mediante GPL.
§ Subversion (svn)
— inspirado en CVS.
§ Vesta — sistema de
construcción con soporte para versionado de ficheros en repositorios
distribuidos.
o
Codigo
cerrado:
- AccuRev – herramienta para
gestión de la configuración de código fuente que integra un gestor de
incidencias basado en flujos que maneja de forma eficiente desarrollo
paralelo a escala global.
- CA SCM – herramienta
para gestión de cambios y configuración de Computers Asociates.
§
Autodesk Vault – herramienta de control
de versiones diseñada específicamente para aplicaciones Autodesk que gestionan
las relaciones complejas entre ficheros de diseño elaborados por AutoCAD y
Autodesk Inventor.
§
ClearCase – sistema de gestión de
configuración -compaltible con VSS- fabricado por Rational Software (IBM).
§
codeBeamer – plataforma colaborativa
para la gestión del ciclo de vida de aplicaciones.
(Hay más por si os interesa estas son
solo algunas)
- Modelo distribuido: En el modelo distribuido, cada desarrollador trabaja directamente con su repositorio local, y los cambios se comparten entre repositorios en un paso posterior:
o Codigo abierto:
§
Aegis - escrito por Peter Miller, es un
programa maduro, orientado a sistemas de ficheros, con soporte de red limitado.
§
ArX - escrito por Walter Landry, empezó
como una rama de GNU arch, pero finalmente ha sido totalmente reescrito.
§
Bazaar - escrito en Python por Martin
Pool y patrocinado por Canonical es un sistema descentralizado, que intenta ser
rápido y fácil de usar.
§
Codeville - escrito en Python por Ross
Cohen; usa un algoritmo de injerto innovador.
§
Git - escrito en una combinación de
Perl, C y varios scripts de shell, estuvo diseñado por Linus Torvalds según las
necesidades del proyecto del kernel de Linux; con los requisitos de
descentralización, rápido, flexible y robusto.
§
Mercurial — escrito en Python como un
recambio en software libre de Bitkeeper; descentralizado, que pretende ser
rápido, ligero, portable y fácil de usar.
(Hay más por si os interesa estas son solo algunas)
o Codigo cerrado:
§
BitKeeper — usado en el desarrollo del
Núcleo de Linux (2002 – Abril 2005).
§
Code Co-op — sistema de control de
versiones P2P (puede sincronizar mediante e-mail).
§
Sun WorkShop TeamWare — retirado,
reemplazado por BitKeeper.
§
Plastic SCM — desarrollado por la empresa española Codice Software, trata de dar un mayor soporte al desarrollo paralelo, creación de ramas,
integración (merge) de ramas, seguridad y desarrollo distribuido.
Bastante completo.
ResponderEliminarBuen listado de ejemplos de herramientas.
ResponderEliminarCompleto.
ResponderEliminarGran variedad de herramientas
ResponderEliminaresta bien
ResponderEliminar