Subversion como herramienta para el control del versiones

Anuncio
Subversion como herramienta para el control del
versiones
Pablo Sánchez
Dpto. Matemáticas, Estadı́stica y Computación
Universidad de Cantabria, Santander (Spain)
p.sanchez@unican.es
Pablo Sánchez (MATESCO)
Control de versiones con subversion
1 / 11
Introducción
Subversion
Subversion
Subversion [1] es una herramienta de software libre para el control
de versiones.
Subversion es capaz de manejar los cambios hechos sobre ficheros y
directorios a lo largo de tiempo.
Permite recuperar versiones antiguas y ver el historial de cambios de
un sistema de archivos.
Es una herramienta distribuida capaz de trabajar sobre diversos
protocolos (svn, ssh, http, https).
No es una herramienta de gestión de la configuración software,
principalmente porque no está diseñada para manejar exclusivamente
software, sino archivos arbitrarios.
Diseñado para sustituir CVS (Concurrent Version System).
Pablo Sánchez (MATESCO)
Control de versiones con subversion
2 / 11
Introducción
Subversion
Arquitectura subversion
Pablo Sánchez (MATESCO)
Control de versiones con subversion
3 / 11
Introducción
Subversion
Nuestro repositorio y cuentas
Usamos el cliente de subversion Subclipse (subversion en Eclipse)
http://subclipse.tigris.org/.
http://vm.ciencias.unican.es:20080/svn
5 repositorios: repos1 .. repos6
17 cuentas, nombres de usuario+password: user1, user1
Repos1 : User 1 a User3
Repos2 : User 4 a User6
Repos3 : User 7 a User9
Repos4 : User 10 a User13
Repos5 : User 13 a User17
Pablo Sánchez (MATESCO)
Control de versiones con subversion
4 / 11
Introducción
Subversion
Crear una conexión con un repositorio
1
http://vm.ciencias.unican.es:20080/svn/repos1
2
Introducir usuario y password
Pablo Sánchez (MATESCO)
Control de versiones con subversion
5 / 11
Exportando proyectos
Creando proyectos en Subclipse
1
Crear proyecto en el repositorio y exportarlo (checkout) a Eclipse.
2
Crear un proyecto en Eclipse e subirlo (import) al repositorio.
Pablo Sánchez (MATESCO)
Control de versiones con subversion
6 / 11
Flujo de trabajo subversion
Proceso copia, modificación y mezcla
Paco y Lola se descargan el archivo
Paco y Lola modifican el archivo
A
A
lee
lee
A
A
Paco
Lola
Lola sube el archivo primero
A’
A’’
Paco
Lola
Paco intenta escribir, pero obtiene un error
de recurso desincronizado
A’’
A’’
escribe
escribe
fuera de sincronía
A
A’’
A’
A’’
Paco
Lola
Paco
Lola
Pablo Sánchez (MATESCO)
Control de versiones con subversion
7 / 11
Flujo de trabajo subversion
Proceso copia, modificación y mezcla
Paco se descarga el archivo actualizado
y conserva el editado
La herramienta de control de versiones (o
Paco) mezclan ambos archivos
A’’
A’’
lee
A’ A’’
A’’
Paco
Lola
Paco sube la versión combinada
(los conflictos se marcan como resueltos)
A’’’
A’’
Paco
Lola
La versión actualizada queda disponible
para Lola
A’’’
A’’’
lee
escribe
A’’’
A’’
A’’’
A’’’
Paco
Lola
Paco
Lola
Pablo Sánchez (MATESCO)
Control de versiones con subversion
8 / 11
Flujo de trabajo subversion
Flujo de trabajo subversion
1
Actualizar mi copia para recibir los nuevos cambios (update).
2
Modificar lo que sea necesario.
3
Subir los cambios al repositorio (commit).
4
En caso de fuera de sincronı́a, realizar una nueva actualización
(update).
5
Si no hay conflictos, subir los cambios (commit).
6
Si hay conflictos, arreglarlos manualmente, marcarlos como resuelto y
subir los cambios (commit).
Pablo Sánchez (MATESCO)
Control de versiones con subversion
9 / 11
Flujo de trabajo subversion
Primeras pruebas
1
Crear archivos Runner, Left, Right, LeftLeft y RightRight.
2
Subirlos al repositorio
3
Hacer un update
4
Modificar todos Left, añadiendo nuevos métodos al final.
5
Subir Left
6
Modificar todos el Right, modificando el mensaje que se imprime.
7
Subir uno el right.
8
Intentar subir los otros el right.
Pablo Sánchez (MATESCO)
Control de versiones con subversion
10 / 11
Bibliografı́a
Referencias I
Ben Collins-Sussman, C. Michael Pilato, and Brian W. Fitzpatrick.
Version Control with Subversion.
O’Reilly, June 2004.
Pablo Sánchez (MATESCO)
Control de versiones con subversion
11 / 11
Descargar