Sistemas de Control de Versiones - sopa.dis.ulpgc. de Control de Versiones Subversion Alexis...

download Sistemas de Control de Versiones - sopa.dis.ulpgc.  de Control de Versiones Subversion Alexis Quesada Arencibia Francisco J. Santana Prez

of 34

  • date post

    05-May-2018
  • Category

    Documents

  • view

    216
  • download

    0

Embed Size (px)

Transcript of Sistemas de Control de Versiones - sopa.dis.ulpgc. de Control de Versiones Subversion Alexis...

  • Sistemas de Control de VersionesSubversion

    Alexis Quesada Arencibia Francisco J. Santana Prez

  • 2 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Qu son ?

    Programas que permiten gestionar un repositorio de archivos y sus distintasversiones

    Utilizan una arquitectura cliente-servidorUn servidor guarda la(s) versin(es) actual(es) del proyecto y su historia

  • 3 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Nos permiten

    Varios clientes pueden sacar copias del proyecto al mismo tiempo

    Realizar cambios a los ficheros manteniendo un histrico de los cambios

    Deshacer los cambios hechos en un momento dadoRecuperar versiones pasadasVer histricos de cambios y comentariosLos clientes pueden tambin comparar diferentes versiones de archivos

  • 4 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Nos permiten Unir cambios realizados por diferentes usuarios sobrelos mismos ficheros

    Sacar una "foto" histrica del proyecto tal como se encontraba en un momento determinado

    Actualizar una copia local con la ltima versin que se encuentra en el servidor

    Esto elimina la necesidad de repetir las descargas del proyectocompleto

    Mantener distintas ramas de un proyecto

  • 5 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Sistemas de control de Versiones (SCV)CVS

    http://www.nongnu.org/cvs/

    Subversionhttp://subversion.tigris.org/

    Archhttp://www.gnu.org/software/gnu-arch/

    DARCShttp://www.darcs.net/

    BitKeeperhttp://www.bitkeeper.com/

  • 6 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Subversion

    Sistema de control de versiones libre y de cdigo abierto (2001)

    Est construido sobre una capa de portabilidad llamada APR (la bibliotecaApache Portable Runtime)

    Debera funcionar sobre cualquier SO dondelo haga el servidor httpd Apache (Windows, Linux, Mac OS X, )

  • 7 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Subversion

    Es un sistema general que puede ser usado para administrar cualquierconjunto de ficheros

    Texto, imgenes, video, ejecutables,

    El repositorio en el servidor consiste en una base de datos (Berkeley DB)

  • 8 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Caractersticas

    Versionado de directorios

    Facilidad para aadir/eliminar/moverficheros y directorios

    Envos atmicos

    Versionado de metadatos

    Soporte para binarios

  • 9 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Caractersticas

    Diferentes sistemas de accesofile:// acceso al sistema localhttp:// y https:// haciendo uso del mdulo DAV en Apache 2svn:// para svnserve y svn+ssh:// para utilizarssh

    Ramificacin y etiquetado eficientes

    Se envan solo las diferencias en ambasdirecciones

  • 10 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Caractersticas

    Existen clientes grficos tanto para linuxcomo para windows

    Windows: tortoiseSVNhttp://tortoisesvn.tigris.org/

    Windows, Linux, Mac OS: rapidsvnhttp://rapidsvn.tigris.org/

  • 11 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Arquitectura

  • 12 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    svn: programa cliente de lnea de rdenes

    La mejor ayuda:svn help orden

  • 13 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Descargando un repositorio (crea unacopia en la mquina local)

    svn checkout URL_REPOSITORIO

    $ svn checkout http://svn.collab.net/repos/svn/trunk subvA subv/subversion.dswA subv/svn_check.dspChecked out revision 2499.

  • 14 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Haciendo cambios en la copia de trabajolocal

    Cambios en los ficherosNo hay que indicarle nada a subversion. Detectarlos cambios automticamente

    Cambios en el arbolAadir/eliminar/copiar/mover ficheros y directorios

  • 15 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Aadir/eliminar/copiar/mover ficheros y directorios

    Los cambios son marcados en la copia local y sern reflejados en el repositorio cuando se enven los cambios

    $ svn add fichOdir$ svn delete fichOdir$ svn copy fichOdir1 fichOdir2$ svn move fichOdir1 fichOdir2

  • 16 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajoExaminando los cambios antes de enviarlos al repositorio

    Se puede ejecutar en la raiz de la copia de trabajo para ver todolos cambios o en sobre una ruta o fichero esfecfica)

  • 17 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajoOtra forma de examinar los cambios

    svn diff

  • 18 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Me arrepiento de mis .. (deshacer lasmodificaciones locales)

    svn revert PATH

    Para deshacer todo los cambios en un directorio se debe usar la opcin

    --recursive

  • 19 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Enviando los cambios al repositorio

    svn commit [PATH] m mensaje de registro

    svn commit [PATH] F fichero_log

    $ svn commit --message "Corrected number of cheese slices."Sending sandwich.txtTransmitting file data .Committed revision 3.

  • 20 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Actualizar la copia de trabajo localsvn update

    $ svn updateU foo.cU bar.cUpdated to revision 2.

    U => ActualizadoA => AadidoD => EliminadoR => ReemplazadoG => FundidoC => Conflicto

  • 21 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Resolviendo conflictos

    $ svn updateU INSTALLG READMEC bar.cUpdated to revision 46.

    Actualizado !!! No hay problema

    Fundido !!! Nos entendemos: tu a tus cosas y yo a las mas !

    Aqu lleg la bronca !!!!

  • 22 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Pero dicen que hablando se entiende la gente !!!

    Acto de conciliacin !!!Ayuda de subversion en relacin a los conflictos

    Nos informa (C)Coloca marcas de conflicto en el fichero para demostrarvisualmente las reas solapadasPara cada fichero en conflicto, subversion coloca tres ficherostemporales extra en la copia de trabajo local

    Filename.mine, filename.rOLDREV, filename.RNEWREV

  • 23 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Soluciones:

    Fusionar el texto en conflicto a mano

    Copiar uno de los ficheros temporales sobre sufichero de trabajo

    Ejecutar svn revert para eliminar los cambioslocales

  • 24 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Subversion no permitir enviar el fichero en conflicto hasta que los tres ficherostemporales sean borrados

    Una vez solucionado el conflicto, es necesariocomunicarselo a subversion

    svn resolved PATHEsto borrar los tres ficheros temporales y Subversion no considerar por mas tiempo que el fichero est en estado de conflicto

  • 25 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Fusionar el texto en conflicto a mano$ cat sandwich.txtTop piece of breadMayonnaiseLettuceTomatoProvolone> .r2Creole MustardBottom piece of bread

    svn resolved fichero

  • 26 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Copiar uno de los ficheros temporales sobresu fichero de trabajo

    $ svn updateC sandwich.txtUpdated to revision 2.$ ls sandwich.*sandwich.txt sandwich.txt.mine sandwich.txt.r2sandwich.txt.r1$ cp sandwich.txt.r2 sandwich.txt$ svn resolved sandwich.txt

  • 27 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Eliminar los cambios localessvn revert ficheroSi se invierte un fichero en conflicto, no esnecesario ejecutar svn resolved

    $ svn revert sandwich.txtReverted 'sandwich.txt'$ ls sandwich.*sandwich.txt

  • 28 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Una vez resueltos los conflictos, enviamos loscambios

    svn commit m mensaje

  • 29 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Ciclo bsico de trabajo

    Examinando el historialMostrar informacin sobre los registros

    svn log

    Mostrar informacin sobre cambiossvn diff

    Mostrar revisiones anteriores de ficherossvn cat

    Mostrar los ficheros de un directorio para una revisinconcreta

    svn list

  • 30 Alexis Quesada Arencibia Francisco J. Santana Prez Programacin de Sistemas

    Otras rdenes tiles

    Completar transacciones pendientes eliminando el estado de bloqueo

    svn cleanup

    Copiar un rbol de ficheros sin versionar en el repositorio, creando directorios intermedios

    svn import [PATH] URL

    Crear directorios en la copia local o re