SISTEMAS DE CONTROL DE VERSIONES Concepto Los SCV son aplicaciones que guardan en repositorios las versiones de un software generadas en el transcurso de su desarrollo y evolución. Se encargan de gestionar los diferentes estados por los que pasa una aplicación durante todo el periodo de su desarrollo, guardando un historial con todos los cambios realizados entre las versiones. sto representa una importante venta!a para los desarrolladores, ya que estas versiones pueden estar disponibles para m"s part partic icip ipan ante tes s dist distri ribu buid idos os geog geogr" r"fi fica came ment nte, e, prop propic icia iand ndo o que que los los acto actore res s #sta$eholders% puedan contribuir en forma organizada. &dicionalmente, el SCV almacena en un repositorio la fecha y hora de los cambios, as' como el nombre del desarrollador que realizó las modificaciones, destacando las diferencias entre los archivos antes y despu(s de los cambios. l contar con esta información facilita el reconstruir archivos previos cuando sea necesa necesario rio,, as' as' como como dispon disponer er en cualq cualquie uierr momen momento to de las difere diferente ntes s versiones del código fuente )os arquitecturas t'picas son las distribuidas y las centralizadas. Los Los dist distri ribu buid idos os son son m"s m"s habi habitu tual ales es en gran grande des s proy proyec ecto tos s dond donde e los los desarrolladores se encuentran en m*ltiples localizaciones, se da la necesidad de repl replic icar ar los los repo reposi sito tori rios os y dond donde e se prod produc ucen en m*lt m*ltip iple les s rama ramas s que que terminar"n #o no% fusion"ndose con la rama principal. Las centralizadas, por el contrario, son m"s habituales en peque+as empresas yo proyectos donde e-iste una mayor necesidad de traba!o en equipo.
Ventajas de sistemas distribuidos •
• •
•
•
ecesita menos veces estar conectado a la red para hacer operaciones. sto produce una mayor autonom'a y una mayor rapidez. &unque se caiga el el repositorio remoto la gente puede puede seguir traba!ando &l hacer los distintos repositorio una r(plica local de la información de los repositorios remotos a los que se conectan, la información est" muy replicada y por tanto el sistema tiene menos problemas en recuperarse si por e!emplo se quema la m"quina que tiene el repositorio remoto. l servidor remoto requiere menos recursos que los que necesitar'a un serv servid idor or cent centra rali liza zado do ya que que gran gran part parte e del del trab traba! a!o o lo real realiz izan an los los repositorios locales. &l ser los sistemas distribuidos m"s recientes que los sistemas centralizados, y al tener m"s fle-ibilidad por tener un repositorio local y otros remotos, estos sistemas han sido dise+ados para hacer f"cil el uso de ramas ramas #creac #creación ión,, evolu evolució ción n y fusión fusión%% y poder poder aprov aprovech echar ar al
m"-imo su potencial. /or e!emplo se pueden crear ramas en el repositorio remoto para corregir errores o crear funcionalidades nuevas. /ero tambi(n se pueden crear ramas en el repositorio locales para que los usuarios puedan hacer pruebas y dependiendo de los resultados fusionarlos con el desarrollo principal o no. Las ramas dan una gran fle-ibilidad en la forma de traba!o.
Ventajas de sistemas centralizados •
•
n los sistemas distribuidos hay menos control a la hora de traba!ar en equipo ya que no se tiene una versión centralizada de todo lo que se est" haciendo en el proyecto. n los sistemas centralizados las versiones vienen identificadas por un n*mero de versión. Sin embargo en los sistemas de control de versiones distribuidos no hay n*meros de versión, ya que cada repositorio tendr'a sus propios n*meros de revisión dependiendo de los cambios. n lugar de eso cada versión tiene un identificador al que se le puede asociar una etiqueta #tag%.
COMARATIVA ENTRE DI!ERENTES SISTEMAS DE CONTROL DE VERSIONES CVS Concurrent Versions System o simplemente CVS, es un sistema de control de versiones0 mantiene el registro de todo el traba!o y los cambios en los ficheros #código fuente principalmente% que forman un proyecto y permite que distintos desarrolladores #potencialmente situados a gran distancia% colaboren. Sus desarrolladores difunden el sistema ba!o la licencia 1/L. CVS utiliza una arquitectura cliente2servidor0 un servidor guarda las versiones actuales del proyecto y su historial. Los clientes se conectan al servidor para sacar una copia completa del proyecto.
Ventajas • • • • • •
3tiliza arquitectura cliente2servidor. l servidor guarda las versiones y el historial. Los clientes se conectan y hacen una copia completa del proyecto. 4unciona en cualquier sistema operativo. Varias personas pueden sacar una copia al mismo tiempo. /uede mantener distintas ramas de un /royecto.
Des"entajas •
•
• •
o soporta refactorización de sistemas de forma autom"tica o versionadas. Limitada para 35426 3nicode o archivos con contenido diferente &SC77. l protocolo no soporta eliminación de directorios o r enombrarlos. Visual Studio carece de soporte nativo a CVS,
SVN &pache Subversion #SV% es una herramienta de control de versiones libre basada en un repositorio cuyo funcionamiento se aseme!a enormemente al de un sistema de ficheros. s software libre ba!o una licencia de tipo &pache8S). 3tiliza el concepto de revisión para guardar los cambios producidos en el repositorio. ntre dos revisiones sólo guarda el con!unto de modificaciones #delta%, optimizando as' al m"-imo el uso de espacio en disco. SV permite al usuario crear, copiar y borrar carpetas con la misma fle-ibilidad con la que lo har'a si estuviese en su disco duro local. )ada su fle-ibilidad, es necesaria la aplicación de buenas pr"cticas para llevar a cabo una correcta gestión de las versiones del software generado. SV puede acceder al repositorio a trav(s de redes, lo que le permite ser usado por personas que se encuentran en distintas computadoras.
Ventajas
•
Se sigue la historia de los archivos y directorios a trav(s de copias y renombrados. 9odificaciones atómicas.
•
La creación de branch, y tags son operaciones eficientes.
•
Se env'an sólo las diferencias en ambas direcciones.
•
9ane!a eficazmente los archivos binarios.
•
/ermite el bloqueo de archivos.
•
Des"entajas# •
•
l mane!o de cambio de nombres de archivos no es completo. Lo mane!a como la suma de una operación de copia y una de borrado. o resuelve el problema de aplicar repetidamente parches entre ramas, no facilita llevar la cuenta de qu( cambios se han realizado. esto se resuelve siendo cuidadoso con los mensa!es de commit.
$IT 7nicialmente desarrollado Linus 5orvalds, 1it ofrece un tipo diferente de control de versiones, se trata de un sistema de control de versiones distribuido, donde no hay una sola base de código centralizada para obtener el código. Las diferentes ramas tienen diferentes partes del código. :tros sistemas de control de versiones, como SV y CVS, usa el control de versiones centralizado, lo que significa que sólo se usa una copia maestra del software. 1it;ub ha ayudado recientemente a establecer 1it como un gran sistema de control de versiones, ofreciendo una buena interfaz para muchos proyectos grandes, tales como
Ventajas • •
•
•
•
9uy vers"til y con figurable. )istribuido, podemos hace commits en nuestra maquina local, por lo que podemos seguir traba!ando sin cone-ión a 7nternet subir los cambios m"s tarde. <"pido, la mayor'a de operaciones son locales, resolución de conflictos a trav(s de herramientas mergetool y el editor meld. Seguro, se puede traba!ar incluso si el servidor esta ca'do sin perder tiempo de traba!o. La posibilidad de ver r"pidamente la historia del proyecto con el comando git log.
Des"entajas •
Curva de aprendiza!e para los que vienen de SV.
•
9uchos comandos y el significado de los comandos.
•
)isponibilidad, el código esta en un solo repositorio.
•
Comple!idad, recomendado para proyectos grandes.
%azzar 8azaar es un sistema de control de versiones distribuido patrocinado por Canonical Ltd., dise+ado para facilitar la contribución en proyectos de software libre y opensource. /uede ser usado por un usuario *nico traba!ando en m*ltiples ramas de un contenido local, o por un equipo colaborando a trav(s de
la red. 8azaar est" escrito en lengua!e de programación /ython y tiene versiones empaquetadas para la mayor'a de distribuciones 13Linu-, as' como 9ac :S = y 9S >indows. 8azaar es software libre y parte del proyecto 13.
Ventajas •
Se puede utilizar para adaptarse a cualquier tipo de proyecto.
•
s f"cil de modificar muy intuitivo.
•
7ntegrable se puede a+adir proyectos e-istentes.
•
5iene una comunidad fuerte que mantiene las cosas, como plug2ins y bastantes herramientas de terceros como 137 para a+adir interfaces gr"ficas para el sistema.
Des"entajas •
Se traba!a siempre con acceso al servidor remoto.
•
o es muy popular.
•
Consume ancho de banda.
•
stad'sticamente es lento.
•
l Launchpad es nuevo.
Team !oundation Ser"er 9icrosoft Visual Studio 5eam 4oundation Server es un software propietario cuya plataforma de colaboración se encuentra en el n*cleo de la solución de Visual Studio para la administración del ciclo de vida de una aplicación. /roporciona servicios fundamentales como control de versiones, seguimiento de elementos de traba!o y errores, automatización de la compilación y almac(n de datos. 54S es un sistema centralizado que aporta una serie de herramientas que permiten colaborar y coordinar las tareas de un equipo de traba!o para llevar a cabo un proyecto, me!orando la comunicación entre los integrantes. &dem"s, permite la creación de informes, implementación de metodolog'as de procesos, tendencia histórica y visibilidad del estado general del proyecto mediante un panel basado en etiquetas. &dicionalmente, se pueden visualizar m(tricas en tiempo real que alertan sobre potenciales problemas en etapas tempranas del desarrollo de software de modo que se puedan tomar las decisiones basadas en datos y aplicarse las correcciones adecuadas. 54S ofrece interfaces para facilitar la administración y visualización de ramas y mane!o de cambios. Su sistema de reportes est" basado en >indows >or$flow 4oundation ?.@. :tra de las caracter'sticas importantes de 54S es el
almacenamiento de los datos del control de versiones en un servidor de base de datos SAL. s compatible con 1it.
Rational ClearCase s una familia de programas inform"ticos que soporta la gestión de configuración de software #SC9% de código fuente y otros de desarrollo de software activos. 5ambi(n es compatible con la gestión del dise+o, los datos de los artefactos de dise+o electrónico. ClearCase incluye el control de revisión y constituye la base para la gestión de la configuración en las empresas grandes y medianas, con capacidad para proyectos con cientos o miles de desarrolladores. s desarrollado por 789. ClearCase admite dos modelos de gestión de configuración0 3C9 #3nified Change 9anagement% y ClearCase de base. 3C9 proporciona un modelo de salida de la ca!a, mientras que ClearCase base proporciona una infraestructura b"sica #3C9 est" construido sobre la base de ClearCase%. &mbos pueden ser configurados para soportar una amplia variedad de necesidades. ClearCase puede acomodar grandes archivos binarios, un gran n*mero de archivos, y grandes tama+os de repositorio. s compatible con ramificaciones, etiquetado y control de versiones de directorios.
Mercurial 9ercurial es un sistema de control de versiones multiplataforma, para desarrolladores de software. st" implementado principalmente haciendo uso del lengua!e de programación /ython, pero incluye una implementación binaria de diff escrita en C. 9ercurial fue escrito originalmente para funcionar sobre 13Linu-. ;a sido adaptado para >indows, 9ac :S = y la mayor'a de otros sistemas tipo 3ni-. 9ercurial es, sobre todo, un programa para la l'nea de comandos. 5odas las operaciones de 9ercurial se invocan como opciones dadas a su programa motor, hg #cuyo nombre hace referencia al s'mbolo qu'mico del mercurio%. Las principales metas de desarrollo de 9ercurial incluyen un gran rendimiento y escalabilidadB desarrollo completamente distribuido, sin necesidad de un servidorB gestión robusta de archivos tanto de te-to como binarioB y capacidades avanzadas de ramificación e integración, todo ello manteniendo sencillez conceptual. 7ncluye una interfaz web integrada.
l código fuente se encuentra disponible ba!o los t(rminos de la licencia 13 1/L versión , lo que clasifica a 9ercurial como software libre.
Ventajas •
<"pido escalable.
•
9"s simple que 1it.
•
•
•
o hay tantas funciones para aprender, son similares a los otros sistemas. Viene equipado con una interfaz >eb independiente y una amplia documentación en la comprensión de mercurial. s liviano.
Des"entajas •
Solo se usa en proyectos grandes.
TA%LAS COMARATIVAS ENTRE SISTEMAS DE CONTROL DE VERSIONES
Tabla Comparati"a $eneral e In&ormaci'n T(cnica de SCV Herramient a
Primer a Versió n
Precio/Lic encia
Tipo Repositorio
Identifcaci ón de Revisiones
Alcance cambio
Historia cambios
CVS SVN
1990 2000
GIT
200!
GPL Apache Licence GPL"2
Centralizado Centralizado
Números Números
Fichero Árbol
#istrib$ido
%A&1 hashes Pse$doalea torio Números
Árbol
Changeset Changeset/ napshot napshot
a!!ar
200'
GPL
#istrib$ido
Árbol
napshot
Team"o#nd ation Rational ClearCase
200(
)1199
1992
$erc#rial
200!
),(00 por licencia GPL
Centralizado/#is trib$ido Centralizado
Fichero * Árbol Fichero
Changeset
Árbol
Changeset
#istrib$ido
de
Números %A&1 hashes
de
Changeset
Tabla Comparati"a de Opciones s s t o i c i m m m o ' t C A
)erramienta
CVS SVN GIT a!!ar Team"o#nd ation Rational ClearCase $erc#rial
e d o + d s a r o b r e * m c o i n & e R
e d s o n r ' e i s * c u i & ! s o d a
l o e i d r o a t i c s i l o p p ( e R r
l e o d i r o s t o i s s i o m r p e e r
c a z i l a n o n i c ' i a n r e t n I
a i r o o t s o r i e * * e i c d & a l z e a r d T
e d o c i n ,
No i i i i
No i Parcial i i
No No i i i
No No i i i
Parcial No i i i
i i i i i
No i Parcial i i
No i Parcial i i
Parcial
i
i
No
i
i
i
i
i
i
i
i
i
i
i
No
Tabla comparati"a - Comandos b.sicos Herrami enta
CVS SVN GIT a!!ar Team"o #ndatio n Rational ClearCa se $erc#ri al
e n o l c
l l u p
* s u
-
-
-
-
-
-
-
-
t i n i
t u o / c e * c
e t a d p u
/ c o l
d d a
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
* c n a r b
-
-
-
-
-
e " o m e r
e " o m
+ p o c
-
t i m m o c
t r e " e r
-
-
-
-
-
-
-
-
-
-
-
-
e 0 r e m
%I%LIO$RA!1A
https0es.wi$ipedia.orgwi$iCVS
https0www2DD.ibm.comsoftwarehowtobuybuyingtoolspae-press-pressE /@FDGpartHnumberF)IJDILL,)@8;DLL,)@8;LLGcatalogLocaleFesHSGLo caleFnullGcountryFS/G/5FhtmlGSH5&C5FnoneGSHC9/FnoneGbrandFrat
https0www.visualstudio.comproductshow2to2buy2vs
https0es.wi$ipedia.orgwi$i8azaarH#software%
https0es.wi$ipedia.orgwi$i1it
http0web.usbmed.edu.cousbmedfingvJnDvJnDaK.pdf
https0es.wi$ipedia.orgwi$i9icrosoftHVisualHSourceSafe
http0www.aeipro.comfilescongresos@DDhuescaC77/DDHJK@H[email protected]?J.pd f
https0en.wi$ipedia.orgwi$i5eamH4oundationHServer
https0es.wi$ipedia.orgwi$iControlHdeHversiones
https0es.wi$ipedia.orgwi$i9ercurial
https0en.wi$ipedia.orgwi$iComparisonHofHversionHcontrolHsoftware
http0tratandodeentenderlo.blogspot.pe@@KDcontrol2de2versiones2con2 clearcase.html
http0[email protected]softwareproductsesclearcase
https0portfoliogabrielfcr.wordpress.com@DJD@I