Está en la página 1de 18

Control de Versiones

con Subversion

Caractersticas de un soft de control de versiones


Mecnismo para almacener los elementos que gestiona (cdigo fuente, imgenes, binarios, etc) Posibilidad de realizar cambios sobre los elementos almacenados (modificaciones parciales, aadir, borrar, mover, renombrar, etc) Mantener un registro de las acciones realizadas sobre los elementos almacenados (pudiendo devolver un elemento a un estado anterior, comparar en algunos casos, etc) Documentar las acciones realizadas sobre los elementos almacenados

Tipos de soft de control de versiones


Centralizados, existe un repositorio general (CVS - GNU, Subversion - GNU, ClearCase Rational/IBM, Visual SourceSafe Microsoft) Distribuidos (Git, Mercurial)

Modos de funcionamiento
REPOSITORIO COPIA LOCAL

SERVIDOR SubVersion

Exclusivos: para poder realizar un cambio es necesario marcar en el repositorio el elemento que se desea modificar y el sistema se encargar de impedir que otro usuario pueda modificar dicho elemento. Colaborativos: en el que cada usuario se descarga la copia la modifica y el sistema automticamente mezcla las diversas modificaciones. El principal problema es la posible aparicin de conflictos que deban ser solucionados manualmente o las posibles inconsistencias que surjan al modificar el mismo fichero por varias personas no coordinadas. Adems, esta semntica no es apropiada para ficheros binarios.

El repositorio Sistema Centralizado


Lugar donde se almacenan los archivos Se controlan las versiones y se establecen comentarios sobre las versiones Se encuentra en el servidor Puede ser: sistema de archivos, base de datos, etc. Tambin se le conoce en otros sistemas como depsito o depot, en subversion y cvs como repository o repositorio.

Terminologa de inicio
Revisin ("version): Una revisin es una versin determinada de un archivo. Exportacin ("export"): Una exportacin crea un rbol de directorios limpio sin los archivos propios de control del CVS. Importacin ("import"): Una importacin es la accin de copia un rbol de directorios local (que no es en ese momento una copia de trabajo) en el repositorio por primera vez.

Operaciones bsicas
REPOSITORIO

CHECK-IN CHECK-OUT

COPIA LOCAL

SERVIDOR SubVersion
-Check-in o commit (publicar,enviar,submit,ci,install): Un commit sucede cuando una copia de los cambios hechos a una copia local es escrita o integrada sobre el repositorio. -Check-out o update (sync): Un despliegue crea una copia de trabajo Local desde el repositorio. Se puede especificar una revisin concreta, y por defecto se suele obtener la ltima.

Conflictos de cambio
index.php v1 index.php v1

CHECK-OUT
index.php v1

SERVIDOR SubVersion

CHECK-OUT

Dos usuarios actualizan (check-out) desde el repositorio el archivo index.php

Conflictos de cambio
index.php modificado index.php v2

CHECK-IN
index.php v1

SERVIDOR SubVersion

Uno de los usuarios, realiza modificaciones sobre el archivo index.php. Y lo sube al servidor realizando un Check-in o commit (confirmacin). El software cliente comprueba que la ltima copia local del usuario se corresponda con la versin 1 del archivo, y en el repositorio est la misma versin 1, por lo tanto se pueden subir los nuevos cambios al repositorio en el servidor. En el repositorio el archivo ahora ser la revisin o versin 2.

Conflictos de cambio
index.php v2 index.php v2

CHECK-IN

index.php - modificado

SERVIDOR SubVersion

Otro usuario que tena una versin 1 del archivo realiza una modificacin, sobre las misma lneas que la realizada por el anterior usuario. El usuario realiza un check-in o confirmacin de sus cambios, sin antes realizar un check-out para comprobar si alguien a modificado algo. El software comprueba que la ltima versin conocida era la v1, pero en el servidor esta la v2, por lo tanto hay cambios que en la copia local modificada no se encuentra, as que se produce un CONFLICTO DE CAMBIO.

Resolucin de conflicto
El usuario al que se le presenta el conflicto debe resolverlo, eligiendo una versin anterior y desechando la suya, o combinando (modificando el archivo) para solventarlo. En la resoluciones de conflicto cada software presenta las opciones de solucin a su modo.

Otros trminos
Branch o tag: Un mdulo o software puede ser branched o bifurcado en un momento de tiempo de forma que, desde ese momento en adelante, dos copias de esos ficheros puedan ser desarrolladas a diferentes velocidades o de diferentes formas, de modo independiente. El programa tiene entonces 2 (o ms) "ramas". Por ejemplo tener una versin Stable, y una versin Posterior en desarrollo.

Otros trminos
Integracin, fusin o merge: Una integracin o fusin une dos conjuntos de cambios sobre un fichero o un conjunto de ficheros en una revisin unificada de dicho fichero o ficheros.

Forma de trabajo
REPOSITORIO

CHECK-IN CHECK-OUT

REPOSITORIO LOCAL

SERVIDOR SubVersion

SOLO SUBIR

SERVIDOR WEB

TortoiseSVN
Cliente de Subversin Se integra con el Explorador de archivos til para programas que no integran cliente de SVN

TortoiseSVN

TortoiseSVN - RepoBrowser
Permite ver el repositorio remoto Boton derecho en el Explorador TortoiseSVN -> Repo-Browser Cadena de conexin: svn://10.136.61.162

TortoiseSVN
FTP:\Desarrollo\TortoiseSVN

También podría gustarte