SlideShare una empresa de Scribd logo
Subversion
Uso avanzado
    Bruno Gonzalez <bruno@irontec.com>
Irontec – Internet y Sistemas sobre GNU/Linux
Curso Avanzado SVN




1
                                      Esquema del curso

    1.Nociones básicas:
        1.Svn 101
        2.Estructura de un checkout
        3.Estructura de un repo
    2.merge y su hijo bastardo: update
    3.Merge avanzado: branches
    4.Arreglar los conflictos de merge/update

    5.Externals

    6.Miscelanea


                                                       2
Curso Avanzado SVN




1
                       Nociones Básicas




    Nociones básicas




                                     3
Curso Avanzado SVN




1
                           Nociones Básicas: SVN 101

    ➢   Comandos típicos
          ➢ Checkout – svn co


          ➢ Update – svn up


          ➢ Commit – svn ci


          ➢ Status – svn st


          ➢ cat, blame, log… → svn help


    ➢   Usar siempre que se pueda:
          ➢ Copy – cp


          ➢ Move – mv


    ➢   URLs:
          ➢ Locales:        ./X
          ➢ Remotas:        http://dev2.../X
          ➢ Remota (rev):   http://dev2.../X@R
                                                       4
Curso Avanzado SVN




1
    Nociones Básicas: Estructura básica de un checkout



       ➢   Datos → ls
       ➢   Metadatos → ls .svn
             ➢ svn info *


             ➢ svn proplist    (propedit, propdel...)


       ➢   Se puede mover un checkout o subdirectorio
           por el disco duro sin problemas.




                                                           5
Curso Avanzado SVN
            Nociones Básicas: Estructura básica de un

1   ➢   trunk tags branches:
                                          repositorio


           ➢ Es un estandard de-facto


           ➢ Podemos usarlo o no, a svn le da igual




    ➢   Los directorios de svn tienen el significado
        que nosotros le demos:
          ➢ trunk releases branches


          ➢ trunk tags branches


          ➢ edge released estable


          ➢ internal external


          ➢ (nada)


          ➢ ...




                                                        6
Curso Avanzado SVN




1
                   Merge y su hijo bastardo: update




    Merge y su hijo bastardo: update




                                                   7
Curso Avanzado SVN




1
            Merge y su hijo bastardo update: merge 101

    ➢   Qué es merge → DIFF + PATCH
          ➢ 1) Encontrar cambios en un sitio


          ➢ 2) Aplicar los cambios en otro sitio (by


              default: “.”)

        svn merge -r rev1:rev2 origen [destino]

    ➢   Ejemplo:
           ➢ svn merge -r BASE:HEAD .


           ➢ svn update -r     HEAD

    ➢   svn help merge
          ➢ --dry-run para previsualizar sin aplicar

                                                        8
Curso Avanzado SVN




1
    Merge y su hijo bastardo update: backports/rollbacks

       ➢   Qué es un backport: aplicar un bugfix/feature
           de otro sitio a nuestro checkout/fichero.
           svn merge -rREV-1:REV otroSitio nuestroCheckout
           svn merge -c      REV otroSitio nuestroCheckout


       ➢   Backport de varios revisiones concretas:
           svn merge -c 5, 7, 10,11 otroSitio nuestroCheckout
           svn merge -r 4:5 6:7 9:11 otroSitio nuestroCheckout

       ➢   Restaurar una version vieja:
           svn merge -r BASE:X nuestroFichero   nuestroCheckout
           svn cp              nuestroFichero@X nuestroCheckout

       ➢   Para evitar conflictos, no tener cambios
           locales
                                                                 9
Curso Avanzado SVN




1
                Merge avanzado: branches




    Merge avanzado: branches




                                          10
Curso Avanzado SVN




1
               Merge avanzado de branches: premisas

    ➢   Tipos básicos:
           ➢ Ramas constantes (nunca cambiarán):


              ➢ Tags, releases, snapshots


           ➢ Ramas a corto plazo (horas/días):


              ➢ Features, bugfixes complicados


           ➢ Ramas a largo plazo (infinito):


              ➢ Estable, trunk




    ➢   Antes de remezclar ramas ni mergear nada:
            Eliminar/Committear siempre los
                    cambios locales!!


                                                     11
Curso Avanzado SVN




1
                Merge avanzado de branches: premisas

    ➢   Crear una rama:
          ➢ svn cp trunk miRama


          ➢ svn cp http://.../trunk http://.../miRama




    ➢   Renombrar una rama:
          ➢ svn mv http://.../miRama http://.../foo




    ➢   Eliminar una rama que ya no hace falta:
           ➢ svn rm http://.../miRama




    ➢   Aún así, siempre quedarán en el historial!!
    ➢   Atajo: http://.../svn/proyecto/XXX == ^XXX

                                                        12
Curso Avanzado SVN




1
        Merge avanzado de branches: ramas constantes

    ➢   Son lo más simple:
          ➢ svn cp http://.../trunk http://.../tags/XXX




    ➢   Lo normal es que jamás se modifiquen estas
        ramas (excepto renombrar tal vez).

    ➢   Es típico usarlas para cada “entrega” o
        checkpoint importante.

    ➢   Entregas:
          ➢ svn export http://.../tags/XXX XXX


          ➢ zip -r 9 XXX.zip XXX


          ➢ thunderbird XXX.zip (o lo que sea...)

                                                          13
Curso Avanzado SVN




1
    Merge avanzado de branches: ramas a corto plazo

    ➢   Crear rama como siempre:
          ➢ svn cp http://.../trunk http://.../featureX




    ➢   Developear en esa rama:
          ➢ while (1): vi *.php; svn ci


    ➢   Ponerse al día con trunk:
          ➢ svn merge ^/trunk


    ➢   Pasar tu featureX a trunk:
          ➢ svn switch ^/trunk


          ➢ svn merge ^/featureX




    ➢   Eliminar rama como siempre:
           ➢ svn rm http://.../featureX
                                                          14
Curso Avanzado SVN




1
    Merge avanzado de branches: ramas a largo plazo

    ➢   Crear rama como siempre:
          ➢ svn cp http://.../trunk http://.../clienteX




    ➢   Developear en esa rama:
          ➢ while (1): vi *.php; svn ci


    ➢   Ponerse al día con todo trunk:
          ➢ svn merge ^/trunk


    ➢   Backportear un revisiones concretas:
          ➢ svn merge -c 158 ^/clienteYYY


          ➢ svn merge -c 48,49,109 ^/clienteZZZ




                                                          15
Curso Avanzado SVN




1
          Arreglar los conflictos de merge/update




    Arreglar los conflictos de merge/update




                                                 16
Curso Avanzado SVN




1
                       Arreglar los conflictos: qué son

    ➢   “Mi casa es blanca”
    ➢   Juan: “Mi casa es negra” → svn commit
    ➢   Svn: OK!
    ➢   Enjuto: “Tu casa es blanca” → svn commit
    ➢   Svn: error, updatea tu version
    ➢   Enjuto: svn update
    ➢   Svn: error, hay un conflicto

           SVN no sabe si debe dejarlo como juan
               quiere o como enjuto quiere.



                                                      17
Curso Avanzado SVN
           Arreglar los conflictos: cómo se identifican y

1   ➢   Aparece una 'C' en svn status
                                               resuelven


    ➢   Aparecen fichero.mine, fichero.r27, etc.
    ➢   Svn modifica el fichero con el intento de
        merge.
        >>>>>>
        “Mi casa es negra”
        ======
        “Tu casa es blanca”
        <<<<<<


    ➢   Enjuto: vi fichero→“mi casa es negra, la tuya blanca”
    ➢   Enjuto: svn resolved fichero
    ➢   Enjuto: svn commit
    ➢   Svn: OK!
                                                            18
Curso Avanzado SVN




1
      Svn externals y otros consejos




    svn externals y otros consejos




                                    19
Curso Avanzado SVN




1
                           Svn externals y otros consejos

    ➢   Son metadatos. Permite symlinkear a
        cualquier directorio de cualquier repositorio.

    ➢   Como crearlos:
          ➢ svn propedit svn:externals .


             libs/karma -r1287 http://.../karma/trunk
             libs/karma http://.../karma/tags/v1.5”


    ➢   Usar revisiones o ramas constantes siempre!
          ➢ Así un checkout de tu proyecto obtendra


              siempre karma en el mismo estado
              ahora y el año que viene.

    ➢   Ojo: las rutas no se actualizan solas!               20
Curso Avanzado SVN




1
                            Svn externals y otros consejos

    ➢   Versionar un fichero como ejecutable:
            svn propset svn:executable “*” fichero

    ➢   Ignorar ficheros de un directorio:
           ➢ Svn propedit svn:ignore .


                 tmp.*
                 cache/.*jpg
                 Debug$

    ➢   Poder visualizar un diff:
            apt-get install colordiff
            echo 'svn diff $* |colordiff |less -R' >svndiff.sh

    ➢   Autonotas en mantis?
                                                                 21

Más contenido relacionado

Destacado

IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
Irontec
 
Qué hace tu Asterisk cuando no miras
Qué hace tu Asterisk cuando no mirasQué hace tu Asterisk cuando no miras
Qué hace tu Asterisk cuando no miras
Elio Rojano
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y Asterisk
Irontec
 
Comparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSenseComparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSense
Irontec
 
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAXJavascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Irontec
 
Introducción a Asterisk
Introducción a AsteriskIntroducción a Asterisk
Introducción a Asterisk
Saúl Ibarra Corretgé
 
Curso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPCurso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIP
Irontec
 
Curso completo de CRM + SugarCRM
Curso completo de CRM + SugarCRMCurso completo de CRM + SugarCRM
Curso completo de CRM + SugarCRM
Irontec
 
Sistemas de VoIP con Asterisk: Modulo I
Sistemas de VoIP con Asterisk: Modulo ISistemas de VoIP con Asterisk: Modulo I
Sistemas de VoIP con Asterisk: Modulo I
Gabriel Astudillo
 
Curso de Asterisk (e-Verano 2007)
Curso de Asterisk (e-Verano 2007)Curso de Asterisk (e-Verano 2007)
Curso de Asterisk (e-Verano 2007)
Saúl Ibarra Corretgé
 

Destacado (10)

IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
 
Qué hace tu Asterisk cuando no miras
Qué hace tu Asterisk cuando no mirasQué hace tu Asterisk cuando no miras
Qué hace tu Asterisk cuando no miras
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y Asterisk
 
Comparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSenseComparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSense
 
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAXJavascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
 
Introducción a Asterisk
Introducción a AsteriskIntroducción a Asterisk
Introducción a Asterisk
 
Curso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPCurso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIP
 
Curso completo de CRM + SugarCRM
Curso completo de CRM + SugarCRMCurso completo de CRM + SugarCRM
Curso completo de CRM + SugarCRM
 
Sistemas de VoIP con Asterisk: Modulo I
Sistemas de VoIP con Asterisk: Modulo ISistemas de VoIP con Asterisk: Modulo I
Sistemas de VoIP con Asterisk: Modulo I
 
Curso de Asterisk (e-Verano 2007)
Curso de Asterisk (e-Verano 2007)Curso de Asterisk (e-Verano 2007)
Curso de Asterisk (e-Verano 2007)
 

Similar a Curso avanzado SVN

Svn: Sistema de archivos 4d
Svn: Sistema de archivos 4dSvn: Sistema de archivos 4d
Svn: Sistema de archivos 4d
Javier P.
 
Sistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svnSistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svn
miguelolivan
 
Control de versiones y Subversion
Control de versiones y SubversionControl de versiones y Subversion
Control de versiones y Subversion
Jose Luis Lopez Pino
 
Introduccion Subversion
Introduccion SubversionIntroduccion Subversion
Introduccion Subversion
Víctor Velarde
 
Charla mspba
Charla mspbaCharla mspba
Charla mspba
Julián Perelli
 
Presentación SUbversion
Presentación SUbversionPresentación SUbversion
Presentación SUbversion
rxif914u41
 
Presentacion Subversion
Presentacion SubversionPresentacion Subversion
Presentacion Subversion
Cesar Yanez
 
Subversion v6
Subversion v6Subversion v6
02-cvs-1.pdf
02-cvs-1.pdf02-cvs-1.pdf
02-cvs-1.pdf
AlbusIva
 

Similar a Curso avanzado SVN (9)

Svn: Sistema de archivos 4d
Svn: Sistema de archivos 4dSvn: Sistema de archivos 4d
Svn: Sistema de archivos 4d
 
Sistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svnSistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svn
 
Control de versiones y Subversion
Control de versiones y SubversionControl de versiones y Subversion
Control de versiones y Subversion
 
Introduccion Subversion
Introduccion SubversionIntroduccion Subversion
Introduccion Subversion
 
Charla mspba
Charla mspbaCharla mspba
Charla mspba
 
Presentación SUbversion
Presentación SUbversionPresentación SUbversion
Presentación SUbversion
 
Presentacion Subversion
Presentacion SubversionPresentacion Subversion
Presentacion Subversion
 
Subversion v6
Subversion v6Subversion v6
Subversion v6
 
02-cvs-1.pdf
02-cvs-1.pdf02-cvs-1.pdf
02-cvs-1.pdf
 

Más de Irontec

Gestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajoGestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajo
Irontec
 
Sobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIPSobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIP
Irontec
 
Presente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ ProviderPresente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ Provider
Irontec
 
Automated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCAutomated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTC
Irontec
 
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Irontec
 
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
Irontec
 
VoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerVoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz provider
Irontec
 
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec
 
Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)
Irontec
 
Curso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | IrontecCurso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | Irontec
Irontec
 
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskeraEuskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Irontec
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6
Irontec
 
Caso de éxito: Irontec por nuestro proveedor Hostalia
Caso de éxito: Irontec por nuestro proveedor HostaliaCaso de éxito: Irontec por nuestro proveedor Hostalia
Caso de éxito: Irontec por nuestro proveedor Hostalia
Irontec
 
PHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en AndroidPHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en Android
Irontec
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
Irontec
 
Mysq Replication
Mysq ReplicationMysq Replication
Mysq Replication
Irontec
 
Curso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressCurso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de Wordpress
Irontec
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
Irontec
 
Certificación y firma electrónica
Certificación y firma electrónicaCertificación y firma electrónica
Certificación y firma electrónica
Irontec
 

Más de Irontec (19)

Gestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajoGestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajo
 
Sobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIPSobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIP
 
Presente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ ProviderPresente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ Provider
 
Automated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCAutomated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTC
 
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
 
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
 
VoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerVoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz provider
 
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
 
Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)
 
Curso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | IrontecCurso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | Irontec
 
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskeraEuskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6
 
Caso de éxito: Irontec por nuestro proveedor Hostalia
Caso de éxito: Irontec por nuestro proveedor HostaliaCaso de éxito: Irontec por nuestro proveedor Hostalia
Caso de éxito: Irontec por nuestro proveedor Hostalia
 
PHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en AndroidPHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en Android
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
 
Mysq Replication
Mysq ReplicationMysq Replication
Mysq Replication
 
Curso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressCurso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de Wordpress
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
 
Certificación y firma electrónica
Certificación y firma electrónicaCertificación y firma electrónica
Certificación y firma electrónica
 

Último

Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
leia ereni
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
codesiret
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
70244530
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
yuberpalma
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
MiguelAtencio10
 

Último (20)

Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
 

Curso avanzado SVN

  • 1. Subversion Uso avanzado Bruno Gonzalez <bruno@irontec.com> Irontec – Internet y Sistemas sobre GNU/Linux
  • 2. Curso Avanzado SVN 1 Esquema del curso 1.Nociones básicas: 1.Svn 101 2.Estructura de un checkout 3.Estructura de un repo 2.merge y su hijo bastardo: update 3.Merge avanzado: branches 4.Arreglar los conflictos de merge/update 5.Externals 6.Miscelanea 2
  • 3. Curso Avanzado SVN 1 Nociones Básicas Nociones básicas 3
  • 4. Curso Avanzado SVN 1 Nociones Básicas: SVN 101 ➢ Comandos típicos ➢ Checkout – svn co ➢ Update – svn up ➢ Commit – svn ci ➢ Status – svn st ➢ cat, blame, log… → svn help ➢ Usar siempre que se pueda: ➢ Copy – cp ➢ Move – mv ➢ URLs: ➢ Locales: ./X ➢ Remotas: http://dev2.../X ➢ Remota (rev): http://dev2.../X@R 4
  • 5. Curso Avanzado SVN 1 Nociones Básicas: Estructura básica de un checkout ➢ Datos → ls ➢ Metadatos → ls .svn ➢ svn info * ➢ svn proplist (propedit, propdel...) ➢ Se puede mover un checkout o subdirectorio por el disco duro sin problemas. 5
  • 6. Curso Avanzado SVN Nociones Básicas: Estructura básica de un 1 ➢ trunk tags branches: repositorio ➢ Es un estandard de-facto ➢ Podemos usarlo o no, a svn le da igual ➢ Los directorios de svn tienen el significado que nosotros le demos: ➢ trunk releases branches ➢ trunk tags branches ➢ edge released estable ➢ internal external ➢ (nada) ➢ ... 6
  • 7. Curso Avanzado SVN 1 Merge y su hijo bastardo: update Merge y su hijo bastardo: update 7
  • 8. Curso Avanzado SVN 1 Merge y su hijo bastardo update: merge 101 ➢ Qué es merge → DIFF + PATCH ➢ 1) Encontrar cambios en un sitio ➢ 2) Aplicar los cambios en otro sitio (by default: “.”) svn merge -r rev1:rev2 origen [destino] ➢ Ejemplo: ➢ svn merge -r BASE:HEAD . ➢ svn update -r HEAD ➢ svn help merge ➢ --dry-run para previsualizar sin aplicar 8
  • 9. Curso Avanzado SVN 1 Merge y su hijo bastardo update: backports/rollbacks ➢ Qué es un backport: aplicar un bugfix/feature de otro sitio a nuestro checkout/fichero. svn merge -rREV-1:REV otroSitio nuestroCheckout svn merge -c REV otroSitio nuestroCheckout ➢ Backport de varios revisiones concretas: svn merge -c 5, 7, 10,11 otroSitio nuestroCheckout svn merge -r 4:5 6:7 9:11 otroSitio nuestroCheckout ➢ Restaurar una version vieja: svn merge -r BASE:X nuestroFichero nuestroCheckout svn cp nuestroFichero@X nuestroCheckout ➢ Para evitar conflictos, no tener cambios locales 9
  • 10. Curso Avanzado SVN 1 Merge avanzado: branches Merge avanzado: branches 10
  • 11. Curso Avanzado SVN 1 Merge avanzado de branches: premisas ➢ Tipos básicos: ➢ Ramas constantes (nunca cambiarán): ➢ Tags, releases, snapshots ➢ Ramas a corto plazo (horas/días): ➢ Features, bugfixes complicados ➢ Ramas a largo plazo (infinito): ➢ Estable, trunk ➢ Antes de remezclar ramas ni mergear nada: Eliminar/Committear siempre los cambios locales!! 11
  • 12. Curso Avanzado SVN 1 Merge avanzado de branches: premisas ➢ Crear una rama: ➢ svn cp trunk miRama ➢ svn cp http://.../trunk http://.../miRama ➢ Renombrar una rama: ➢ svn mv http://.../miRama http://.../foo ➢ Eliminar una rama que ya no hace falta: ➢ svn rm http://.../miRama ➢ Aún así, siempre quedarán en el historial!! ➢ Atajo: http://.../svn/proyecto/XXX == ^XXX 12
  • 13. Curso Avanzado SVN 1 Merge avanzado de branches: ramas constantes ➢ Son lo más simple: ➢ svn cp http://.../trunk http://.../tags/XXX ➢ Lo normal es que jamás se modifiquen estas ramas (excepto renombrar tal vez). ➢ Es típico usarlas para cada “entrega” o checkpoint importante. ➢ Entregas: ➢ svn export http://.../tags/XXX XXX ➢ zip -r 9 XXX.zip XXX ➢ thunderbird XXX.zip (o lo que sea...) 13
  • 14. Curso Avanzado SVN 1 Merge avanzado de branches: ramas a corto plazo ➢ Crear rama como siempre: ➢ svn cp http://.../trunk http://.../featureX ➢ Developear en esa rama: ➢ while (1): vi *.php; svn ci ➢ Ponerse al día con trunk: ➢ svn merge ^/trunk ➢ Pasar tu featureX a trunk: ➢ svn switch ^/trunk ➢ svn merge ^/featureX ➢ Eliminar rama como siempre: ➢ svn rm http://.../featureX 14
  • 15. Curso Avanzado SVN 1 Merge avanzado de branches: ramas a largo plazo ➢ Crear rama como siempre: ➢ svn cp http://.../trunk http://.../clienteX ➢ Developear en esa rama: ➢ while (1): vi *.php; svn ci ➢ Ponerse al día con todo trunk: ➢ svn merge ^/trunk ➢ Backportear un revisiones concretas: ➢ svn merge -c 158 ^/clienteYYY ➢ svn merge -c 48,49,109 ^/clienteZZZ 15
  • 16. Curso Avanzado SVN 1 Arreglar los conflictos de merge/update Arreglar los conflictos de merge/update 16
  • 17. Curso Avanzado SVN 1 Arreglar los conflictos: qué son ➢ “Mi casa es blanca” ➢ Juan: “Mi casa es negra” → svn commit ➢ Svn: OK! ➢ Enjuto: “Tu casa es blanca” → svn commit ➢ Svn: error, updatea tu version ➢ Enjuto: svn update ➢ Svn: error, hay un conflicto SVN no sabe si debe dejarlo como juan quiere o como enjuto quiere. 17
  • 18. Curso Avanzado SVN Arreglar los conflictos: cómo se identifican y 1 ➢ Aparece una 'C' en svn status resuelven ➢ Aparecen fichero.mine, fichero.r27, etc. ➢ Svn modifica el fichero con el intento de merge. >>>>>> “Mi casa es negra” ====== “Tu casa es blanca” <<<<<< ➢ Enjuto: vi fichero→“mi casa es negra, la tuya blanca” ➢ Enjuto: svn resolved fichero ➢ Enjuto: svn commit ➢ Svn: OK! 18
  • 19. Curso Avanzado SVN 1 Svn externals y otros consejos svn externals y otros consejos 19
  • 20. Curso Avanzado SVN 1 Svn externals y otros consejos ➢ Son metadatos. Permite symlinkear a cualquier directorio de cualquier repositorio. ➢ Como crearlos: ➢ svn propedit svn:externals . libs/karma -r1287 http://.../karma/trunk libs/karma http://.../karma/tags/v1.5” ➢ Usar revisiones o ramas constantes siempre! ➢ Así un checkout de tu proyecto obtendra siempre karma en el mismo estado ahora y el año que viene. ➢ Ojo: las rutas no se actualizan solas! 20
  • 21. Curso Avanzado SVN 1 Svn externals y otros consejos ➢ Versionar un fichero como ejecutable: svn propset svn:executable “*” fichero ➢ Ignorar ficheros de un directorio: ➢ Svn propedit svn:ignore . tmp.* cache/.*jpg Debug$ ➢ Poder visualizar un diff: apt-get install colordiff echo 'svn diff $* |colordiff |less -R' >svndiff.sh ➢ Autonotas en mantis? 21