Está en la página 1de 2

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA


EDUCACIÓN UNIVERSITARIA
DESARROLLANDO LINKS DE INTERÉS UNIVERSIDAD ALEJANDRO DE HUMBOLDT

SOFTWARE Para documentación:

El desarrollo de so
ware no es una CVS : hAp://www.nongnu.org/cvs/
tarea exclusivamente individual. En la gran Subversion : hAp://subversion.%gris.org/
mayoría de los proyectos tanto Open Source
Mercurial : hAp://mercurial.selenic.com/wiki/
como privados, es necesario trabajar en
Git : hAp://git-scm.com/documenta%on
equipos en donde son varios los desarrolla-
dores que acceden al mismo código fuente.

Coordinar las modificaciones concu-


CONTROL DE
rrentes al código de una forma manual Para descargas:
puede ser una tarea extremadamente di$cil,
sobre todo en proyectos muy complejos o
con una gran can%dad de desarrolladores.
CVS : hAp://
p.gnu.org/non-gnu/cvs/ VERSIONES
Subversion : hAp://www.visualsvn.com/server/
Los sistemas de control de versiones Mercurial : hAp://mercurial.selenic.com/downloads/
son potentes herramientas que permiten Git : hAp://git-scm.com/download
ges%onar de forma automá%ca los diversos
cambios que se realizan sobre el so
ware
que se esté desarrollando. Existe gran can%-
dad de sistemas de control de versiones en
el mercado, tanto en So
ware Libre como
con licencia. De estos sistemas se podrían
mencionar el CVS, Subversion, Mercurial,
Git, entre otros.

Ingeniería del So
ware Expositor:

Sección 501 Rojas, Miguelangel

Caracas, abril 2011


CONCEPTOS BÁSICOS SISTEMAS DE CONTROL DE VERSIONES SISTEMAS DE CONTROL DE VERSIONES
MAS POPULARES
Versión: Es el estado en el que se encuentra un producto de Aunque es posible controlar las versiones de un producto de so
-
so
ware en un momento dado de su desarrollo o modifica- ware de forma manual, es mas eficaz hacerlo u%lizando herramientas CVS: El Concurrent Versions System (CVS) es un sistema de
ción. También se le llama revisión. control de versiones que u%liza una arquitectura cliente-servidor: un
diseñadas para tal fin, sobre todo en proyectos complejos o que ameri-
Control de Versiones: Es la ges%ón de los diversos cambios ten múl%ples desarrolladores. Estas herramientas %enen como obje%- servidor guarda la(s) versión(es) actual(es) del proyecto y su historial.
que se realizan sobre los elementos de algún producto de Los clientes se conectan al servidor para sacar una copia completa
vos principales, brindar un ambiente propicio que permita mezclar
so
ware o una configuración del mismo. del proyecto. Esto se hace para que eventualmente puedan trabajar
dis%ntos cambios al código para consolidar un código único final de
Configuración: Es una combinación de versiones par%culares con esa copia y más tarde ingresar sus cambios con comandos GNU.
una forma automa%zada, siempre que sea posible. Así como mantener Generalmente cliente y servidor se conectan u%lizando Internet, pero
de los componentes que forman un so
ware consistente.
un registro de los cambios que se realicen al código fuente de tal ma- con el sistema CVS el cliente y servidor pueden estar en la misma
Cambio: Es el paso de una versión de la línea base a la si- nera que se tenga acceso a todo el historial de cambios del proyecto y máquina. El sistema CVS %ene la tarea de mantener el registro de la
guiente. Puede incluir modificaciones del contenido de algún
se puedan rever%r cambios en caso de ser necesario. historia de las versiones del programa de un proyecto solamente con
componente, y/o modificaciones de la estructura del siste-
desarrolladores locales.
ma, añadiendo o eliminando componentes.
FUNCIONAMIENTO En el CVS, varios clientes pueden sacar copias del proyecto al
Línea Base: Es una configuración opera%va del so
ware, a
mismo %empo. Posteriormente, al hacer commit, el servidor trata de
par%r del cual se pueden realizar cambios.
acoplar las diferentes versiones. Si se presenta algún conflicto, el
Módulo: Conjunto de directorios y/o archivos dentro del Todos los sistemas de control de versiones poseen un repositorio servidor deniega la segunda actualización e informa al cliente sobre
repositorio, que pertenecen a un proyecto común. el cual con%ene el historial de versiones del so
ware desarrollado. el conflicto, para que sea resuelto manualmente. Si el commit es
Tag: Es una e%queta para una colección par%cular de ficheros Cada uno de los usuarios puede crearse una copia local duplicando exitoso, los números de versión de todos los archivos implicados se
en una revisión específica. Los tags son u%lizados para pre- el contenido del repositorio para permi%r su uso. Es posible duplicar la incrementan automá%camente y el servidor CVS almacena informa-
servar capturas importantes del proyecto. úl%ma versión o cualquier versión almacenada en el historial. Este ción sobre la actualización, que incluye una descripción suministrada
proceso se suele conocer como checkout o desproteger. Para modificar por el usuario, la fecha y el nombre del autor y sus archivos log.
Tronco: Es la variante principal en el desarrollo de un so
wa- la copia local existen dos semán%cas básicas:
re. Subversion es un sistema de control de versiones diseñado
Exclusivos: para poder realizar un cambio es necesario marcar en el específicamente para reemplazar al popular CVS. Es so
ware libre y
Rama: Son las variantes secundarias en el desarrollo de un repositorio el elemento que se desea modificar y el sistema se encarga- se le conoce también como svn por ser el nombre de la herramienta
so
ware. Es una copia del proyecto, bajo el control de versio- rá de impedir que otro usuario pueda modificar dicho elemento. u%lizada en la línea de órdenes. Una caracterís%ca importante de
nes, pero aislado, de forma que los cambios realizados en Colaboravos: En el que cada usuario se descarga la copia, la modifica, Subversion es que, a diferencia de CVS, los archivos versionados no
esta rama no afecten al resto del proyecto y vice versa. Tam- y el sistema automá%camente combina las diversas modificaciones. El %enen cada uno un número de revisión independiente, en cambio,
bién se les conoce como "línea de Desarrollo". principal problema es la posible aparición de conflictos que deban ser todo el repositorio %ene un único número de versión que iden%fica
Variante: Es una versión de un componente (o de la configu- solucionados manualmente o las posibles inconsistencias que surjan al un estado común de todos los archivos del repositorio en un instante
ración global) que evoluciona por separado. modificar el mismo fichero por varias personas no coordinadas. Ade- determinado.
Fusión de variantes: Una integración o fusión une dos con- más, esta semán%ca no es apropiada para ficheros binarios. Mercurial: Está implementado principalmente haciendo uso del
juntos de cambios sobre un fichero o un conjunto de ficheros Tras realizar la modificación es necesario actualizar el repositorio lenguaje de programación Python, pero incluye una implementación
en una revisión unificada de dicho fichero o ficheros. con los cambios realizados. Habitualmente este proceso se denomina binaria de diff escrita en C. Mercurial fue escrito originalmente para
Repositorio: es el lugar en el que se almacenan los datos publicar, commit, check in o proteger. funcionar sobre Linux. Ha sido adaptado para Windows, Mac OS X y
actualizados e históricos, a menudo en un servidor. A veces la mayoría de otros sistemas %po Unix. Las principales metas de
se le denomina depósito o depot. Puede ser un sistema de desarrollo de Mercurial incluyen un gran rendimiento y escalabilidad;
CLASIFICACIÓN
archivos en un disco duro, una base de datos, etc. desarrollo completamente distribuido, sin necesidad de un servidor;
ges%ón robusta de archivos tanto de texto como binarios; y capacida-
Desplegar (Checkout): Consiste en crear una copia de trabajo
Centralizados: Existe un repositorio centralizado de todo el códi- des avanzadas de ramificación e integración, todo ello manteniendo
local desde el repositorio.
go, del cual es responsable un único usuario (o conjunto de ellos). Se sencillez conceptual. Incluye una interfaz web integrada. Al igual que
Publicar (Commit, check-in, submit): Consiste en integrar los facilitan las tareas administra%vas a cambio de reducir flexibilidad, git y Monotone, Mercurial usa resumenes SHA-1 para iden%ficar
cambios realizados a una copia local del proyecto, en el pues todas las decisiones fuertes (como crear una nueva rama) necesi- revisiones. Para el acceso a repositorios mediante red, Mercurial usa
repositorio. tan la aprobación del responsable. Ejemplos: CVS y Subversion un protocolo eficiente, basado en HTTP, que persigue reducir el
Actualización (Sync, update): Consiste en actualizar la copia Distribuidos: Cada usuario %ene su propio repositorio. No es tamaño de los datos a transferir, así como la proliferación de pe%cio-
local del trabajo, con los cambios realizados en el repositorio necesario tomar decisiones centralizadamente. Los dis%ntos reposito- nes y conexiones nuevas. Mercurial puede funcionar también sobre
después que se realizó el checkout. rios pueden intercambiar y mezclar revisiones entre ellos. Ejemplos: ssh, siendo el protocolo muy similar al basado en HTTP.
Conflicto: Sucede cuando dos o más personas intentan reali- Git y Mercurial.
zar diferentes cambios en la misma porción de código.

También podría gustarte