Subversion Sistema de control de versiones Facultad de Ingeniería Sistemas Embebidos en Tiempo Real 1 Agenda Introducción Características Generales Funcionalidades Ciclo de trabajo Recursos Otras herramientas Sistemas Embebidos en Tiempo Real 2 Introducción Que es un sistema de control de versiones? − Mantiene la historia del proyecto. Por que usarlo? − Desarrollo Concurrente − Volver atrás Backup (de todas las versiones) − Sistemas Embebidos en Tiempo Real 3 Características Generales Distintos modos de funcionamiento − Cliente/Servidor − Standalone Distintos niveles de seguridad − Acceso anonimo − Archivo de Claves − Integrada al sistema operativo − Encripción Software Libre Sistemas Embebidos en Tiempo Real 4 Conceptos Copia de trabajo Repositorio Head: Tag: etiqueta Branch: bifurcación Trunk: hilo principal Merge: combinación Sistemas Embebidos en Tiempo Real 5 Acciones import: importar los archivos iniciales checkout: obtener la primera copia de trabajo commit: subir una nueva versión add: agregar archivos update: actualizar la copia de trabajo tag: etiquetar una versión branch: bifurcar el código Sistemas Embebidos en Tiempo Real 6 Ciclo de Trabajo Crear el repositorio (incluye configuración) Importar los primeros documentos (en caso de existir algunos de antemano) Hacer el checkout (update si ya existía la copia local) Trabajar en la copia local de los archivos Hacer commit Sistemas Embebidos en Tiempo Real 7 Ciclo de Trabajo (casos especiales) Conflicto en el commit: − Si otra persona hizo un commit de un archivo que nosotros también modificamos commit da error. − En este caso hay que hacer el update del archivo, combinarlo (merge) con el nuestro y luego hacer commit. Conflicto en el update − En caso de hacer update de un archivo modificado el merge automático puede no resolver todas las modificaciones. Sistemas Embebidos en Tiempo Real 8 Ciclo de Trabajo (Branch) Se llega a una versión estable Se hace un tag de la versión Se pone en producción Se detecta un bug Se hace un branch de la versión de producción Se corrige el bug en esa versión Se hace el merge con la versión en el Trunk Idem con los sucesivos bugs Sistemas Embebidos en Tiempo Real 9 Recursos Página principal: http://subversion.tigris.org/ Libro: http://svnbook.red-bean.com/ Descarga: http://subversion.tigris.org/project_packages.html Clientes: http://subversion.tigris.org/links.html − En la seccion Clients and plugins − Para MSWin: tortoiseSVN.tigris.org − Para varios: SmartSvn (java) , RapidSVN − Linea de comandos incluída con la distro Sistemas Embebidos en Tiempo Real 10 Generadores de Documentación Doxygen: http://www.stack.nl/~dimitri/doxygen/ − Sintaxis tipo javadoc − Fórmulas en latex − Distintos formatos de salida: html, pdf .. − Distintos lenguajes: C/C++, Java, Python, ... − Genera Diagramas simples Ccdoc: http://ccdoc.sf.net − Solo c++, html Sistemas Embebidos en Tiempo Real 11