SlideShare a Scribd company logo
1 of 23
Download to read offline
Sistemas de control de
       versiones
  Introducción a SVN

         Miguel Oliván
             GIFNA
    Universidad de Zaragoza
Itinerario
   Introducción
   Ciclo de trabajo básico
   Explicación de cada paso
   Buenas prácticas
   Programas auxiliares
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
Sistemas de control de
      versiones
Subversion
   Ampliamente usado
   Esquema centralizado
   Multiplataforma
   Libre
Conceptos básicos
   Repositorio
   Copia local
   Revisión
   Etiqueta      (tag)
   Actualización (update)
   Publicación   (commit)
   Conflicto
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)
Ciclo de trabajo con svn
   Actualizar
   Hacer cambios
   Revisar los cambios
   Corregir errores
   Resolver todos los conflictos
   Publicar
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)
Hacer cambios
   $ svn add fichero
   $ svn delete fichero
   $ svn copy fichero.old fichero.new
   $ svn move fichero.old fichero.new
   $ svn mkdir dir
Revisar cambios
   $ svn status
         ? scratch.c
         A stuff/bloo.h
         C stuff/loot/lump.c
         D stuff/fish.c
         M bar.cs
   ¿Qué significa?
Revisar cambios

? scratch.c → no está bajo svn
A bloo.h → programado para añadirse
C stuff/loot/lump.c → ¡conflicto!
D stuff/fish.c → programado para borrarse
M bar.cs → modificaciones locales (ver 
 diferencias)
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;
    }
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
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)
Publicar
   $ svn commit

         Realizar después de todos los pasos anteriores
         De otro modo svn nos obligará hacerlo
         Poner siempre comentario
Consulta de versiones
   $ svn log [file]
    $ svn log acquire.cxx
    ------------------------------------------------------------------------
    r26 | miguel | 2010-11-25 11:26:12 +0100 (jue 25 de nov de 2010) | 2 líneas


    Accumulate,    draw and analysis


    ------------------------------------------------------------------------
    r7 | miguel | 2010-09-29 11:05:39 +0200 (mié 29 de sep de 2010) | 5 líneas


    Writing with TfileStruct and write in DAQWriter. Adding NRun


    ------------------------------------------------------------------------
    r2 | miguel | 2010-09-08 17:28:59 +0200 (mié 08 de sep de 2010) | 2 líneas


    first commit


    ------------------------------------------------------------------------
Buenas prácticas
   Comunicación verbal
   Comentar commits
   Commit de modificaciones asociadas a una 
     característica (changeset)
   Commits pequeños
   Testear bien antes de los commits
   No tener miedo a los commits
Programas
   Multiplataforma
         RapidSVN
   Linux/Unix
         RabbitVCS     → GNOME
         KDESvn        → KDE
   Windows
         TortoiseSVN
Diferencias gráficamente
   svn diff --diff-cmd=meld --revision 2:7 acquire.cxx
Diferencias gráficamente
   Linux/Unix
         Meld → GNOME
   Windows
         Winmerge
Pasos posteriores
   Ramas
   Mezcla de ramas
   Gestión de un repositorio
   Política de ramas y etiquetas
   Sistemas distribuídos
Documentación
   Version Control with Subversion
          Ciclo de trabajo
   Subversion Cheat Sheet
   http://en.wikipedia.org/wiki/Revision_control
   Git ­ SVN Crash Course

More Related Content

What's hot

Curso avanzado SVN
Curso avanzado SVNCurso avanzado SVN
Curso avanzado SVNIrontec
 
Unix essentials 3.1
Unix essentials 3.1Unix essentials 3.1
Unix essentials 3.1Julian696
 
copias de seguridad rsync
copias de seguridad rsynccopias de seguridad rsync
copias de seguridad rsyncmanu betran
 
Comandos router cisco
Comandos router ciscoComandos router cisco
Comandos router ciscoEddy Lojan
 
Dns maestro y esclavo(1)
Dns maestro y esclavo(1)Dns maestro y esclavo(1)
Dns maestro y esclavo(1)jessidi
 

What's hot (10)

Curso avanzado SVN
Curso avanzado SVNCurso avanzado SVN
Curso avanzado SVN
 
Unix essentials 3.1
Unix essentials 3.1Unix essentials 3.1
Unix essentials 3.1
 
Disco
DiscoDisco
Disco
 
copias de seguridad rsync
copias de seguridad rsynccopias de seguridad rsync
copias de seguridad rsync
 
Mis comandos favoritos en linux parte 2
Mis comandos favoritos en linux parte 2Mis comandos favoritos en linux parte 2
Mis comandos favoritos en linux parte 2
 
Comandos router cisco
Comandos router ciscoComandos router cisco
Comandos router cisco
 
Mis comandos favoritos en linux parte 3
Mis comandos favoritos en linux parte 3Mis comandos favoritos en linux parte 3
Mis comandos favoritos en linux parte 3
 
Dns maestro y esclavo(1)
Dns maestro y esclavo(1)Dns maestro y esclavo(1)
Dns maestro y esclavo(1)
 
Tutorial0
Tutorial0Tutorial0
Tutorial0
 
Comando De Router
Comando De RouterComando De Router
Comando De Router
 

Viewers also liked

Técnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesTécnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesAngel Armenta
 
Metodología de trabajo con SVN
Metodología de trabajo con SVNMetodología de trabajo con SVN
Metodología de trabajo con SVNIng. Jose Franco
 
Control de versiones desde Eclipse.
Control de versiones desde Eclipse.Control de versiones desde Eclipse.
Control de versiones desde Eclipse.Fontyed
 
Escenarios de Git - Betabeers Córdoba 06/03/2013 - #bbODB
Escenarios de Git - Betabeers Córdoba 06/03/2013 - #bbODBEscenarios de Git - Betabeers Córdoba 06/03/2013 - #bbODB
Escenarios de Git - Betabeers Córdoba 06/03/2013 - #bbODBbetabeers
 
Plan de gestion de configuración de software
Plan de gestion de configuración de softwarePlan de gestion de configuración de software
Plan de gestion de configuración de softwareilianacon
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticasIker Canarias
 

Viewers also liked (7)

Técnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesTécnicas avanzadas de control de versiones
Técnicas avanzadas de control de versiones
 
Metodología de trabajo con SVN
Metodología de trabajo con SVNMetodología de trabajo con SVN
Metodología de trabajo con SVN
 
Control de versiones desde Eclipse.
Control de versiones desde Eclipse.Control de versiones desde Eclipse.
Control de versiones desde Eclipse.
 
Escenarios de Git - Betabeers Córdoba 06/03/2013 - #bbODB
Escenarios de Git - Betabeers Córdoba 06/03/2013 - #bbODBEscenarios de Git - Betabeers Córdoba 06/03/2013 - #bbODB
Escenarios de Git - Betabeers Córdoba 06/03/2013 - #bbODB
 
Control de versiones y Subversion
Control de versiones y SubversionControl de versiones y Subversion
Control de versiones y Subversion
 
Plan de gestion de configuración de software
Plan de gestion de configuración de softwarePlan de gestion de configuración de software
Plan de gestion de configuración de software
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticas
 

Similar to Sistemas de control de versiones. Introducción a svn

Similar to Sistemas de control de versiones. Introducción a svn (20)

Desarrollo Subversivo
Desarrollo SubversivoDesarrollo Subversivo
Desarrollo Subversivo
 
Subversion v6
Subversion v6Subversion v6
Subversion v6
 
Presentación SUbversion
Presentación SUbversionPresentación SUbversion
Presentación SUbversion
 
Presentacion Subversion
Presentacion SubversionPresentacion Subversion
Presentacion Subversion
 
Charla mspba
Charla mspbaCharla mspba
Charla mspba
 
Introduccion a vcs_y_svn_v3.0
Introduccion a vcs_y_svn_v3.0Introduccion a vcs_y_svn_v3.0
Introduccion a vcs_y_svn_v3.0
 
Control de versiones utilizando subversion
Control de versiones utilizando subversionControl de versiones utilizando subversion
Control de versiones utilizando subversion
 
Svn: Sistema de archivos 4d
Svn: Sistema de archivos 4dSvn: Sistema de archivos 4d
Svn: Sistema de archivos 4d
 
Subversion
SubversionSubversion
Subversion
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
 
02-cvs-1.pdf
02-cvs-1.pdf02-cvs-1.pdf
02-cvs-1.pdf
 
Sistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de CódigoSistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de Código
 
Control De Cambios (Scm)
Control De Cambios (Scm)Control De Cambios (Scm)
Control De Cambios (Scm)
 
Administración DNS automatizado
Administración DNS automatizadoAdministración DNS automatizado
Administración DNS automatizado
 
Conversion lildbi to_v16-20100726-es
Conversion lildbi to_v16-20100726-esConversion lildbi to_v16-20100726-es
Conversion lildbi to_v16-20100726-es
 
Linux
LinuxLinux
Linux
 
Charla git
Charla gitCharla git
Charla git
 
Adi samba
Adi sambaAdi samba
Adi samba
 
Richard
RichardRichard
Richard
 
Comandos Para CMD Windows (2000,XP,VISTA,7,8)
Comandos Para CMD Windows (2000,XP,VISTA,7,8)Comandos Para CMD Windows (2000,XP,VISTA,7,8)
Comandos Para CMD Windows (2000,XP,VISTA,7,8)
 

More from miguelolivan

ANAIS: status and prospects
ANAIS: status and prospectsANAIS: status and prospects
ANAIS: status and prospectsmiguelolivan
 
Adquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con ArduinoAdquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con Arduinomiguelolivan
 
Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...miguelolivan
 
Estimación tiempo muerto
Estimación tiempo muertoEstimación tiempo muerto
Estimación tiempo muertomiguelolivan
 
Un Clúster con SLURM, uso y configuración
Un Clúster con SLURM, uso y configuraciónUn Clúster con SLURM, uso y configuración
Un Clúster con SLURM, uso y configuraciónmiguelolivan
 
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAISDiseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAISmiguelolivan
 

More from miguelolivan (6)

ANAIS: status and prospects
ANAIS: status and prospectsANAIS: status and prospects
ANAIS: status and prospects
 
Adquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con ArduinoAdquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con Arduino
 
Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...
 
Estimación tiempo muerto
Estimación tiempo muertoEstimación tiempo muerto
Estimación tiempo muerto
 
Un Clúster con SLURM, uso y configuración
Un Clúster con SLURM, uso y configuraciónUn Clúster con SLURM, uso y configuración
Un Clúster con SLURM, uso y configuración
 
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAISDiseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAIS
 

Recently uploaded

Calculadora cientifica corregida para enviar.docx
Calculadora cientifica  corregida para enviar.docxCalculadora cientifica  corregida para enviar.docx
Calculadora cientifica corregida para enviar.docxzoecaicedosalazar
 
PPT de introducción a la unidad 1 de 5 Basico.pptx
PPT de introducción a la unidad 1 de 5 Basico.pptxPPT de introducción a la unidad 1 de 5 Basico.pptx
PPT de introducción a la unidad 1 de 5 Basico.pptxProfeVivianaRS
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
TRABAJO EN GRUPO.pdf tecnología décimo :)
TRABAJO EN GRUPO.pdf tecnología décimo :)TRABAJO EN GRUPO.pdf tecnología décimo :)
TRABAJO EN GRUPO.pdf tecnología décimo :)edepjuanorozco
 
La Electricidad y La Electrónica por el grado 10-5
La Electricidad y La Electrónica por el grado 10-5La Electricidad y La Electrónica por el grado 10-5
La Electricidad y La Electrónica por el grado 10-5CamilaCordoba30
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
Trabajo de Electricidad y Electrónica grado 10-3
Trabajo de Electricidad y Electrónica grado 10-3Trabajo de Electricidad y Electrónica grado 10-3
Trabajo de Electricidad y Electrónica grado 10-3wwwcuentanuevacom
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Trabajo de La Electricidad y La Electrónica
Trabajo de La Electricidad y La ElectrónicaTrabajo de La Electricidad y La Electrónica
Trabajo de La Electricidad y La ElectrónicaCamilaCordoba30
 
taller de la electricidad y electrónica
taller de  la electricidad y electrónicataller de  la electricidad y electrónica
taller de la electricidad y electrónicaErickAlegria3
 
DESARROLLO BLOG Y ANÁLISIS DE ARTEFACTOS
DESARROLLO BLOG Y ANÁLISIS DE ARTEFACTOSDESARROLLO BLOG Y ANÁLISIS DE ARTEFACTOS
DESARROLLO BLOG Y ANÁLISIS DE ARTEFACTOSreinamanuela20
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 

Recently uploaded (20)

Calculadora cientifica corregida para enviar.docx
Calculadora cientifica  corregida para enviar.docxCalculadora cientifica  corregida para enviar.docx
Calculadora cientifica corregida para enviar.docx
 
PPT de introducción a la unidad 1 de 5 Basico.pptx
PPT de introducción a la unidad 1 de 5 Basico.pptxPPT de introducción a la unidad 1 de 5 Basico.pptx
PPT de introducción a la unidad 1 de 5 Basico.pptx
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
TRABAJO EN GRUPO.pdf tecnología décimo :)
TRABAJO EN GRUPO.pdf tecnología décimo :)TRABAJO EN GRUPO.pdf tecnología décimo :)
TRABAJO EN GRUPO.pdf tecnología décimo :)
 
La Electricidad y La Electrónica por el grado 10-5
La Electricidad y La Electrónica por el grado 10-5La Electricidad y La Electrónica por el grado 10-5
La Electricidad y La Electrónica por el grado 10-5
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
Trabajo de Electricidad y Electrónica grado 10-3
Trabajo de Electricidad y Electrónica grado 10-3Trabajo de Electricidad y Electrónica grado 10-3
Trabajo de Electricidad y Electrónica grado 10-3
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Trabajo de La Electricidad y La Electrónica
Trabajo de La Electricidad y La ElectrónicaTrabajo de La Electricidad y La Electrónica
Trabajo de La Electricidad y La Electrónica
 
taller de la electricidad y electrónica
taller de  la electricidad y electrónicataller de  la electricidad y electrónica
taller de la electricidad y electrónica
 
DESARROLLO BLOG Y ANÁLISIS DE ARTEFACTOS
DESARROLLO BLOG Y ANÁLISIS DE ARTEFACTOSDESARROLLO BLOG Y ANÁLISIS DE ARTEFACTOS
DESARROLLO BLOG Y ANÁLISIS DE ARTEFACTOS
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 

Sistemas de control de versiones. Introducción a svn

  • 1. Sistemas de control de versiones Introducción a SVN Miguel Oliván GIFNA Universidad de Zaragoza
  • 2. Itinerario  Introducción  Ciclo de trabajo básico  Explicación de cada paso  Buenas prácticas  Programas auxiliares
  • 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. Sistemas de control de versiones
  • 5. Subversion  Ampliamente usado  Esquema centralizado  Multiplataforma  Libre
  • 6. Conceptos básicos  Repositorio  Copia local  Revisión  Etiqueta (tag)  Actualización (update)  Publicación (commit)  Conflicto
  • 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. Ciclo de trabajo con svn  Actualizar  Hacer cambios  Revisar los cambios  Corregir errores  Resolver todos los conflictos  Publicar
  • 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. Hacer cambios  $ svn add fichero  $ svn delete fichero  $ svn copy fichero.old fichero.new  $ svn move fichero.old fichero.new  $ svn mkdir dir
  • 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. Revisar cambios ? scratch.c → no está bajo svn A bloo.h → programado para añadirse C stuff/loot/lump.c → ¡conflicto! D stuff/fish.c → programado para borrarse M bar.cs → modificaciones locales (ver  diferencias)
  • 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. 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. 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. Publicar  $ svn commit  Realizar después de todos los pasos anteriores  De otro modo svn nos obligará hacerlo  Poner siempre comentario
  • 17. Consulta de versiones  $ svn log [file] $ svn log acquire.cxx ------------------------------------------------------------------------ r26 | miguel | 2010-11-25 11:26:12 +0100 (jue 25 de nov de 2010) | 2 líneas Accumulate, draw and analysis ------------------------------------------------------------------------ r7 | miguel | 2010-09-29 11:05:39 +0200 (mié 29 de sep de 2010) | 5 líneas Writing with TfileStruct and write in DAQWriter. Adding NRun ------------------------------------------------------------------------ r2 | miguel | 2010-09-08 17:28:59 +0200 (mié 08 de sep de 2010) | 2 líneas first commit ------------------------------------------------------------------------
  • 18. Buenas prácticas  Comunicación verbal  Comentar commits  Commit de modificaciones asociadas a una  característica (changeset)  Commits pequeños  Testear bien antes de los commits  No tener miedo a los commits
  • 19. Programas  Multiplataforma  RapidSVN  Linux/Unix  RabbitVCS → GNOME  KDESvn → KDE  Windows  TortoiseSVN
  • 20. Diferencias gráficamente  svn diff --diff-cmd=meld --revision 2:7 acquire.cxx
  • 21. Diferencias gráficamente  Linux/Unix  Meld → GNOME  Windows  Winmerge
  • 22. Pasos posteriores  Ramas  Mezcla de ramas  Gestión de un repositorio  Política de ramas y etiquetas  Sistemas distribuídos
  • 23. Documentación  Version Control with Subversion  Ciclo de trabajo  Subversion Cheat Sheet  http://en.wikipedia.org/wiki/Revision_control  Git ­ SVN Crash Course