Top Banner
Manuel Cesar Yanez v0.1 SUBVERSION SUBVERSION
26

Presentacion Subversion

Jan 20, 2015

Download

Technology

Cesar Yanez

Slides Subversion
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
  • 1. Manuel Cesar Yanezv0.1 SUBVERSION

2. Contenido

  • Introduccin / Conceptos
  • Que es Subversin?
  • Instalacin
  • Comandos bsicos
  • Interaccin usuario consola.
  • Interaccin usuario GUI.
  • Componentes
  • Crear un repositorio
  • Configurar Accesos
  • Estructurar Proyectos
  • Migrando Repositorios

3. Que es Subversion?

  • Subversion es un sistema de control de versiones libre y de cdigo fuente abierto:
    • Maneja ficheros y directorios a travs del tiempo.
    • Hay un rbol de ficheros en unrepositorio central.
    • El repositorio es como un servidor de ficheros ordinario, excepto porque recuerda todos los cambios hechos a sus ficheros y directorios.
    • Permite recuperar versiones antiguas de sus datos, o examinar un historial de cambios de los mismos.

4. Instalacin

  • Aquellos que tengan entornos GNU/Linux basados en Debian:
    • apt-get install subversion
  • Los que tengan Windows:
    • Svn1ClickSetup
    • TortoiseSVN

5. Comandos de Subversion

  • checkout: obtener una copia de trabajo
  • import: importar cdigo a un repositorio
  • commit: actualizar repositorio con los cambios
  • update : actualizar copia de trabajo con los cambios
  • Otros comandos: move, copy, diff, list

6. Grfica Operaciones 7. svn checkout

  • Obtiene una copia local de trabajo de un repositorio
  • Sintaxis:
  • svn checkout URL_Repositorio PATH_LOCAL
  • Ejemplo:
  • svn checkout svn:///192.168.81.100/practica/trunk/proyecto1 /home/codigo/proyecto1

8. svn status

  • ' 'Sin modificaciones.
  • 'A'El elemento est programado para ser aadido.
  • 'D'El elemento est programado para ser borrado.
  • 'M'El elemento ha sido modificado.
  • 'C'El elemento est en conflicto tras recibir actualizaciones del repositorio.
  • '?'El elemento no est bajo control de versiones.
  • '~'El elemento est versionado como un directorio, pero ha sido reemplazado por un fichero, o viceversa.
  • ' *' Existe una nueva versin del elemento en el servidor

9. Situacin de Conflictos 10. svn resolved

  • Resumen:
  • Tratamos de hacer uncommitde un archivo que ha sido modificado localmente pero que posee una nueva versin en el repositorio por lo tanto elcommites rechazado, dndose una situacin de conflicto.
  • Al hacer unupdatesucede que:
  • Tenemos el archivo en cuestin con ambas porciones de cdigo en conflicto (debemos corregirlo a mano)
  • Se crean 3 versiones del archivo:
    • Nuestra versin de archivo modificado.
    • Versin local descargada previa a los cambios de nuestra parte
    • Versin con cambios nuevos, trada del repositorio

11. DEMO: Linea de comandos

  • Practica con los comandos de subversion:
  • Bajar un proyecto (svn checkout)
  • Realizar Cambios y chequear estado (svn status)
  • Actualizar copia local (svn update)
  • Subir cambios realizados localmente (svn commit)

12. GUIs p/ subversion

  • En Windows: TortoiseSVN
    • Click derecho en algn directorio y aparece men contextual con todas las opciones de subversin
  • EN GNU/Linux:
    • RapidSVN, esvn, ksvn, y otros
  • IDES c/soporte Subversion:
    • Eclipse, Netbeans, otros

13. DEMO: GUIs

  • Instale Alguno de los GUIs detallados en su entorno de trabajo y pruebe en trabajar con un proyecto

14. No te Apoliyes !!! 15. Administracin SVN COMPONENTES

  • svn :El programa cliente de lnea de comandos.
  • 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.
  • svnserve: Un servidor,ejecutable como proceso demonio, hace que su repositorio est disponible para otros a travs de una red

16. Crear un Repositorio

  • svnadmin create: creaun repositorio nuevo
  • Sintaxis:
  • svnadmin create PATH_REPOSITORIO
  • Ejemplo:
  • (Linux) svnadmincreate/home/SVN/mirepositorio
  • (Win) svnadmincreateC:SVNmirepositorio

17. Directorios del Repositorio

  • conf:contiene los ficheros de configuracin del repositorio.
  • dav: directorio para Apache y mod_dav_svn y su economa privada de datos.
  • db: El entorno principal de la base de datos Berkeley, lleno de tablas que el almacenamiento de datos para el sistema de ficheros de Subversion ( donde residen los datos versionados)
  • format: Un fichero cuyo contenido es un simple valor entero, dice el nmero de versin del repositorio
  • hooks: directorio de plantillas de ganchos
  • locks: Un directorio para el bloqueo de datos de repositorio de Subversion, usado para los accesos al repositorio.

18. Configurando Accesos

  • En el directorioconfdel repositorio existen tres archivos:
    • svnserve.conf :permisos y configuraciones globales del repositorio
    • authz :se definen permisos, permisos por directorios, grupos de usuarios y usuarios
    • password:contiene configuraciones de usuarios y contraseas

19. Estructurar el Repositorio

  • Estructura recomendada:
  • Trunk /
    • Los desarrollos constantes suceden aqu
  • Branches /
    • Desarrollo de propsito especial aqu
  • Tags /
    • Liberaciones numeradas se almacenan aqui

20. Subir el proyecto

  • Sintaxis :svn import [PATH] URL
  • Ejemplo:
  • svn import /tmp/proyecto file:///home/SVN/mirepositorio-m "importacion inicial"
  • Donde /tmp/proyecto es el Path del proyecto a importar y -m indica un mensaje de registro en el repositorio.

21. Migrando Repositorios

  • Sintaxis :svn import [PATH] URL
  • Ejemplo:
  • svn import /tmp/proyecto file:///home/SVN/mirepositorio-m "importacion inicial"
  • Donde /tmp/proyecto es el Path del proyecto a importar y -m indica un mensaje de registro en el repositorio.

Respaldar Repositorio: Sin Compresin svnadmin dump file:///home/SVN/mirepo > backup.hoy Con Compresin svnadmin dump file:///home/SVN/mirepo | gzip -9 > backup.hoy.gz Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy Respaldar Repositorio: svnadmin dump file:///home/SVN/mirepo > backup.hoy Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy Respaldar Repositorio: svnadmin dump file:///home/SVN/mirepo > backup.hoy Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy Respaldar Repositorio: svnadmin dump file:///home/SVN/mirepo > backup.hoy Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy 22. Protocolos Soportados

  • Sintaxis :svn import [PATH] URL
  • Ejemplo:
  • svn import /tmp/proyecto file:///home/SVN/mirepositorio-m "importacion inicial"
  • Donde /tmp/proyecto es el Path del proyecto a importar y -m indica un mensaje de registro en el repositorio.
  • file:///Acceso directo al repositorio (en el disco local).
  • http://Acceso va protocolo WebDAV
  • https://Igual quehttp:// , pero con cifrado SSL.
  • svn://Acceso va un protocolo personalizado a un servidorsvnserve .
  • svn+ssh://Lo mismo quesvn:// , pero a travs de un tnel SSH.

23. Buenas Practicas

  • Seguir la estructura detags ,trunk ,branches
  • Tener todo el cdigo en un repositorio
  • Realizar unupdateal inicio de cada da
  • Solo hacercommitde cambios coherentes

24. Direcciones tiles

  • Pagina oficial:http://subversion.tigris.org/
  • Manual:http://svnbook.red-bean.com/
  • Wikipedia:http://es.wikipedia.org/wiki/Subversion

25. Preguntas ?

  • E-Mail:
  • Manuel Cesar Yanez
    • [email_address]

26. CHA GRACIASSSS!!!