Top Banner
Subversion Subversion Ixchel Stephanie Zazueta García 2do Semestre Ingeniería en Software
19

Subversion

Jun 24, 2015

Download

Education

Ixchel Muffin

Para la clase de Sistemas y componentes computacionales
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Subversion

SubversionSubversion

Ixchel Stephanie Zazueta García

2do SemestreIngeniería en Software

Page 2: Subversion

El Concurrent Versions System, es una aplicación que implementa un sistema de control de versiones: mantiene el registro de todo el trabajo y los cambios en los ficheros que forman un proyecto y permite que distintos desarrolladores colaboren.

CVS, qué CVS, qué es?es?

Page 3: Subversion

Arquitectura cliente-servidor.Originalmente, el servidor utilizaba un sistema operativo similar a

Unix, aunque en la actualidad existen versiones de CVS en otros sistemas operativos, incluido Windows. Varios clientes pueden sacar copias del proyecto al mismo

tiempo. Cuando actualizan sus modificaciones, el servidor trata de acoplar las diferentes versiones.Los clientes pueden también comparar diferentes versiones de

archivos, solicitar una historia completa de los cambios, o sacar una "foto" histórica del proyecto tal como se encontraba en una fecha determinada o en un número de revisión determinado.Los clientes también pueden utilizar la orden de actualización

con el fin de tener sus copias al día con la última versión que se encuentra en el servidor.CVS también puede mantener distintas "ramas" de un proyecto.

Por ejemplo, una versión difundida de un proyecto de programa puede formar una rama y ser utilizada para corregir errores.

CaracterísticCaracterísticasas

Page 4: Subversion

Historia / Historia / LimitantesLimitantesCVS fue desarrollado por GNU. Se otorga con licencia

GPL.Actualmente existen muchas versiones de CVS

implantadas en los diferentes sistemas operativos.

Limitaciones del protocolo CVS:Los archivos en el repositorio sobre la plataforma CVS no

pueden ser renombrados.Cada archivo en cada subdirectorio debe ser eliminado y

re-agregado con el nuevo nombre.Soporte limitado para archivos Unicode con nombres de

archivo no ASCII.

Page 5: Subversion

Fuerte integración con Apache: Esto permite definir controles de acceso avanzados y navegación vía web para consultar el deposito de archivos.Transparencia al eliminar y cambiar nombres de archivos :

CVS requiere intervención manual en el deposito para lograrlo, Subversion contempla esta deficiencia y la corrige con éxito.Copias ligeras sobre ramificaciones : La generación de

ramificaciones en CVS además de ser un proceso involucrado implica la generación de una copia nueva en el deposito, mismo mecanismo que hace crecer el tamaño del deposito, Subversion independientemente del numero de ramificaciones creadas mantiene un árbol diferencial de cambios, minimizando así el espacio consumido en el deposito.Copias diferenciales de archivos binarios : Subversion es

capaz de mantener un control diferencial sobre cualquier archivo binario del deposito, CVS requiere archivar copias completas de un archivo binario cada vez que éste cambia.

SVN sobre CVS:SVN sobre CVS:

Page 6: Subversion

Es un software de sistema de control de versiones.(2000 / CollabNet Inc.)Es software libre bajo una licencia de tipo

Apache/BSD.Se le conoce también como svn por ser ese el

nombre de la herramienta de línea de comandos. Una característica importante es que, a diferencia

de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. Todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo.

Qué es?Qué es?

Page 7: Subversion

Se sigue la historia de los archivos y directorios a través de copias y renombrados.Las modificaciones (incluyendo cambios a varios archivos) son

atómicas.La creación de ramas y etiquetas es una operación más eficiente;

Tiene costo de complejidad constante y no lineal como en CVS.Se envían sólo las diferencias en ambas direcciones.Puede ser servido mediante Apache, sobre WebDAV/DeltaV. Esto

permite que clientes WebDAV utilicen Subversion en forma transparente.Maneja eficientemente archivos binarios.Permite selectivamente el bloqueo de archivos. Cuando se usa integrado a Apache permite utilizar todas las

opciones que este servidor provee a la hora de autentificar archivos (SQL, LDAP, PAM, etc.).

CaracterísticCaracterísticasas

Page 8: Subversion

El manejo de cambio de nombres de archivos no es completo. Lo maneja como la suma de una operación de copia y una de borrado. No resuelve el problema de aplicar repetidamente parches

entre ramas, no facilita el llevar la cuenta de qué cambios se han trasladado. Esto se resuelve siendo cuidadoso con los mensajes de commit. Esta carencia será corregida en la próxima versión (1.5).

CarenciasCarencias

Page 9: Subversion

ArquitecturaArquitecturaEn un extremo se encuentra un repositorio de Subversion que conserva todos los datos versionados. Al otro lado, hay un programa cliente Subversion que administra réplicas parciales de esos datos versionados (llamadas “copias de trabajo”). Entre estos extremos hay múltiples rutas a través de varias capas de acceso al repositorio (AR). Algunas de estas rutas incluyen redes de ordenadores y servidores de red que después acceden al repositorio. Otras pasan por alto la red y acceden al repositorio directamente.

Page 10: Subversion

Subversion está construido sobre una capa de portabilidad llamada APR (Apache Portable Runtime), lo cual significa que Subversion debería funcionar en cualquier sistema operativo donde lo haga el servidor httpd Apache.

La manera más sencilla de obtener Subversion es descargando un paquete binario construido para su sistema operativo.

Alternativamente, usted puede compilar Subversion directamente a partir del código fuente.

InstalaciónInstalación

Page 11: Subversion

svn: El programa cliente de línea de comandos.svnversion: Programa para informar del estado (en términos de revisiones de los elementos presentes) de una copia de trabajo.Svnlook: Una herramienta para inspeccionar un repositorio de Subversion.Svnadmin: Herramienta para crear, modificar o reparar un repositorio de Subversion.Svndumpfilter: Un programa para filtrar el formato de salida de volcado de repositorios Subversion.mod_dav_svn: Un módulo para el servidor HTTP Apache usado para hacer que su repositorio esté disponible a otros a través de una red.Svnserve: Un servidor independiente, ejecutable como proceso demonio o invocable por SSH; otra manera de hacer que su repositorio esté disponible para otros a través de una red.

Componentes de Componentes de SubversionSubversion

Page 12: Subversion

Comienzo rápidoComienzo rápidoPara comenzar, cree un nuevo repositorio:

$ svnadmin create /path/to/repos $ ls /path/to/reposconf/ dav/ db/ format hooks/ locks/ README.txt

A continuación, se crea un árbol de ficheros y directorios para importar dentro del repositorio. Su estructura debería tener tres directorios en el primer nivel de la jerarquía llamados branches,tags, y trunk:

/tmp/project/branches//tmp/project/tags//tmp/project/trunk/ foo.c bar.c Makefile …

Page 13: Subversion

Comienzo rápidoComienzo rápidoUna vez tenga un árbol de datos listo para continuar, se importa dentro del repositorio con el comando svn import:

$ svn import /tmp/project file:///path/to/repos -m "initial import"Adding /tmp/project/branchesAdding /tmp/project/tagsAdding /tmp/project/trunkAdding /tmp/project/trunk/foo.cAdding /tmp/project/trunk/bar.cAdding /tmp/project/trunk/Makefile…Committed revision 1.$

Page 14: Subversion

Comienzo rápidoComienzo rápidoPara comenzar a manipular los datos del repositorio, se necesita crear una nueva “copia de trabajo” de los datos, una especie de entorno de trabajo privado:

$ svn checkout file:///path/to/repos/trunk projectA project/foo.cA project/bar.cA project/Makefile…Checked out revision 1.

Page 15: Subversion

El El repositoriorepositorioLa parte principal de Subversion es el repositorio, el cual es un almacén central de datos. El repositorio guarda información en forma de árbol de archivos. Cualquier número de clientes puede conectarse al repositorio y luego leer o escribir en esos archivos.

El repositorio es una especie de servidor de archivos, pero no del tipo habitual. Lo que hace especial al repositorio de Subversion es que recuerda todos los cambios hechos sobre él.

Page 16: Subversion

Modelos de Modelos de versionadoversionadoEl problema: Solución Bloqueo:

Page 17: Subversion

Solución copiar-modificar-mezclar:

Page 18: Subversion

ConclusiónConclusiónSubversion nos hubiera ayudado a hacer el trabajo de una manera más eficiente.

Page 19: Subversion

FIN.