Control de versiones con
Subversion
Introducción
Diseño de Sistemas de Información 2009/10
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
MADS Group - Departamento de Computación
Víctor M. Gulías (
[email protected])
David Cabrero (
[email protected])
Laura Castro (
[email protected])
Javier París (
[email protected])
David Martínez (
[email protected])
24 de febrero de 2010
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
1 / 23
Contenido
1 Sistemas de control de versiones
2 Subversion: uso elemental
3 Subversion: características avanzadas
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
4 Conclusiones
5 Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
2 / 23
Concepto
Sistemas de control de versiones
Un mecanismo para:
Coordinar las modificaciones de un conjunto
de usuarios sobre un mismo conjunto de ficheros
Seguir el rastro de los cambios, identificando:
Quién hizo qué
Cuándo lo hizo
Por qué lo hizo
Qué más se hizo
Por ello, también es de utilidad para un solo
desarrollador
Recuperar versiones anteriores
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
3 / 23
Concepto (y II)
Sistemas de control de versiones
¿Cómo funciona?
Existe un repositorio común (centralizado o
distribuido) donde se almacenan todos los
cambios/versiones
Los desarrolladores trabajan en su copia local e
incorporan las modificaciones al repositorio
El sistema registra las modificaciones y los
comentarios asociados
El sistema gestiona las distintas versiones
almacenadas en el repositorio
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
4 / 23
Concurrent Version System (CVS)
Sistemas de control de versiones
Control de versiones
con Subversion
DSI 2009/10
Creado a partir del proyecto de Dick Grune
(1986), siendo aún hoy un desarrollo activo de
uso muy extendido
Tiene algunas limitaciones ligadas a su diseño
inicial que empujan a su reemplazo por sistemas
alternativos, que solucionan algunos de sus
problemas:
Commits atómicos
Identificador de archivo distinto de la ruta de
archivo
Permiten trabajo off-line
Soporte de branchs mejorado
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
5 / 23
Alternativas a CVS
Sistemas de control de versiones
Arch (arch.fifthvision.net)
Gran conjunto de funcionalidades
Escrito en shell scripts
GIT (www.kernel.org/git)
Usado en el desarrollo del kernel de Linux
Distribuido, no centralizado
Substituto de Bitkeeper
Perforce (www.perforce.com)
Comercial
Subversion (subversion.tigris.org)
Creado a semejanza de CVS, eliminado sus
carencias
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
6 / 23
Modus operandi
Sistemas de control de versiones
Para cada proyecto, se crea un repositorio
Cada desarrollador:
1 Obtiene una copia del repositorio
(copia local)
2 Trabaja sobre su copia local
3 Eventualmente:
Actualiza su copia local con los cambios
que otros desarrolladores han realizado
Resuelve conflictos
Integra sus cambios, enviándolos al
repositorio
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
7 / 23
Comandos básicos
Subversion: uso elemental
Administrador (svnadmin)
1 Crear un repositorio
2 Opcionalmente: poblar el repositorio
Usuarios/desarrolladores (svn)
1 Obtener una copia del repositorio
2 Trabajar sobre la copia local
3 Comprobar el estado del repositorio y de la
copia local
Integrar los cambios propios al repositorio
4
5 Actualizar la copia local con los cambios que
haya en el repositorio
6 Resolver conflictos
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
8 / 23
Creación de un repositorio
Subversion: uso elemental
En la /ruta/al/repositorio, crearemos un
subdirectorio SVN
mkdir /ruta/al/repositorio/SVN
Se usa la orden svnadmin create para
inicializar el repositorio:
svnadmin create
/ruta/al/repositorio/SVN/nombre-repositorio
Se generará la estructura de gestión del
repositorio
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
9 / 23
Creación de un repositorio (y II)
Subversion: uso elemental
Sólo las órdenes svnadmin deben usarse para
interactuar con esta estructura de gestión
/ruta/al/repositorio/SVN/
nombre-repositorio/README.txt
URL del repositorio:
file:///ruta/local/al/repositorio/
SVN/nombre-repositorio
http://ruta/remota/al/repositorio/
SVN/nombre-repositorio
La estructura de directorios es libre
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
10 / 23
Inserción de datos en el repositorio
Subversion: uso elemental
Control de versiones
con Subversion
DSI 2009/10
Se pueden a añadir ficheros al repositorio desde
cero
Pero si ya disponemos de una estructura inicial,
podemos usarla para poblar el repositorio
svn import /ruta/ficheros/iniciales URL
Registro de comentarios
Variable de entorno EDITOR
SVN trata cada tipo de fichero adecuadamente
(texto, binario)
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
11 / 23
Descarga de una copia de trabajo
Subversion: uso elemental
Para comenzar a trabajar es necesario descargar
nuestra copia de trabajo personal
svn checkout URL [/ruta/de/trabajo]
HEAD (última versión) del repositorio
Directorio .svn
Sobre la copia de trabajo los archivos pueden
modificarse con normalidad
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
12 / 23
Edición de la copia de trabajo
Subversion: uso elemental
Manipulación básica de archivos:
Añadir o eliminar ficheros del repositorio
svn add ELEMENTO
svn delete ELEMENTO
Añadir un directorio
svn mkdir RUTA
Copiar o mover ficheros
svn copy ORIGEN DESTINO
svn move ORIGEN DESTINO
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
13 / 23
Edición de la copia de trabajo (y II)
Subversion: uso elemental
Control de versiones
con Subversion
DSI 2009/10
Consultar los cambios que se han hecho sobre la
copia de trabajo local
svn status
(Modified, Added, Deleted. . . )
Visualizar los cambios hechos respecto a la
copia de partida
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
svn diff [ELEMENTO]
Descartar cualquier cambio y volver a la copia
de partida
svn revert ELEMENTO
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
14 / 23
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
versiones
Subversion: uso
elemental
Subversion:
características
avanzadas
Conclusiones
Bibliografía
Integración/actualización de
cambios
Subversion: uso elemental
Actualización de la copia de trabajo local
svn update
Integración de nuestras modificaciones en el
repositorio
svn commit
Es importante documentar los cambios
La nueva versión debe funcionar
Consulta del registro de cambios
svn log [ELEMENTO]
DSI 2009/10 (UDC)
Control de versiones con Subversion
24 de febrero de 2010
15 / 23
Resolución de conflictos
Subversion: uso elemental
Conflicto
Desde la descarga de la copia de trabajo (checkout)
hasta el momento en que de nuevo interactuamos
con el repositorio (update/commit), otro(s)
desarrollador(es) puede(n) haber modificado y
confirmado archivos también alterados por nosotros
Ante esta situación, el sistema no puede decidir, no
puede corromper el repositorio:
un svn commit fallará anulando la integración
de nuestros cambios
Control de versiones
con Subversion
DSI 2009/10
Contenido
Sistemas de control de
version
Comentarios de: Control de versiones con Subversion - Introducción (0)
No hay comentarios