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