520 likes | 729 Views
REPOSITORIOS. Ing. Ismael Castañeda Fuentes, MSc Grupo de Investigación UNBD Universidad Nacional de Colombia Marzo de 2011. Objetivos. Conocer las ventajas de usar un repositorio, en el desarrollo de un proyecto. Aprender los conceptos básicos del repositorio
E N D
REPOSITORIOS Ing. Ismael Castañeda Fuentes, MSc Grupo de Investigación UNBD Universidad Nacional de Colombia Marzo de 2011
Objetivos • Conocer las ventajas de usar un repositorio, en el desarrollo de un proyecto. • Aprender los conceptos básicos del repositorio • Aprender a usar el repositorio
El software es dinámico • Cambios en el software por: • Corrección de defectos • Desarrollo iterativo • Cambios de ambiente • Cambios solicitados por el cliente/usuario • Los cambios en el software pueden generan cambios en: • Requerimientos y especificaciones • Modelos de análisis, diseño, … • Documentación • Código fuente • Código ejecutable • Casos de prueba
Gestión de cambios - Procedimiento • Solicitud de cambio • Aprobación/rechazo del cambio • Asignación del trabajo • Aseguramiento de calidad • Baja de versión inicial • Alta de la nueva versión • Auditoría • Comunicación a los afectados
Servidor de archivos versionados • Servidor de archivos con características extras • Cada archivo tiene asociado un historial de modificaciones • Los cambios en un archivo pueden deshacerse o recuperarse hasta cualquier punto en su historial • Recuerda la estructura del sistema de archivos en cualquier punto del historial (directorios) • Es posible ver cualquier archivo tal como se encontraba en cualquier punto del historial
Versionamiento • El control de versiones se realiza principalmente en la industria informática para controlar las distintas versiones del código fuente • Los mismos conceptos son aplicables a otros ámbitos, no sólo para código fuente sino para documentos, modelos, imágenes …
8 5 1 3 4 5 2 7 1 2 3 6 Ing 1 Ing 2 2 3 1 Ing 3 4 Desarrollo de un proyecto
1 2 3 4 5 1 6 8 2 3 5 7 Ing 1 Ing 2 2 3 1 Ing 3 Versión Beta1 Versión Alfa 1 Release 1 4 Desarrollo de un proyecto
3 8 2 1 7 6 9 4 3 2 1 5 1 1.1 1.2 1.3 Desarrollo de un proyecto Ing 1 10 Ing 2 2 3 Ing 3 4 5 Versión 2 Versión 1 Versión 3 Error reportado sobre la Versión 1
Control de versiones • Manual • Administrando directorios • Copias de seguridad • Usando comprimidos, … • Con herramientas de software – Repositorios • CVS (ConcurrentVersionsSystem ) • Subversion SVN • Mercurial • Git • ClearCase • BitKeeper, Select, … • Usando servicios que facilitan uso de repositorios: • SourceForge(http://repository.sourceforge.net) • Google Code(www.//code.google.com) • ProjecKenai(http://kenai.com) • CodePlex(http://www.codeplex.com)
Repositorios • Repositorio Sitio centralizado donde se almacena y mantiene información digital • El repositorio debe permitir • Agregar • Modificar de forma concurrente • Reunir modificaciones en una sola • Controlar versiones alternas • Comparar • Repositorio Subversion Sistema para control de versiones
Subversion - Formas de acceso • A través del cliente Tortoise • A través del servidor • A través de Internet, cuando la persona está en un computador que no es de su uso personal, por ejemplo cuando se va a un café Internet como mecánica en una sola vía • Por medio de un IDE
Tortoise SVN - CHECKOUT En el explorador de Windows: • En un directorio vacio • Clic derecho • Copia inicial • Ejemplo de URL para copia inicial: https://168.176.36.28:4443/piga
Repositorio Copia del Repositorio Usuario Acceso al Repositorio Update
Repositorio Acceso al Repositorio Commit Información local Usuario
Archivo A Archivo A Archivo A Lectura compartida al Repositorio Repositorio Pedro María
Repositorio Archivo A Archivo A Archivo A Pedro María Trabajo simultáneo en el cliente
Repositorio Archivo A Archivo A Archivo A Archivo A María Escritura al Repositorio ¡Problema! X Pedro
Repositorio Archivo A Archivo A Escrituracontrolada en el Repositorio 1 de 5 Bloquea Pedro Pedro
Repositorio Archivo A Archivo A Escrituracontrolada en el Repositorio 2 de 5 Bloquea Pedro X ¡Problema! Pedro María
Repositorio Archivo A Archivo A Escrituracontrolada en el Repositorio 3 de 5 Pedro
Repositorio Archivo A Archivo A Archivo A Archivo A Escrituracontrolada en el Repositorio 4 de 5 Bloquea María Pedro María
Repositorio Archivo A Archivo A Archivo A Escrituracontrolada en el Repositorio 5 de 5 Pedro María
Repositorio Archivo A Archivo A Archivo A Mezcla (Merge) 1 de 4 Pedro María
Repositorio Archivo A Archivo A Archivo A Archivo A Mezcla (Merge) 2 de 4 X ¡Problema! Pedro María
Repositorio Archivo A Archivo A Archivo A Archivo A Archivo A Mezcla (Merge) 3 de 4 Pedro María
Repositorio Archivo A Archivo A Archivo A Archivo A Archivo A Mezcla (Merge) 4 de 4 Pedro María
Repositorio Archivo A Archivo A Archivo A Archivo A Archivo A Archivo A Update Pedro María
Tortoise SVN Iconos Internet Explorer La carpeta en la copia de trabajo está sin modificaciones y sin conflictos Esto no significa que la copia de trabajo esté actualizada a la última versión Hay cambios pendientes por subir Hay archivos en conflicto.
Tortoise SVN - Operaciones de usuario • Checkout Descargar un proyecto del repositorio a unacarpeta local • Update Actualizar la copia de trabajo. Al actualizar, se muestra un listado con los archivosnuevos, eliminados o modificados, con unamarca al comienzo de cadauno: • A – Se ha añadido un archivo (quizásporotrousuario)
Tortoise SVN - Operaciones de usuario • C – Un archivoquefuemodificado en la copia de trabajo, fuemodificadoporotrousuario, y ha quedado en conflicto. • G - Un archivoquefuemodificado en la copia de trabajo, fuemodificadoporotrousuario, y se ha combinadosatisfactoriamente (sin conflicto) • U – Un archivoquecambió se ha actualizado. • D – Un archivo se ha borrado • Resolved • Marcarcomoresuelto el conflicto
Tortoise SVN - Operaciones de usuario • Add • Agregar un archivo o carpeta • Delete • Borrar un archivo o carpeta • Log • Mostrarinformaciónacerca de lasversiones de unacarpeta o archivo • Lock • Bloquearcambiossobre un archivo
Tortoise SVN - Operaciones de usuario • Copy • Copiar • Move • Mover • mkdir • Crear un directorio • Diff • Mostrar la diferencia entre la copia local y la base. • Mostrar la diferencia de un archivo entre unarevisión y otra
Tortoise SVN - Operaciones de usuario • Commit • Subir los cambioshechos en la copia de trabajo al repositorio. Esto genera unanuevonúmero de revisión en el repositorio. Puedefallarsi los archivosque se deseansubirhansidomodificadosporotrousuario. En estecaso se debhacerprimero update y luego resolver el posibleconflicto. • Revert • Revertircambioshechos en copia de trabajo
Tortoise SVN - Operaciones de usuario • stat • Informaciónacerca del estado de los archivos en la carpeta local: • C – En Conflicto • M – Modificados • A – Añadidos • D – Borrados • L – Bloqueados • ? – No versionado • ! – Archivofaltante (Eliminado , sin usar el comandoadecuado – delete) • Vermas con svn help stat
SVN - Formas de acceso • A través del cliente Tortoise • A través de Internet, cuando la persona está en un computador que no es de su uso personal, por ejemplo cuando se va a un café Internet como mecánica en una sola vía. (Cuidados que hay que tener) • A través del servidor
SVN - Accesopor Internet • Escribir la dirección • https://168.176.36.28:4443/piga/ • Hacerclic en continue to this website (not recommended) • Digitar el usuario y contraseña de acceso al repositorio.
SVN - Seguridad • Acceso por HTTPS • Acceso sólo a usuarios registrados • Agrupación de usuarios • Permisos por usuario y por grupos • Lectura exclusivamente • Lectura y escritura • Ninguno
SVN - Buenasprácticas • Antes de comenzar a trabajar, actualizar la copia de trabajo • Resolver un posible conflicto revisando los cambios de la nueva versión e incluyendo los nuevos • Evitar simplemente borrar archivo en conflicto y reemplazarlo por el propio. Con esto se ignoran los cambios hechos por alguien • Dejar un log descriptivo con cada nueva versión
Tortoise SVN - Comparación Referencias