SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
SCV   Usos de un SCV   Subversion   Conceptos básicos    Problemas comunes   Conceptos avanzados   Sumario




            La tortuga y los documentos: Tortoise +
                           Subversion
                         Un sistema de control de versiones


                          Pablo Mellado                 Rafael Morales

                            Instituto de Astrofísica de Andalucía. CSIC


                       Seminarios IAA. Jueves 21 Junio 2007
SCV   Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario




Índice


          Sistema de Control de Versiones (SCV)
      1


          Usos de un SCV
      2


          Subversion
      3


          Conceptos básicos
      4


          Problemas comunes
      5


          Conceptos avanzados
      6
SCV   Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario




Índice

          Sistema de Control de Versiones (SCV)
      1
            Definición de un SCV
            Ejemplo de uso de un SCV Subversion

          Usos de un SCV
      2


          Subversion
      3


          Conceptos básicos
      4


          Problemas comunes
      5


          Conceptos avanzados
      6
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Definición de un SCV


Definición de un SCV

             Un quot;Sistema de Control de Versionesquot; (SCV) es una
             herramienta que permite gestionar las diferentes
             revisiones de un documento a lo largo de su ciclo de vida
             AKA: Revision Control ,Version Control, Source Control o
             (Source) Code Management (SCM) , Repository
             (repositorio)
             Se almacenan todos los cambios realizados en un fichero
             originando una nueva versión del mismo
             Es posible volver en cualquier momento a una versión
             anterior y detectar de forma automática todas las
             diferencias entre versiones
             Es posible reconstruir toda la historia de un documento
             desde su creación
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Definición de un SCV


Definición de un SCV (cont.)




             Trabajo concurrente entre usuarios
             Trabajo deslocalizado
             Control estricto sobre el manejo de versiones
SCV     Usos de un SCV     Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Ejemplo de uso de un SCV Subversion


Ejemplo de uso de un SCV Subversion




                   Figure: Ejemplo de uso de un repositorio Subversion
SCV   Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario




Índice

          Sistema de Control de Versiones (SCV)
      1


          Usos de un SCV
      2
            En proyectos
            En ficheros de texto
            En ficheros binarios

          Subversion
      3


          Conceptos básicos
      4


          Problemas comunes
      5


          Conceptos avanzados
      6
SCV     Usos de un SCV    Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


En proyectos


Usos de un SCV en proyectos



      Uso recomendado en cualquier tipo de proyectos:
               multi/mono usuario
               código fuente
               artículo
               tesis
               página web
               proyecto de investigación/instrumentación
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


En ficheros de texto


Usos de un SCV en ficheros de texto



       Uso especialmente recomendado si se usan ficheros ASCII
               Código fuente de programas
               LTEX
               A

               XML
               HTML
               VHDL
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


En ficheros binarios


Usos de un SCV en ficheros en binarios




       Uso con ficheros propietarios / binarios
               Uso reducido de las características de un SCV
               Útil para guardar hitos
SCV   Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario




Índice

          Sistema de Control de Versiones (SCV)
      1


          Usos de un SCV
      2


          Subversion
      3
            Descripción
            Subversion y CVS
            Sistemas operativos soportados por Subversion
            Listado de clientes Subversion
            Tortoise, un cliente de Subversion

          Conceptos básicos
      4


          Problemas comunes
      5
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Descripción


Subversion, un SCV




              Web: http://subversion.tigris.org/
              Subversion es un Sistema de Control de Versiones de
              código abierto, gratuito que intenta ser un reemplazo de
              CVS
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Subversion y CVS


Subversion y CVS

             http://subversion.tigris.org/
             CVS es un sistema de control de versiones gratuito, de
             código abierto y ampliamente usado
             CVS y Subversion son equivalentes
             CVS sólo maneja ficheros de texto
             El almacenamiento de Subversion es más robusto al estar
             basado en una base de datos no en ficheros planos
             La gestión del almacenamiento en CVS es fácilmente
             modificable, la de Subversion no
             CVS está peor diseñado y documentado que Subversion
             Subversion está mejor integrado con la Web
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Subversion y CVS


Subversion y CVS (cont.)




             Subversion es más seguro en la autentificación y el cifrado
             Subversion dispone de transacciones atómicas, CVS no
             Subversion sólo transmite las diferencia entre versiones,
             CVS ficheros completos
             CVS ha sido ampliamente utilizado/revisado durante años,
             Subversion no
SCV     Usos de un SCV      Subversion     Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Sistemas operativos soportados por Subversion


Sistemas operativos soportados por Subversion




              Solaris
              Linux
              Mac OS X
              Windows NT, 2000, XP y 2003
              IBM i5/OS (OS/400)
SCV      Usos de un SCV          Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Listado de clientes Subversion


Listado de clientes Subversion




               Línea de comandos
               Interface Web
               Aplicaciones independientes
               Extensiones del ’shell’ del Sistema Operativo (Tortoise)
               Pluging para IDE (Eclipse, JDeveloper)
SCV      Usos de un SCV       Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Tortoise, un cliente de Subversion


Tortoise, un cliente de Subversion


               Web: http://tortoisesvn.net/
               Es un cliente gratuito de Subversion en código abierto y
               licencia GPL
               Implementado como una extensión de la ’shell’ de
               Windows
               Implementa protocolos de autentificación y encriptación
               Integra un programa de gestión de diferencias
               Uso creciente (2 millones de descargas)
               Activamente desarrollado (bajo Subversion)
SCV   Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario




Índice

          Sistema de Control de Versiones (SCV)
      1


          Usos de un SCV
      2


          Subversion
      3


          Conceptos básicos
      4
            El problema
            Creación del repositorio
            Importación de contenidos al repositorio
            Vinculando localmente
            Actualización de contenidos desde el repositorio
            Actualización de contenidos hacia el repositorio
            La Solución
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


El problema


El Problema a Evitar
SCV      Usos de un SCV    Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Creación del repositorio


Creación del Repositorio



               El repositorio se puede crear directamente en el servidor
               usando el comando: svnadmin create.
               También se puede crear a través del TortoiseSVN con la
               opción Create repository here....
               Un repositorio puede contener varios “proyectos”.
               Suponemos que tenemos instalado y funcionando un
               servidor subversion con su repositorio creado.
SCV     Usos de un SCV      Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Importación de contenidos


Importación de Contenidos al Repositorio (import)




              El concepto import tiene que ser visto desde el punto de
              vista del servidor para entenderlo mejor.
              El servidor importa los ficheros y directorios que le
              indiquemos.
              Para la importación de los ficheros usaremos la opción
              Import....
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Vinculando localmente


Vinculando Localmente (checkout)




              Para gestionar los ficheros con subversion es necesario
              vincular una copia local al contenido del servidor.
              La opción checkout nos permite llevar a cabo esta tarea,
              y puede ser realizada por distintos usuarios.
              Es posible ejecutar checkout desde distintas máquinas
              con el mismo usuario.
SCV      Usos de un SCV       Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Actualización desde el repositorio


Actualización Desde el Repositorio (update)




               La opción Update descarga del servidor los ficheros que
               han sido cambiados desde nuestra último acceso.
               Si hay nuevos ficheros o carpetas también serán
               descargados.
               Podría haber conflictos si al hacer Update, se descarga
               un fichero que ya había sido modificado localmente.
SCV      Usos de un SCV        Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Actualización hacia el repositorio


Actualización Hacia el Repositorio (commit)



                Es muy aconsejable ejecutar el comando Update antes
                de un Commit
                La opción Commit... envía las modificaciones locales al
                servidor.
                En cada Commit se incrementa el número de revision
                (rev).
                Si hay nuevos ficheros o carpetas aparecerá la opción de
                añadirlos al repositorio.
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


La Solución


La Solución Aportada
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


La Solución


La Solución Aportada (cont.)
SCV   Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario




Índice

          Sistema de Control de Versiones (SCV)
      1


          Usos de un SCV
      2


          Subversion
      3


          Conceptos básicos
      4


          Problemas comunes
      5
            Resolución de conflictos entre versiones
            Deshacer últimos cambios

          Conceptos avanzados
      6
SCV     Usos de un SCV    Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Resolución de conflictos


Resolución de Conflictos entre Versiones (resolv)

              Cuando un conflicto aparece, se crean en el directorio
              local los siguientes ficheros:
                      nombre_fichero.ext.rXX, donde XX es la última
                      revisión que quot;conocíaquot; nuestro programa cliente
                      nombre_fichero.ext.mine, es el fichero tal y como lo
                      teníamos antes del conflicto.
                      nombre_fichero.ext.rYY, donde YY es la nueva
                      revisión que nuestro programa cliente quot;desconocíaquot;.
              En el fichero nombre_fichero.ext se hace una mezcla de
              todos los cambios de una forma bastante particular.
              Con la opción Edit conflict se puede resolver el
              conflicto gráficamente.
              Para dar el conflicto como resuelto usar la opción
              Resolved.
SCV    Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Deshacer cambios


Deshacer Últimos Cambios (revert, diff)




             Usando revert podemos deshacer todos los cambios y
             volver a la versión que nos descargamos del servidor.
             También es posible ver gráficamente estos cambios con
             diff.
             Usando la opción show log tenemos más opciones.
SCV   Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario




Índice

          Sistema de Control de Versiones (SCV)
      1


          Usos de un SCV
      2


          Subversion
      3


          Conceptos básicos
      4


          Problemas comunes
      5


          Conceptos avanzados
      6
            Etiquetas y Ramas
            Fusionar diferentes versiones
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Etiquetas y Ramas


Etiquetas (tag)




              Se utilizan para marcar determinadas revisiones.
              Se facilita la tarea si hemos utilizado la estructura
              recomendada (trunk, tags, branches).
              Muy usadas para quot;software releasequot; o para quot;congelar quot; un
              estado.
SCV     Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Etiquetas y Ramas


Gestión de ramas (branch, switch)



              La creación de una rama es igual a la creación de una
              etiqueta, pero en este caso el directorio destino será
              branches.
              Muy usadas, por ejemplo, cuando se va a probar una
              nueva tecnología en nuestro desarrollo.
              Es necesario hacer switch si queremos que nuestros
              cambios se vayan realizando en la rama recién creada.
SCV     Usos de un SCV      Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario


Fusionar versiones


Fusionando diferentes Versiones (merge)




              Las ramas creadas pueden tener dos destinos finales:
                         Ser abandonadas porque no interesa seguir su desarrollo.
                     1
                         Para volver al trunk original es necesario hacer switch.
                         Fusionarse con el trunk para incorporarlas al desarrollo
                     2
                         principal.
                         De nuevo es necesario hacer switch y despues merge.
SCV   Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario




Sumario



           Un SCV es una herramienta que permite gestionar las
           diferentes revisiones de un documento.
           Especial utilidad con ficheros ASCII pero también con
           ficheros binarios.
           Uso de un SCV recomendado en cualquier tipo de
           proyecto.
           Subversión es un SCV multiplataforma, multiusuario,
           gratuito y de código abierto. Tortoise es uno de los clientes
           de Subversion.
SCV   Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario




Sumario




           Crear un repositorio y realizar un checkout nos permite
           gestionar versiones de nuestros ficheros.
           Tenemos las herramientas necesarias para resolver
           conflictos y para volver a una versión anterior.
           Las etiquetas y las ramas nos permiten disfrutar de más
           funcionalidad.
SCV   Usos de un SCV   Subversion   Conceptos básicos   Problemas comunes   Conceptos avanzados   Sumario




Fin del Seminario

Más contenido relacionado

Similar a Sistema de Control de Versiones (SCV) - Conceptos básicos de Subversion

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ódigoJesus Castagnetto
 
"Control de Versiones - CVS en proyectos .NET"
"Control de Versiones - CVS en proyectos .NET""Control de Versiones - CVS en proyectos .NET"
"Control de Versiones - CVS en proyectos .NET"La Red DBAccess
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitSergio Rus
 
Control de versiones utilizando subversion
Control de versiones utilizando subversionControl de versiones utilizando subversion
Control de versiones utilizando subversionJulio Pari
 
Subversion Press
Subversion PressSubversion Press
Subversion Pressjlrvpuma
 
Lp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloLp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloAngelDX
 
Presentacion Subversion
Presentacion SubversionPresentacion Subversion
Presentacion SubversionCesar Yanez
 
Control de versiones con git
Control de versiones con gitControl de versiones con git
Control de versiones con gitEudris Cabrera
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHubdrsevilla
 
Buenas Prácticas de Desarrollo para la Adecuación de CMS bajo Software Libre
Buenas Prácticas de Desarrollo para la Adecuación de CMS bajo Software LibreBuenas Prácticas de Desarrollo para la Adecuación de CMS bajo Software Libre
Buenas Prácticas de Desarrollo para la Adecuación de CMS bajo Software LibreLucio Marcelo Quispe Ortega
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsBEEVA_es
 
01 el proceso_unificado
01 el proceso_unificado01 el proceso_unificado
01 el proceso_unificadoorgg2014
 
[ES] Control de versiones con subversion
[ES] Control de versiones con  subversion[ES] Control de versiones con  subversion
[ES] Control de versiones con subversionEudris Cabrera
 

Similar a Sistema de Control de Versiones (SCV) - Conceptos básicos de Subversion (20)

Subversion
SubversionSubversion
Subversion
 
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 versiones y Subversion
Control de versiones y SubversionControl de versiones y Subversion
Control de versiones y Subversion
 
"Control de Versiones - CVS en proyectos .NET"
"Control de Versiones - CVS en proyectos .NET""Control de Versiones - CVS en proyectos .NET"
"Control de Versiones - CVS en proyectos .NET"
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Control de versiones utilizando subversion
Control de versiones utilizando subversionControl de versiones utilizando subversion
Control de versiones utilizando subversion
 
Subversion Press
Subversion PressSubversion Press
Subversion Press
 
Lp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloLp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de Desarrollo
 
Presentacion Subversion
Presentacion SubversionPresentacion Subversion
Presentacion Subversion
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
 
Charla git
Charla gitCharla git
Charla git
 
Subversion
SubversionSubversion
Subversion
 
Control de versiones con git
Control de versiones con gitControl de versiones con git
Control de versiones con git
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
 
Buenas Prácticas de Desarrollo para la Adecuación de CMS bajo Software Libre
Buenas Prácticas de Desarrollo para la Adecuación de CMS bajo Software LibreBuenas Prácticas de Desarrollo para la Adecuación de CMS bajo Software Libre
Buenas Prácticas de Desarrollo para la Adecuación de CMS bajo Software Libre
 
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
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y Jenkins
 
DevOps en AWS
DevOps en AWS DevOps en AWS
DevOps en AWS
 
01 el proceso_unificado
01 el proceso_unificado01 el proceso_unificado
01 el proceso_unificado
 
[ES] Control de versiones con subversion
[ES] Control de versiones con  subversion[ES] Control de versiones con  subversion
[ES] Control de versiones con subversion
 

Último

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 

Último (13)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

Sistema de Control de Versiones (SCV) - Conceptos básicos de Subversion

  • 1. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario La tortuga y los documentos: Tortoise + Subversion Un sistema de control de versiones Pablo Mellado Rafael Morales Instituto de Astrofísica de Andalucía. CSIC Seminarios IAA. Jueves 21 Junio 2007
  • 2. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Índice Sistema de Control de Versiones (SCV) 1 Usos de un SCV 2 Subversion 3 Conceptos básicos 4 Problemas comunes 5 Conceptos avanzados 6
  • 3. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Índice Sistema de Control de Versiones (SCV) 1 Definición de un SCV Ejemplo de uso de un SCV Subversion Usos de un SCV 2 Subversion 3 Conceptos básicos 4 Problemas comunes 5 Conceptos avanzados 6
  • 4. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Definición de un SCV Definición de un SCV Un quot;Sistema de Control de Versionesquot; (SCV) es una herramienta que permite gestionar las diferentes revisiones de un documento a lo largo de su ciclo de vida AKA: Revision Control ,Version Control, Source Control o (Source) Code Management (SCM) , Repository (repositorio) Se almacenan todos los cambios realizados en un fichero originando una nueva versión del mismo Es posible volver en cualquier momento a una versión anterior y detectar de forma automática todas las diferencias entre versiones Es posible reconstruir toda la historia de un documento desde su creación
  • 5. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Definición de un SCV Definición de un SCV (cont.) Trabajo concurrente entre usuarios Trabajo deslocalizado Control estricto sobre el manejo de versiones
  • 6. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Ejemplo de uso de un SCV Subversion Ejemplo de uso de un SCV Subversion Figure: Ejemplo de uso de un repositorio Subversion
  • 7. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Índice Sistema de Control de Versiones (SCV) 1 Usos de un SCV 2 En proyectos En ficheros de texto En ficheros binarios Subversion 3 Conceptos básicos 4 Problemas comunes 5 Conceptos avanzados 6
  • 8. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario En proyectos Usos de un SCV en proyectos Uso recomendado en cualquier tipo de proyectos: multi/mono usuario código fuente artículo tesis página web proyecto de investigación/instrumentación
  • 9. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario En ficheros de texto Usos de un SCV en ficheros de texto Uso especialmente recomendado si se usan ficheros ASCII Código fuente de programas LTEX A XML HTML VHDL
  • 10. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario En ficheros binarios Usos de un SCV en ficheros en binarios Uso con ficheros propietarios / binarios Uso reducido de las características de un SCV Útil para guardar hitos
  • 11. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Índice Sistema de Control de Versiones (SCV) 1 Usos de un SCV 2 Subversion 3 Descripción Subversion y CVS Sistemas operativos soportados por Subversion Listado de clientes Subversion Tortoise, un cliente de Subversion Conceptos básicos 4 Problemas comunes 5
  • 12. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Descripción Subversion, un SCV Web: http://subversion.tigris.org/ Subversion es un Sistema de Control de Versiones de código abierto, gratuito que intenta ser un reemplazo de CVS
  • 13. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Subversion y CVS Subversion y CVS http://subversion.tigris.org/ CVS es un sistema de control de versiones gratuito, de código abierto y ampliamente usado CVS y Subversion son equivalentes CVS sólo maneja ficheros de texto El almacenamiento de Subversion es más robusto al estar basado en una base de datos no en ficheros planos La gestión del almacenamiento en CVS es fácilmente modificable, la de Subversion no CVS está peor diseñado y documentado que Subversion Subversion está mejor integrado con la Web
  • 14. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Subversion y CVS Subversion y CVS (cont.) Subversion es más seguro en la autentificación y el cifrado Subversion dispone de transacciones atómicas, CVS no Subversion sólo transmite las diferencia entre versiones, CVS ficheros completos CVS ha sido ampliamente utilizado/revisado durante años, Subversion no
  • 15. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Sistemas operativos soportados por Subversion Sistemas operativos soportados por Subversion Solaris Linux Mac OS X Windows NT, 2000, XP y 2003 IBM i5/OS (OS/400)
  • 16. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Listado de clientes Subversion Listado de clientes Subversion Línea de comandos Interface Web Aplicaciones independientes Extensiones del ’shell’ del Sistema Operativo (Tortoise) Pluging para IDE (Eclipse, JDeveloper)
  • 17. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Tortoise, un cliente de Subversion Tortoise, un cliente de Subversion Web: http://tortoisesvn.net/ Es un cliente gratuito de Subversion en código abierto y licencia GPL Implementado como una extensión de la ’shell’ de Windows Implementa protocolos de autentificación y encriptación Integra un programa de gestión de diferencias Uso creciente (2 millones de descargas) Activamente desarrollado (bajo Subversion)
  • 18. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Índice Sistema de Control de Versiones (SCV) 1 Usos de un SCV 2 Subversion 3 Conceptos básicos 4 El problema Creación del repositorio Importación de contenidos al repositorio Vinculando localmente Actualización de contenidos desde el repositorio Actualización de contenidos hacia el repositorio La Solución
  • 19. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario El problema El Problema a Evitar
  • 20. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Creación del repositorio Creación del Repositorio El repositorio se puede crear directamente en el servidor usando el comando: svnadmin create. También se puede crear a través del TortoiseSVN con la opción Create repository here.... Un repositorio puede contener varios “proyectos”. Suponemos que tenemos instalado y funcionando un servidor subversion con su repositorio creado.
  • 21. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Importación de contenidos Importación de Contenidos al Repositorio (import) El concepto import tiene que ser visto desde el punto de vista del servidor para entenderlo mejor. El servidor importa los ficheros y directorios que le indiquemos. Para la importación de los ficheros usaremos la opción Import....
  • 22. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Vinculando localmente Vinculando Localmente (checkout) Para gestionar los ficheros con subversion es necesario vincular una copia local al contenido del servidor. La opción checkout nos permite llevar a cabo esta tarea, y puede ser realizada por distintos usuarios. Es posible ejecutar checkout desde distintas máquinas con el mismo usuario.
  • 23. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Actualización desde el repositorio Actualización Desde el Repositorio (update) La opción Update descarga del servidor los ficheros que han sido cambiados desde nuestra último acceso. Si hay nuevos ficheros o carpetas también serán descargados. Podría haber conflictos si al hacer Update, se descarga un fichero que ya había sido modificado localmente.
  • 24. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Actualización hacia el repositorio Actualización Hacia el Repositorio (commit) Es muy aconsejable ejecutar el comando Update antes de un Commit La opción Commit... envía las modificaciones locales al servidor. En cada Commit se incrementa el número de revision (rev). Si hay nuevos ficheros o carpetas aparecerá la opción de añadirlos al repositorio.
  • 25. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario La Solución La Solución Aportada
  • 26. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario La Solución La Solución Aportada (cont.)
  • 27. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Índice Sistema de Control de Versiones (SCV) 1 Usos de un SCV 2 Subversion 3 Conceptos básicos 4 Problemas comunes 5 Resolución de conflictos entre versiones Deshacer últimos cambios Conceptos avanzados 6
  • 28. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Resolución de conflictos Resolución de Conflictos entre Versiones (resolv) Cuando un conflicto aparece, se crean en el directorio local los siguientes ficheros: nombre_fichero.ext.rXX, donde XX es la última revisión que quot;conocíaquot; nuestro programa cliente nombre_fichero.ext.mine, es el fichero tal y como lo teníamos antes del conflicto. nombre_fichero.ext.rYY, donde YY es la nueva revisión que nuestro programa cliente quot;desconocíaquot;. En el fichero nombre_fichero.ext se hace una mezcla de todos los cambios de una forma bastante particular. Con la opción Edit conflict se puede resolver el conflicto gráficamente. Para dar el conflicto como resuelto usar la opción Resolved.
  • 29. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Deshacer cambios Deshacer Últimos Cambios (revert, diff) Usando revert podemos deshacer todos los cambios y volver a la versión que nos descargamos del servidor. También es posible ver gráficamente estos cambios con diff. Usando la opción show log tenemos más opciones.
  • 30. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Índice Sistema de Control de Versiones (SCV) 1 Usos de un SCV 2 Subversion 3 Conceptos básicos 4 Problemas comunes 5 Conceptos avanzados 6 Etiquetas y Ramas Fusionar diferentes versiones
  • 31. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Etiquetas y Ramas Etiquetas (tag) Se utilizan para marcar determinadas revisiones. Se facilita la tarea si hemos utilizado la estructura recomendada (trunk, tags, branches). Muy usadas para quot;software releasequot; o para quot;congelar quot; un estado.
  • 32. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Etiquetas y Ramas Gestión de ramas (branch, switch) La creación de una rama es igual a la creación de una etiqueta, pero en este caso el directorio destino será branches. Muy usadas, por ejemplo, cuando se va a probar una nueva tecnología en nuestro desarrollo. Es necesario hacer switch si queremos que nuestros cambios se vayan realizando en la rama recién creada.
  • 33. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Fusionar versiones Fusionando diferentes Versiones (merge) Las ramas creadas pueden tener dos destinos finales: Ser abandonadas porque no interesa seguir su desarrollo. 1 Para volver al trunk original es necesario hacer switch. Fusionarse con el trunk para incorporarlas al desarrollo 2 principal. De nuevo es necesario hacer switch y despues merge.
  • 34. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Sumario Un SCV es una herramienta que permite gestionar las diferentes revisiones de un documento. Especial utilidad con ficheros ASCII pero también con ficheros binarios. Uso de un SCV recomendado en cualquier tipo de proyecto. Subversión es un SCV multiplataforma, multiusuario, gratuito y de código abierto. Tortoise es uno de los clientes de Subversion.
  • 35. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Sumario Crear un repositorio y realizar un checkout nos permite gestionar versiones de nuestros ficheros. Tenemos las herramientas necesarias para resolver conflictos y para volver a una versión anterior. Las etiquetas y las ramas nos permiten disfrutar de más funcionalidad.
  • 36. SCV Usos de un SCV Subversion Conceptos básicos Problemas comunes Conceptos avanzados Sumario Fin del Seminario