Sistemas
con Subversion
Martín Gaitán y Pablo Martínez
FCEFyN, Universidad Nacional de Córdoba
Junio de 2007
Agenda
Qué es Control de Versiones
Qué es Subversion
Diferencias con CVS, características y
arquitectura
Breve historia
Vocabulario básico
Infografía del proceso ante una 'modificación'
Demostraciónes de diferentes clientes
Recursos
Preguntas y comentarios finales
Control de Versiones con Subversión
Martín Gaitán y Pablo Martínez
2
¿Qué es Control de Versiones? 1/2
Gestión del desarrollo de cada elemento de un
proyecto a lo largo del tiempo
Proporciona:
— Mecanismo de almacenaje de cada elemento que deba
gestionarse (archivos de código, imágenes, documentación...)
— Posibilidad de añardir, modificar, mover,borrar...
— Historial de las acciones realizadas con cada elemento pudiendo
volver a un estado anterior
— Otros: generación de informes de cambios, informes de estado,
marcado con nombre identificativo, etc.
Se utiliza un repositorio, donde se almacena la
información de todo el desarrollo
Control de Versiones con Subversión
Martín Gaitán y Pablo Martínez
3
¿Qué es Control deVersiones? 2/2
Útil para trabajar individualmente o en grupo
Servidor local o remoto
Permite desarrollos colaborativos, incluso
concurrentemente!
Todo equipo profesional de desarrollo de
software lo utiliza
Control de Versiones con Subversión
Martín Gaitán y Pablo Martínez
4
¿Qué es Subversion?
Un software para control de versiones
Fácil de usar
Diseño simple, potente,seguro
Software Libre y gratuito
— Licencia APACHE/BSD
Tanto clientes y servidor, funcionan en
muchos S.O.
— Incluídos GNU/Linux, Windows, Mac OS, etc.
Control de Versiones con Subversión
Martín Gaitán y Pablo Martínez
5
Características relevantes (1/3)
Envíos atómicos
— Todos los cambios, o ninguno.
— Aporta seguridad en la integridad de los datos
Versionado dedirectorios
— Se lleva un control de cambios a través del tiempo del directorio.
— Sistema de archivos “virtual ” que sigue los cambios sobre árboles
de directorios completos a través del tiempo
Verdadero historial de versiones
— Se puede añadir, borrar, copiar, y renombrar archivos y
directorios.
— Cada fichero nuevo añadido comienza con un historial nuevo,
limpio y completamente propio.Control de Versiones con Subversión
Martín Gaitán y Pablo Martínez
6
Características relevantes (2/3)
Elección de las capas de red
— Posee abstracción del acceso al repositorio
— Como módulo de Apache:
•
Estabilidad e interoperabilidad
•
Autenticación, autorización, compresión de la conexión, etc.
•
Puertos estándar (administradores de red agradecidos)
— Comoservidor independiente (svnserve):
•
Muy ligero, habla un protocolo propio.
•
Puede ser encaminado fácilmente a través de un túnel SSH.
Control de Versiones con Subversión
Martín Gaitán y Pablo Martínez
7
Características relevantes (3/3)
Manipulación consistente de datos
— Encuentra diferencias usando un algoritmo en modo binario
— Funciona idénticamente con texto o archivosbinarios.
— Todos los tipos de archivos se guardan comprimidos en el repo.
Ramificación y etiquetado eficientes
— El costo de crear una nuevas ramas (branch) o etiquetas (tag) no
es proporcional al tamaño del proyecto
— Se usa un mecanismo similar al 'enlace duro' (“acceso directo”)
Totalmente reutilizable
— SVN está compuesto por bibliotecas compartidas en C con APIs
claras.
— Hayimplementaciones en distintos lenguajes (java, python, etc)
Control de Versiones con Subversión
Martín Gaitán y Pablo Martínez
8
Arquitectura de Subversion
Control de Versiones con Subversión
Martín Gaitán y Pablo Martínez
9
Breve historia
Comenzado a principios de 2000 (CollabNet)
Objetivo: Mejorar CVS
Versión 1.0 liberada en 2004
— Contemplaba todas de las...
Regístrate para leer el documento completo.