Introducción A Los Sistemas De Control De Versiones

Transcription

Introducción a losSistemas de Control deVersiones

Introducción a los Sistemas de Control de VersionesIntroducción: PonentesManuel Resinas de ReynaInvestigador miembro de TDG (The Distributed Group) y estudiande de doctoradoManuel J. Recena SotoAlumno de la Escuela Técnica Superior de Ingeniería Informática (ETSII)Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesIntroducción: Objetivos del seminario Proporcionar una visión general de la problemática queque existe al trabajar de forma individual y/o colaborativacon código fuente.Los sistemas de control de versiones como solución.Mencionar los distintos sistemas de control de versionesde software abierto.¿Qué están usando grandes comunidades de desarrollo desoftware?¿Sistemas de Control de Versiones sólo para desarrolloscolectivos?Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesDesarrollando de forma individual o colectiva Hagamos un breve resumen de las diferencias mássignificativas entre un desarrollo individual y uno colectivo.Ramas (branches), etiquetas (tags) y rama principal(trunk).Cuándo debemos definir una rama y por qué.No debemos olvidar que se está hablando de un desarrollode software. Código fuente principalmente.Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesDesarrollando de forma individual o colectiva Línea de tiempo asociada a la vida de un código fuenteEsquemas obtenidos de http://svnbook.red-bean.com y http://www.cvshome.org respectivamenteIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesDesarrollando de forma individual o colectiva Diferencias:– Un desarrollo colectivo implica la aparición deconflictosSemejanzas:–Etiquetado–Creación de ramas (estables, inestables, demo, etc)–Comparación entre estados de un código en eltiempo–Recuperación de estados pasados–Sistema de respaldo en caso de perdida (backup)Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de Versiones¿Qué es un sistema de control de versiones? Sistema que sirva para mantener distintas versiones de unfichero, normalmente código fuente, documentación oficheros de configuraciónEjemplos:–Guardar distintas copias de los ficherosnombrándolos adecuadamente–Hacer scripts para automatizar las copias–Usar un software específico para realizar el controlde versionesIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesUsando un sistema de control de versiones Sistema de control de versiones mantiene un repositoriocon los ficherosForma habitual de trabajo:–Mantener una copia en local y modificarla. Despuésactualizarla en el repositorio. –Ventaja: No necesita acceso continuo al repositorio,puedes asegurarte de que lo actualizado “está bien”.Con algunos sistemas de control de versiones esposible trabajar directamente contra el repositorio. Ventaja: Más transparenteInconveniente: bloqueo de ficherosIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesEl problema de compartir ficheros El problema que queremosevitar es el siguiente:Imagen obtenida de http://svnbook.red-bean.com/en/1.1/ch02s02.html (Subversion book)Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesSolución Bloquear-Modificar-Desbloquear Una primera solución alproblema es la siguiente:Imagen obtenida de http://svnbook.red-bean.com/en/1.1/ch02s02.html (Subversion book)Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesSolución Copiar-Modificar-Unir La segunda solución (lamás habitual) es:Imagen obtenida de http://svnbook.red-bean.com/en/1.1/ch02s02.html (Subversion book)Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesSolución Copiar-Modificar-Unir Continuamos con lasoluciónImagen obtenida de http://svnbook.red-bean.com/en/1.1/ch02s02.html (Subversion book)Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesUso de un sistema de control de versiones Procedimiento de uso habitual de un sistema de control deversiones:–Descarga de ficheros inicial (Checkout)–Ciclo de trabajo habitual: Modificación de los ficherosActualización de ficheros en local (Update)Resolución de conflictos (si los hay)Actualización de ficheros en repositorio (Commit).Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesDescargando los ficheros (checkout) El primer paso es bajarse los ficheros del repositorioEl checkout sólo se hace la primera vez que se usan esosficherosCheckoutIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesActualizando los ficheros (update) Modifica los ficheros en local Sincronizar los ficheros con los del repositorioUpdateBCABCAIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005BCAManuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesActualizando los ficheros (update) Modifica los ficheros en local Sincronizar los ficheros con los del repositorioUpdateBCAIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005BCAManuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesActualizando el repositorio (commit) Modifica los ficheros en el repositorioEl sistema de control de versiones comprueba que lasversiones que se suben estén actualizadasCommitBCAIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005BCAManuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesActualizando los ficheros (update) Modifica los ficheros en local Sincronizar los ficheros con los del repositorioUpdateBCACBAIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005CBAManuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesActualizando los ficheros (update) Modifica los ficheros en local Sincronizar los ficheros con los del repositorioUpdateCBAIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005CBAManuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesDistintas alternativas Hay muchas formas de implementar los conceptos antesmencionadosNos centraremos en las siguientes –BitkeeperIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesOperaciones con el repositorio Commits atómicos y conjuntos de cambiosCommits itkeeperIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Soporte conjuntos de cambiosManuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesMover, renombrar y copiar ficheros ¿Se pueden copiar, mover y renombrar –Monotone–BitkeeperIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005CopiarManuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesAdministración de repositorios remotos Administración de repositorios remotosClonar a local unrepositorio eeper*Propagar cambios deun repositorio a otro** Requiere de una utilidad adicionalIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesAcceso al repositorio Acceso al repositorioPermisos eeperLimitadoForma de acceso remotoServidor propio/Tunel SSHWebDAV/Propio/Tunel SSH(sistema archivos)Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005FTP/HTTP/SMB/NFS/SFTPPropio (netsync)HTTP Protocolo propio paracomunicar repositoriosManuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesSubversión como evolución de CVS Renombar, copiar y mover ficheros y directorios sin perdida del histórico. Commits atómicos. Implementación de tres tipos de acceso: –Local–Stand-alone–Apache webDAVMejorado el sistema de permisos.Reducción del riesgo de vulnerabilidades por sus distintos RA (repositoryaccess).Integración con Project Software Manager (Por ejemplo: trac).Grandes grupos de desarrollo como Apache Group o KDE están migrandosus sistemas a SVN.Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesClientes e integración con IDEs Para Concurrent Version Control (CVS):–WinCVS: http://www.wincvs.org–Eclipse (integrado)–Kdevelop (integrado)–TortoriseCVS: http://www.tortoisecvs.org–Cervisia: http://www.kde.org/apps/cervisiaPara Subversión:–TortoiseSVN: http://tortoisesvn.tigris.org–Plugin para Eclipse (subclipse)Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesEjemplo práctico: Descripción del sistema Servidor Subversión configuradocon webDAV como método deacceso al repositorio (RA).Nombre del repositorio:“seminario”.Existe un usuario “test” con accesode lectura y escritura al repositorio“seminario”.Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesReferencias Subversión (Project home): http://subversion.tigris.org Concurrent Version System: http://subversion.tigris.org Arch: http://gnuarch.org Version Control with Subversion: http://svnbook.red-bean.com BetterSCMInitiative: http://better-scm.berlios.deIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de Versiones¿Alguna pregunta?¿Alguna pregunta?Introduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de VersionesAgradecimientosMUCHAS GRACIASIntroduccióna losSistemasControl Informáticade Versiones[www.eii.us.es]Escuela TécnicaSuperiorde deIngeniería8dede20054 de abrilMarzo2005Manuel .es)(cefiro@gmail.com)ManuelJ. ena@eii.us.es)

Introducción a los Sistemas de Control de Versiones Introducción: Objetivos del seminario Proporcionar una visión general de la problemática que que existe al trabajar de forma individual y/o colaborativa con código fuente. Los sistemas de control de versiones como solución. Mencionar los distintos sistemas de control de versiones