Subversion: Desarrollo colaborativo



Documentos relacionados
Subversion: Desarrollo colaborativo

Sistemas de Control de Versiones CVS y Subversion

Contenido. Curso de subversion. Problemas comunes. Problemas: Situación: Introducción a los sistemas de control de versiones

Programas que permiten gestionar un repositorio de archivos y sus distintas versiones Utilizan una arquitectura cliente-servidor

Control de versiones con Subversion

Subversion (SVN) Sistema de Control de Versiones Sucesor de CVS

Tema 12 Control de versiones

La tortuga y los documentos: Tortoise + Subversion

Enginyeria del Software III ( ) CONTROL DE VERSIONES CON SUBVERSION. Roberto García Despatx EPS 3.15

Capacitación: Control de versiones con SVN

GIT Dinahosting 3. Hola!

REPOSITORIOS. Ing. Ismael Castañeda Fuentes, MSc Grupo de Investigación UNBD Universidad Nacional de Colombia Marzo de 2011

Control de versiones con Subversion. Martín Gaitán y Pablo Martínez FCEFyN, Universidad Nacional de Córdoba Junio de 2007

SUBVERSION Y SUBCLIPSE

1. Creación del repositorio

Control de Versiones Utilizando SVN

Desarrollo de software en comunidad: Forja de código + Subversion (SVN)

Tutorial: Primeros Pasos con Subversion

Control de Versiones

Control de Versiones con Subversion

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net

CVS Concurrent Versions System Manual de Usuario

TortoiseSVN: Manual de usuario

Subversion como herramienta para el control del versiones

Control de versiones con Subversion. Lic. Renato Cherini Laboratorio de Testing y Calidad de Software

Subversion personal. Para qué sirve Subversion?

Sistemas de Control de Versiones

Manejo y gestión del Campus Virtual para tareas colaborativas

Historial de Versiones: Velneo vversion. Funcionamiento. Repositorio de versiones. Funcionalidades del Historial de Versiones. Bloquear.

Eclipse. Eclipse es un armazón (workbench) sobre el que se pueden montar herramientas de (JDT, CDT, PDT, ).

Como Publicar Videos en YouTube. Cómo publicar en YouTube? Selecciona su idioma

Uso practico de CVS para control de versiones

Manual de usuario del Directorio Activo

Índice 1 Instalación de la herramienta 2 Descripción de la herramienta 2 Arranque de la aplicación 3 Proyecto 4 Diagrama de clases 5

Qué es un sistema de control de versiones y cómo afecta directamente en vuestra felicidad?

Programación estructurada (Interfaces Windows y Unix)

Sistema de Control de Versiones CVS

Desarrollo de Sage Como modificar y mejorar el programa. Miguel Angel Marco Buzunariz Jarandilla de la Vera 1 de Junio de 2014

Control de Versiones con Subversion y TortoiseSVN

Administración avanzada de paquetes. apt-proxy.

Instructivo para descarga del código fuente

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

Implementación CAPÍTULO 4

Para poder acceder al sistema sólo deberá ingresar la siguiente liga desde el navegador de su preferencia:

Modelo de actualización y soporte

SIMPLESFONDOS. Contenido

SVN MANUAL DE FORMACIÓN. Proyecto MigraFLOSS CENATIC Telefónica Soluciones. Universidad Rey Juan Carlos Universidad de León

Jornadas de Introducción a la Ingeniería + Trabajo en Grupo = Herramientas de Gestion de Proyectos Software

Sistemas de Control de Fuentes. Website

Gestión de la configuración en el software (SCM) Ingeniería de software Eduardo Ferreira, Martín Solari

COPIA DE SEGURIDAD

Enterprise Architect y UML Básico

GENERACIÓN DE REMESAS DE EFECTOS

Herramienta de Control de Versiones : Elisa Herrmann Ingeniería del Software de Gestión. Subversion

Guía de Navegación. Práctica Piloto. Guía de Navegación Plataforma Wikos lms Especialista en Java/J2EE sobre FWPA. Página 1 de 12

Estimado usuario. Tabla de Contenidos

Sistemas de Operación II

Manual Usuario Wordpress. Índice

OPERACIONES BASICAS. 1. Menú. 2. Barra de Herramientas. 3. Área de trabajo. 3.1 Operaciones Básicas. Revisión 3.0

MANUAL DE USUARIO Guía de Gestión de la Configuración con Subversion

Google Drive. Registro y gestión de archivos. Manual de uso

Centro de Soporte [MANTENIMIENTO PREVENTIVO DE SOFTWARE]

UNIVERSIDAD TECNOLOGICA CENTROAMERICANA

GUÍA DE MIGRACIÓN Y USO GUÍA DE MIGRACIÓN Y USO DE PROYECTOS NO-ATLAS CON SUBVERSION (Framework 2, FW Justicia)

Manual del alumno Aula Virtual Puertos de Tenerife.

Instantáneas o Shadow Copy

UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) 5º Ingeniería Informática Ingeniería del software II Curso 2009/10

NORMA (SEPA) 22/11/2013

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005

Studium, Campus Virtual de la Universidad de Salamanca.

4. CONTENIDO Cómo Añadir Contactos a tu Webmail

INSTRUCTIVO DEL COMANDO MAKE

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento

Instalación de IPv6 en plataformas FreeBSD

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

Microsoft Excel. El Documento Excel. Interfase de Programa. Celdas

Gestión Documental con Microsoft Office SharePoint Server 2007 (MOSS) Ignacio López - Ingeniero en Informática Software Architect en Alhambra-Eidos

Módulo 8: Ofimática básica. Unidad didáctica 4: Introducción y modificación de datos. Access

DATOS IDENTIFICATIVOS:

Proyectos de Innovación Docente

Webs para viajes de Grupos

Factura electrónica. Guía rápida. Versión 2.0 (Noviembre 2014)

Introducción al uso de

Upgrade Plataforma e-ducativa Versión

En la siguiente imagen se muestra la pantalla principal del portafolio de un usuario que será utilizado para explicar cada aspecto del mismo.

MANUAL DE AYUDA MÓDULO PDA ALMACEN E INVENTARIO

Manual de wiki Cap. 3. Gestión Pág. 1. Manual de wiki. Capítulo 3. Gestión. Reconocimiento-NoComercial-CompartirIgual 2.5 España

Transcripción:

Subversion: Desarrollo colaborativo Jesús Espino García Jornadas de Software Libre de la Universidad Autonoma de Madrid 2007 7 de Marzo de 2007 Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 1 / 34

Introducción Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 2 / 34

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). Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 3 / 34

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). Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 4 / 34

Vocabulario 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 si. 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. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 5 / 34

Vocabulario 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 si. 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. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 5 / 34

Vocabulario 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 si. 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. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 5 / 34

Vocabulario Etiqueta: Información textual que se añade a un conjunto de ficheros (o a un modulo completo) para indicar algún hito importante (por ejemplo: VERSION 0 1). Rama: Revisiones paralelas de un modulo para efectuar cambios sin tocar la evolución principal. Se puede emplear para pruebas o para mantener cambios en versiones viejas. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 6 / 34

Vocabulario Etiqueta: Información textual que se añade a un conjunto de ficheros (o a un modulo completo) para indicar algún hito importante (por ejemplo: VERSION 0 1). Rama: Revisiones paralelas de un modulo para efectuar cambios sin tocar la evolución principal. Se puede emplear para pruebas o para mantener cambios en versiones viejas. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 6 / 34

Operaciones Básicas Introducir datos en el repositorio: Import Envía la primera copia de un modulo. 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 maquina. Sólo se hace una vez. Update Actualiza en la copia local los cambios del repositorio. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 7 / 34

Operaciones Básicas Introducir datos en el repositorio: Import Envía la primera copia de un modulo. 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 maquina. Sólo se hace una vez. Update Actualiza en la copia local los cambios del repositorio. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 7 / 34

Comentarios Cada operación debe comentarse. Indica que problema resuelve o que característica añade. Sirven para informar al resto de los usuarios y para el seguimiento de las versiones. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 8 / 34

Escenario Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 9 / 34

Subversion Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 10 / 34

Subversion Subversion 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. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 11 / 34

Características Las revisiones se hacen sobre todo el árbol de directorios. Varios cambios (cambiar/añadir/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. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 12 / 34

Tipos de servidores Los servidores están identificados por una URL. El funcionamiento local o por red es idéntico: solo cambia la URL. Protocolos soportados: file:/// Acceso directo al repositorio (en el disco local). http:// Acceso vía protocolo WebDAV. https:// Igual que http://, pero con cifrado SSL. svn:// Acceso vía un protocolo personalizado a un servidor svnserve. svn+ssh:// Lo mismo que svn://, pero a través de un túnel SSH. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 13 / 34

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. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 14 / 34

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. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 14 / 34

Crear un repositorio $ svnadmin create /tmp/svn El fuente no tiene estructura de modulo, puedes usar svn mkdir. Es conveniente tener un modulo por repositorio (Pero no necesario). Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 15 / 34

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. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 16 / 34

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. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 17 / 34

Realizar cambios Puedes: Ejemplo: Editar ficheros. Añadir ficheros (add). Copiar ficheros (copy). Renombrar ficheros (move). Borrar ficheros (delete). $ svn add fichero5.txt A fichero5.txt Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 18 / 34

Subir cambios Opción commit o ci: $ svn ci Sending fichero1.txt Adding fichero5.txt Transmitting file data.. Committed revision 2. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 19 / 34

Actualizar copia de trabajo Opción update: $ svn update U fichero1.txt A fichero5.txt Updated to revision 2. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 20 / 34

Conflictos Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 21 / 34

Resolución de conflictos $ svn ci Sending fichero1.txt svn: Commit failed (details follow): svn: Out of date: /trunk/fichero1.txt in transaction 6 $ svn update C fichero1.txt Updated to revision 3. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 22 / 34

Resolución de conflictos Primero se edita el fichero: <<<<<<<.mime Esto es mi cambio local ======= Este es el cambio en el servidor >>>>>>>.r3 Después se da como resuelto el conflicto: $ svn resolved fichero1.txt Resolved conflicted state of fichero1.txt Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 23 / 34

Subidos en las ramas Para Subversion las ramas y los tags son iguales. Funcionan igual que una copia. Se copia el directorio trunk a branches/rama o tags/etiqueta. Si modificas algo en el nuevo directorio será una rama, en caso contrario una etiqueta. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 24 / 34

Subidos en las ramas $ svn copy file:///tmp/svn/trunk file:///tmp/svn/tags/0.1 Committed revision 4. $ svnlook tree /tmp/svn grep / / trunk/ branches/ tags/ 0.1/ Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 25 / 34

Generar un tarball $ svn export file:///tmp/svn/tags/0.1 version-0.1 A version-0.1 A version-0.1/fichero2.txt A version-0.1/fichero3.txt A version-0.1/fichero5.txt A version-0.1/fichero4.bin A version-0.1/fichero1.txt Exported revision 4. $ tar -zcf version-0.1.tar.gz version-0.1/ Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 26 / 34

Keywords Las keywords son etiquetas que se sustituyen dentro de los ficheros por su valor cuando este es exportado: $LastChangedDate$ o $Date$ $LastChangedRevision$ o $Rev$ $LastChangedBy$ o $Author$ $HeadURL$ $Id$ Es necesario activarlas: $ svn propset svn:keywords "Date Author" * Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 27 / 34

Operación log La operación log nos permite: Ver los comentarios de los cambios sobre un repositorio: $ svn log Ver los comentarios de los cambios que han afectado a un fichero: $ svn log fichero2.txt Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 28 / 34

Operación diff La operación diff nos permite: Ver los cambios realizados sobre el repositorio desde una revisión: $ svn diff -r 3 Ver los cambios realizados sobre un fichero entre dos revisiones: $ svn diff -r 2:4 fichero1.txt Ver los cambios realizados entre dos ramas o tags: $ svn diff --old=file:///tmp/svn/tags/0.1 \ --new=file:///tmp/svn/trunk Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 29 / 34

Otras opciones interesantes status: Muestra el estado de nuestro repositorio. list: Lista las entradas del directorio en el repositorio. info: Muestra la información de nuestro modulo. blame: Informa sobre quien ha hecho los cambios en un fichero y en que revisión se hicieron. help: Muestra la ayuda en linea de svn. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 30 / 34

Para terminar. Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 31 / 34

Referencias http://svnbook.red-bean.com/ http://www.sindominio.net/quique/traducciones/subversion personal.html Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 32 / 34

Dudas... Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 33 / 34

Fin Jesús Espino García (SL UAM 2007) Subversion: Desarrollo colaborativo 7 de Marzo de 2007 34 / 34