Subversion: La tortuga y sus documentos

36
SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario La tortuga y los documentos: Tortoise + Subversion Un sistema de control de versiones Pablo Mellado Rafael Morales Instituto de Astrofísica de Andalucía. CSIC Seminarios IAA. Jueves 21 Junio 2007

description

Presentación introductoria a SVN (subversion).

Transcript of Subversion: La tortuga y sus documentos

Page 1: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

La tortuga y los documentos: Tortoise +Subversion

Un sistema de control de versiones

Pablo Mellado Rafael Morales

Instituto de Astrofísica de Andalucía. CSIC

Seminarios IAA. Jueves 21 Junio 2007

Page 2: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Índice

1 Sistema de Control de Versiones (SCV)

2 Usos de un SCV

3 Subversion

4 Conceptos básicos

5 Problemas comunes

6 Conceptos avanzados

Page 3: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Índice

1 Sistema de Control de Versiones (SCV)Definición de un SCVEjemplo de uso de un SCV Subversion

2 Usos de un SCV

3 Subversion

4 Conceptos básicos

5 Problemas comunes

6 Conceptos avanzados

Page 4: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Definición de un SCV

Definición de un SCV

Un "Sistema de Control de Versiones" (SCV) es unaherramienta que permite gestionar las diferentesrevisiones de un documento a lo largo de su ciclo de vidaAKA: Revision Control ,Version Control, Source Control o(Source) Code Management (SCM) , Repository(repositorio)Se almacenan todos los cambios realizados en un ficherooriginando una nueva versión del mismoEs posible volver en cualquier momento a una versiónanterior y detectar de forma automática todas lasdiferencias entre versionesEs posible reconstruir toda la historia de un documentodesde su creación

Page 5: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Definición de un SCV

Definición de un SCV (cont.)

Trabajo concurrente entre usuariosTrabajo deslocalizadoControl estricto sobre el manejo de versiones

Page 6: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Ejemplo de uso de un SCV Subversion

Ejemplo de uso de un SCV Subversion

Figure: Ejemplo de uso de un repositorio Subversion

Page 7: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Índice

1 Sistema de Control de Versiones (SCV)

2 Usos de un SCVEn proyectosEn ficheros de textoEn ficheros binarios

3 Subversion

4 Conceptos básicos

5 Problemas comunes

6 Conceptos avanzados

Page 8: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

En proyectos

Usos de un SCV en proyectos

Uso recomendado en cualquier tipo de proyectos:multi/mono usuariocódigo fuenteartículotesispágina webproyecto de investigación/instrumentación

Page 9: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

En ficheros de texto

Usos de un SCV en ficheros de texto

Uso especialmente recomendado si se usan ficheros ASCIICódigo fuente de programasLATEXXMLHTMLVHDL

Page 10: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

En ficheros binarios

Usos de un SCV en ficheros en binarios

Uso con ficheros propietarios / binariosUso reducido de las características de un SCVÚtil para guardar hitos

Page 11: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Índice

1 Sistema de Control de Versiones (SCV)

2 Usos de un SCV

3 SubversionDescripciónSubversion y CVSSistemas operativos soportados por SubversionListado de clientes SubversionTortoise, un cliente de Subversion

4 Conceptos básicos

5 Problemas comunes

6 Conceptos avanzados

Page 12: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Descripción

Subversion, un SCV

Web: http://subversion.tigris.org/Subversion es un Sistema de Control de Versiones decódigo abierto, gratuito que intenta ser un reemplazo deCVS

Page 13: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Subversion y CVS

Subversion y CVS

http://subversion.tigris.org/CVS es un sistema de control de versiones gratuito, decódigo abierto y ampliamente usadoCVS y Subversion son equivalentesCVS sólo maneja ficheros de textoEl almacenamiento de Subversion es más robusto al estarbasado en una base de datos no en ficheros planosLa gestión del almacenamiento en CVS es fácilmentemodificable, la de Subversion noCVS está peor diseñado y documentado que SubversionSubversion está mejor integrado con la Web

Page 14: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Subversion y CVS

Subversion y CVS (cont.)

Subversion es más seguro en la autentificación y el cifradoSubversion dispone de transacciones atómicas, CVS noSubversion sólo transmite las diferencia entre versiones,CVS ficheros completosCVS ha sido ampliamente utilizado/revisado durante años,Subversion no

Page 15: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Sistemas operativos soportados por Subversion

Sistemas operativos soportados por Subversion

SolarisLinuxMac OS XWindows NT, 2000, XP y 2003IBM i5/OS (OS/400)

Page 16: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Listado de clientes Subversion

Listado de clientes Subversion

Línea de comandosInterface WebAplicaciones independientesExtensiones del ’shell’ del Sistema Operativo (Tortoise)Pluging para IDE (Eclipse, JDeveloper)

Page 17: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Tortoise, un cliente de Subversion

Tortoise, un cliente de Subversion

Web: http://tortoisesvn.net/Es un cliente gratuito de Subversion en código abierto ylicencia GPLImplementado como una extensión de la ’shell’ deWindowsImplementa protocolos de autentificación y encriptaciónIntegra un programa de gestión de diferenciasUso creciente (2 millones de descargas)Activamente desarrollado (bajo Subversion)

Page 18: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Índice

1 Sistema de Control de Versiones (SCV)

2 Usos de un SCV

3 Subversion

4 Conceptos básicosEl problemaCreación del repositorioImportación de contenidos al repositorioVinculando localmenteActualización de contenidos desde el repositorioActualización de contenidos hacia el repositorioLa Solución

5 Problemas comunes

6 Conceptos avanzados

Page 19: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

El problema

El Problema a Evitar

Page 20: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Creación del repositorio

Creación del Repositorio

El repositorio se puede crear directamente en el servidorusando el comando: svnadmin create.También se puede crear a través del TortoiseSVN con laopción Create repository here....Un repositorio puede contener varios “proyectos”.Suponemos que tenemos instalado y funcionando unservidor subversion con su repositorio creado.

Page 21: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Importación de contenidos

Importación de Contenidos al Repositorio (import)

El concepto import tiene que ser visto desde el punto devista del servidor para entenderlo mejor.El servidor importa los ficheros y directorios que leindiquemos.Para la importación de los ficheros usaremos la opciónImport....

Page 22: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Vinculando localmente

Vinculando Localmente (checkout)

Para gestionar los ficheros con subversion es necesariovincular una copia local al contenido del servidor.La opción checkout nos permite llevar a cabo esta tarea,y puede ser realizada por distintos usuarios.Es posible ejecutar checkout desde distintas máquinascon el mismo usuario.

Page 23: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Actualización desde el repositorio

Actualización Desde el Repositorio (update)

La opción Update descarga del servidor los ficheros quehan sido cambiados desde nuestra último acceso.Si hay nuevos ficheros o carpetas también serándescargados.Podría haber conflictos si al hacer Update, se descargaun fichero que ya había sido modificado localmente.

Page 24: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Actualización hacia el repositorio

Actualización Hacia el Repositorio (commit)

Es muy aconsejable ejecutar el comando Update antesde un Commit

La opción Commit... envía las modificaciones locales alservidor.En cada Commit se incrementa el número de revision(rev).Si hay nuevos ficheros o carpetas aparecerá la opción deañadirlos al repositorio.

Page 25: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

La Solución

La Solución Aportada

Page 26: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

La Solución

La Solución Aportada (cont.)

Page 27: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Índice

1 Sistema de Control de Versiones (SCV)

2 Usos de un SCV

3 Subversion

4 Conceptos básicos

5 Problemas comunesResolución de conflictos entre versionesDeshacer últimos cambios

6 Conceptos avanzados

Page 28: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Resolución de conflictos

Resolución de Conflictos entre Versiones (resolv)

Cuando un conflicto aparece, se crean en el directoriolocal los siguientes ficheros:

nombre_fichero.ext.rXX, donde XX es la últimarevisión que "conocía" nuestro programa clientenombre_fichero.ext.mine, es el fichero tal y como loteníamos antes del conflicto.nombre_fichero.ext.rYY, donde YY es la nuevarevisión que nuestro programa cliente "desconocía".

En el fichero nombre_fichero.ext se hace una mezcla detodos los cambios de una forma bastante particular.Con la opción Edit conflict se puede resolver elconflicto gráficamente.Para dar el conflicto como resuelto usar la opciónResolved.

Page 29: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Deshacer cambios

Deshacer Últimos Cambios (revert, diff)

Usando revert podemos deshacer todos los cambios yvolver a la versión que nos descargamos del servidor.También es posible ver gráficamente estos cambios condiff.Usando la opción show log tenemos más opciones.

Page 30: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Índice

1 Sistema de Control de Versiones (SCV)

2 Usos de un SCV

3 Subversion

4 Conceptos básicos

5 Problemas comunes

6 Conceptos avanzadosEtiquetas y RamasFusionar diferentes versiones

Page 31: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Etiquetas y Ramas

Etiquetas (tag)

Se utilizan para marcar determinadas revisiones.Se facilita la tarea si hemos utilizado la estructurarecomendada (trunk, tags, branches).Muy usadas para "software release" o para "congelar " unestado.

Page 32: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Etiquetas y Ramas

Gestión de ramas (branch, switch)

La creación de una rama es igual a la creación de unaetiqueta, pero en este caso el directorio destino serábranches.Muy usadas, por ejemplo, cuando se va a probar unanueva tecnología en nuestro desarrollo.Es necesario hacer switch si queremos que nuestroscambios se vayan realizando en la rama recién creada.

Page 33: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Fusionar versiones

Fusionando diferentes Versiones (merge)

Las ramas creadas pueden tener dos destinos finales:1 Ser abandonadas porque no interesa seguir su desarrollo.

Para volver al trunk original es necesario hacer switch.2 Fusionarse con el trunk para incorporarlas al desarrollo

principal.De nuevo es necesario hacer switch y despues merge.

Page 34: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Sumario

Un SCV es una herramienta que permite gestionar lasdiferentes revisiones de un documento.Especial utilidad con ficheros ASCII pero también conficheros binarios.Uso de un SCV recomendado en cualquier tipo deproyecto.Subversión es un SCV multiplataforma, multiusuario,gratuito y de código abierto. Tortoise es uno de los clientesde Subversion.

Page 35: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Sumario

Crear un repositorio y realizar un checkout nos permitegestionar versiones de nuestros ficheros.Tenemos las herramientas necesarias para resolverconflictos y para volver a una versión anterior.Las etiquetas y las ramas nos permiten disfrutar de másfuncionalidad.

Page 36: Subversion: La tortuga y sus documentos

SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario

Fin del Seminario