Sistemas de control de versiones. Introducción a svn

3,629 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
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,629
On SlideShare
0
From Embeds
0
Number of Embeds
946
Actions
Shares
0
Downloads
40
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×