Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sistemas de control de versiones. Introducción a svn

3,761 views

Published on

Introducción básica y práctica a los sistemas de control de versiones a través de subversion

Published in: Technology
  • Be the first to comment

Sistemas de control de versiones. Introducción a svn

  1. 1. Sistemas de control de versiones Introducción a SVN Miguel Oliván GIFNA Universidad de Zaragoza
  2. 2. Itinerario Introducción Ciclo de trabajo básico Explicación de cada paso Buenas prácticas Programas auxiliares
  3. 3. Sistemas de control de versiones Guardan la historia    Qué, quién, cuándo  Backup, deshacer pruebas, ... Ayudan al desarrollo individual Esenciales en el desarrollo colaborativo  Sincronización  Ayudan a resolver conflictos
  4. 4. Sistemas de control de versiones
  5. 5. Subversion Ampliamente usado Esquema centralizado Multiplataforma Libre
  6. 6. Conceptos básicos Repositorio Copia local Revisión Etiqueta (tag) Actualización (update) Publicación (commit) Conflicto
  7. 7. Obtener un repositorio svn checkout URL directorio  URL → repositorio   http://servidor/path/al/repositorio    svn+ssh://your.remote­server.com/home/svn/test  Directorio → copia local  Credenciales (usuario/contraseña ­ ssh­agent)
  8. 8. Ciclo de trabajo con svn Actualizar Hacer cambios Revisar los cambios Corregir errores Resolver todos los conflictos Publicar
  9. 9. Actualizar $ svn update U foo.c U bar.c Updated to revision 2 ¡Se ejecuta en directorio de trabajo y  subdirectorios! (aplicable a casi todos los  comandos)
  10. 10. Hacer cambios $ svn add fichero $ svn delete fichero $ svn copy fichero.old fichero.new $ svn move fichero.old fichero.new $ svn mkdir dir
  11. 11. Revisar cambios $ svn status ? scratch.c A stuff/bloo.h C stuff/loot/lump.c D stuff/fish.c M bar.cs ¿Qué significa?
  12. 12. Revisar cambios? scratch.c → no está bajo svnA bloo.h → programado para añadirseC stuff/loot/lump.c → ¡conflicto!D stuff/fish.c → programado para borrarseM bar.cs → modificaciones locales (ver  diferencias)
  13. 13. Revisar cambios $ svn diff [fichero] Index: bar.c =================================================================== --- bar.c (revision 3) +++ bar.c (working copy) @@ -1,7 +1,12 @@ +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> + +#include <stdio.h> int main(void) { - printf("Sixty-four slices of American Cheese...n"); + printf("Sixty-five slices of American Cheese...n"); return 0; }
  14. 14. Corregir errores $ svn revert filename $ svn revert --recursive . #(!)  Actúa sobre A, D, C y M  Revierte añadidos, borrados y modificaciones no  publicadas → las modificaciones locales se  pierden  $ svn status README M README $ svn revert README Reverted README $ svn status README
  15. 15. Resolver todos los conflictos $ svn resolve --accept opt file opt permite las siguientes opciones:  mine-full → la versión local es la buena  theirs-full → la versión remota es la buena  base → mantener la útima que subí   working → el fichero local es el bueno (asume  resolución manual)
  16. 16. Publicar $ svn commit  Realizar después de todos los pasos anteriores  De otro modo svn nos obligará hacerlo  Poner siempre comentario
  17. 17. Buenas prácticas Comunicación verbal Comentar commits Testear bien antes de los commits No tener miedo a los commits Commits pequeños pero relacionados
  18. 18. Pasos posteriores Ramas Mezcla de ramas Gestión de un repositorio Política de ramas y etiquetas Sistemas distribuídos
  19. 19. Programas Multiplataforma  RapidSVN Linux/Unix  RabbitVCS → GNOME  KDESvn → KDE Windows  TortoiseSVN
  20. 20. Diferencias gráficamente svn diff --diff-cmd=meld --revision 2:7 acquire.cxx
  21. 21. Diferencias gráficamente Linux/Unix  Meld → GNOME Windows  Winmerge
  22. 22. Documentación Version Control with Subversion  Ciclo de trabajo Subversion Cheat Sheet http://en.wikipedia.org/wiki/Revision_control Git ­ SVN Crash Course

×