sábado, 8 de enero de 2011

SUBVERSION





SUBVERSION

¿Qué es un sistema de control de versiones?

Ø Sistema para mantener el seguimiento durante el desarrollo.

Ø Se basa en las revisiones incrementales de los ficheros.

Ø Permite obtener cualquier versión/revisión en cualquier momento.

Ø Permite trabajar de forma concurrente a varios desarrolladores.

Ø Añade información y comentarios al efectuar cambios.

Ø Es independiente del contenido.

Ø Puede funcionar en red o localmente.

Ø Es ´útil en desarrollos pequeños (de 1 desarrollador) como en grandes

Ø (de varios).

¿Qué no es?

· No es un compilador (gcc, g++, javac, mcs, etc).

· No construye aplicaciones (make, ant, jam, etc).

· No elimina el coordinador de proyecto (el jefe).

· No elimina la comunicación entre usuarios (mail, gforge).

· No lleva control de bugs (bugzilla).

· No es un depurador (gdb, ddd).

· No prueba aplicaciones (unit).

Términos Importantes

Repositorio: Lugar de almacenamiento de los datos de uno o varios proyectos. Es un directorio en alguna maquina (por ejemplo: /var/lib/svn).

Modulo: Es un directorio especifico del repositorio. Puede identificar una parte del proyecto o ser un proyecto en sí.

Revisión: Cada una de las versiones parciales o cambios en los Ficheros o repositorio completo. La evolución del sistema de versiones se mide en revisiones. Cada cambio se considera incremental.

Etiqueta: Información textual que se añade a un conjunto de ficheros (o a un módulo completo) para indicar algún hito importante (por Ejemplo: VERSION 0 1)

Rama: Revisiones paralelas de un módulo para efectuar cambios sin

Tocar la evolución principal. Se puede emplear para pruebas o para

Mantener cambios en versiones viejas.

Operaciones Básicas

Import Envía la primera copia de un módulo. Sólo se hace una vez.

Commit Manda los cambios locales al repositorio. Sacar datos del repositorio:

Check-out Descarga una versión de trabajo a tu máquina. Sólo se hace una vez.

Update Actualiza en la copia local los cambios del repositor

ESENARIO


Subversión

Concepto.-Subversión es un sistema de control de versiones muy parecido al conocido CVS.Aparece para suplir las limitaciones de este. Esta empezando a ser adoptado por muchos desarrolladores libres.

Mantiene un repositorio centralizado.

Permite múltiples desarrolladores.

Es independiente del contenido.

Admite ficheros binarios sin problema.

Características

Ø Las revisiones se hacen sobre todo el árbol de directorios.

Ø Varios cambios (cambiar/Anadir/borrar) pueden ir dentro de una misma revisión.

Ø Las diferencias almacenadas son binarias. El tratamiento de los ficheros binarios es igual al de los ficheros de texto.

Ø La copia/movimiento de ficheros no es una operación costosa.

Tipos de servidores

Los servidores están identificados por una URL. El funcionamiento local o por red es idéntico: solo cambia la URL. Estos son los Protocolos soportados:

v file:/// Acceso directo al repositorio (en el disco local).

v http:// Acceso vía protocolo WebDAV.

v https:// Igual que http://, pero con cifrado SSL.

v svn:// Acceso vía un protocolo personalizado a un servidor svnserve.

v svn+ssh:// Lo mismo que svn://, pero a través de un túnel SSH.

Estructura de los módulos

Para simplificar la utilización de etiquetas y ramas, los módulos suelen tener tres directorios básicos:

trunk: Directorio para el código fuente.

tags: Directorio para las etiquetas.

branches: Directorio para las ramas.

Crear un repositorio

$ svnadmin create /tmp/svn

El fuente no tiene estructura de modulo, puedes usar svn mkdir.

Es conveniente tener un módulo por repositorio (Pero no necesario).

Introducir datos

Opción import:

$ svn import file:///tmp/svn

Adding trunk

Adding trunk/fichero2.txt

Adding trunk/fichero3.txt

Adding (bin) trunk/fichero4.bin

Adding trunk/fichero1.txt

Adding branches

Adding tags

Committed revision 1.

Bajar copia de trabajo

Opción checkout o co:

$ svn co file:///tmp/svn/trunk modulo

A modulo/fichero2.txt

A modulo/fichero3.txt

A modulo/fichero4.bin

A modulo/fichero1.txt

Checked out revision 1.

Realizar cambios

Puedes:

· Editar ficheros.

· Anadir ficheros (add).

· Copiar ficheros (copy).

· Renombrar ficheros (move).

· Borrar ficheros (delete).

Ejemplo:

$ svn add fichero5.txt

A fichero5.txt

Actualizar copia de trabajo

Opci´on update:

$ svn update

U fichero1.txt

A fichero5.txt

Updated to revision 2.

Subir cambios

Opci´on commit o ci:

$ svn ci

Sending fichero1.txt

Adding fichero5.txt

Transmitting file data ..

Committed revision 2.

CONFLICTOS


VENTAJAS DE SUBVERSION

Es un “sistema de control de versiones” que Almacena ficheros en un servidor central.

Mantiene el historial (diferencial) completo de los datos: nunca se pierde nada.

Ø Es genérico:

Ø código fuente

Ø imágenes

Ø documentos

Ø Lo que sea!

Ø Es maduro y estable, buen soporte.

Ø Es multiusuario.

Modificas tus archivos.

Ø Decides subir los archivos al servidor común.

Ø Descubres que otro compañero ha modificado cosas en los mismos archivos.

Ø Te das cuenta de las horas que supone integrar sus cambios con los tuyos.

Ø Corres en círculos y te tiras por la ventana.

Ø Modificas tus archivos. ...

Ø Decides subir los archivos al repositorio.

Ø Subversión descubre que otro compañero ha modificado cosas en los mismos archivos.

Ø Subversión integra tus cambios con los de tu compañero y los sube al servidor.

Ø siempre puedes revisar los datos antes de que se suban al repositorio

Ø Antes de subir nada, svn siempre comprueba si otra persona ha tocado el repositorio.

REFERENCIAS

http://svnbook.red-bean.com/

http://www.sindominio.net/quique/Traducciones/subversion personal.html

No hay comentarios:

Publicar un comentario