Bazaar la herramienta para el control de versiones de forma distribuida
Upcoming SlideShare
Loading in...5
×
 

Bazaar la herramienta para el control de versiones de forma distribuida

on

  • 3,380 views

Bazaar la herramienta para

Bazaar la herramienta para
el control de versiones de
forma distribuida

Statistics

Views

Total Views
3,380
Views on SlideShare
3,380
Embed Views
0

Actions

Likes
0
Downloads
81
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Bazaar la herramienta para el control de versiones de forma distribuida Bazaar la herramienta para el control de versiones de forma distribuida Document Transcript

  • Bazaar la herramienta para el control de versiones de forma distribuida Un sistema de control de versiones es el encargado de la gestión de los diversos cambios que se realizan sobre los elementos dentro el desarrollo de un producto software o en las configuraciones del mismo. Llevar un historial de los cambios ✔ en cada elemento del proyecto y anotar el autor de los cambios. Cada uno de los cambios se denomina revisión. Posibilidad de añadir, borrar, mover ✔ o editar los elementos. Capacidad de gestionar ramas de Introducción ✔ desarrollo paralelas a la principal. Los sistemas de control de versiones , en la Gestión de conflictos, en el caso de ✔ actualidad se han convertido en un elemento que más de un usuario cambie un indispensable en el proceso de desarrollo de elemento del proyecto. un producto software; de igual forma se Generación de informes de estado, convierten en un aliado importante de la ✔ donde se muestren las diferencias ingeniería de software en la tarea de entre distintas revisiones. conseguir como resultado un producto de software de calidad. Clasificación Los sistemas de control de versiones desde sus inicios fueron utilizados principalmente en Centralizados: existe un repositorio la industria informática, pero hoy en día estos ✔ centralizado de todo el código, del sistemas son utilizados tanto por industrias cual es responsable un único usuario como por desarrolladores individuales, (o conjunto de ellos). Se facilitan las considerando que estos últimos le dieron tareas administrativas a cambio de más dinamismo a su desarrollo y evolución. reducir la potencia y flexibilidad, pues Los sistemas de control de versiones se todas las decisiones fuertes (como constituyen en un buen complemento a los crear una nueva rama) necesitan la sistemas de backups. aprobación del responsable. Distribuidos: se aumenta la ✔ Características de un capacidad de decisión distribuida, característica que dará mayor sistema de control de flexibilidad en el uso, pero en algunos versiones casos puede dificultar la sincronización. Gestionar el almacenamiento de ✔ cada uno de los elementos del ✔ proyecto.
  • Módulo: Conjunto de directorios y/o Funcionamiento ✔ archivos dentro del repositorio que Todos los sistemas de control de versiones pertenecen a un proyecto común. se basan en disponer de un repositorio, que Rótulo: Identificador asignado a un ✔ es el conjunto de información gestionada por módulo o fichero, asignado en un el sistema. Este repositorio contiene el momento determinado, orientado a historial de versiones de todos los elementos una búsqueda posterior. gestionados. Revisión: Una revisión es una versión ✔ Cada uno de los usuarios puede crearse una determinada de un archivo. copia local duplicando el contenido del repositorio para permitir su uso. Es posible Línea base: Una revisión aprobada ✔ duplicar la última versión o cualquier versión de un fichero, a partir del cual se almacenada en el historial. Este proceso se pueden realizar cambios suele conocer como check out. subsiguientes. Al momento de realizar modificaciones en la Injertar rama o branch: Un módulo ✔ copia local existen dos alternativas: puede ser branched o bifurcado en un momento dado, de forma que, en Exclusivos: para poder realizar un ✔ adelante, dos copias de esos ficheros cambio es necesario marcar en el puedan ser desarrolladas a diferentes repositorio el elemento que se desea velocidades o de diferentes formas, modificar y el sistema se encargará de modo independiente. de impedir que otro usuario pueda modificar dicho elemento. Check-out: Permite crear una copia ✔ de trabajo local desde el repositorio. Colaborativos: en el que cada ✔ Se puede especificar una revisión usuario se descarga la copia, la específica, por defecto se suele modifíca y el sistema obtener la última. automáticamente mezcla las diversas modificaciones. El principal problema Commit o check-in: Los cambios ✔ es la posible aparición de conflictos realizados localmente son escritos o que deban ser solucionados integrados sobre el repositorio. manualmente o las posibles Conflicto: Un conflicto ocurre cuando ✔ inconsistencias que surjan al el sistema es incapaz de fusionar los modificar el mismo fichero por varias cambios, algunas veces precisa personas no coordinadas. Esta intervención manual. semántica no es apropiada para Cambio: Un cambio representa una ficheros binarios. ✔ modificación específica a un fichero Tras realizar la modificación es necesario bajo control de versiones. actualizar el repositorio con los cambios Lista de cambios: Son listas que realizados. Habitualmente este proceso se ✔ identifican una serie de cambios a denomina commit, check in. realizarse en un solo commit. Útil al momento de revisar un cambio a Conceptos a considerar al partir de un identificador. momento de utilizar un Exportación: Similar a un check-out, ✔ control de versiones crea un árbol de directorios limpio sin los metadatos de control de versiones Repositorio: Es el lugar en el que se presentes en la copia de trabajo. Se ✔ almacenan los datos actualizados e utiliza a menudo de forma previa a la históricos, a menudo un servidor publicación de los contenidos. (proceso centralizado), el PC de los Importación: Una importación es la ✔ desarrolladores (proceso distribuido) acción de copia un árbol de
  • directorios local (que no es en ese Amigable: Orientado principalmente a ✔ momento una copia de trabajo) en el personas que recién empiezan a repositorio por primera vez. hacer uso de este tipo de herramientas, enfocado Integración o fusión: Una ✔ principalmente a la usabilidad y integración o fusión une dos conjuntos eficiencia. de cambios sobre un fichero o un conjunto de ficheros en una revisión Elegante: Soporta el renombrado de ✔ unificada de dicho fichero o ficheros. archivos y directorios Actualización: Integra los cambios Rápido: Permite obtener rápidamente ✔ ✔ que han sido hechos en el repositorio sus ventajas y características sin (por ejemplo por otras personas) en la afectar al proceso de desarrollo. copia de trabajo local. Eficiente: Su almacenaje utiliza un ✔ Copia de trabajo: La copia obtenida formato altamente eficiente y limpio. ✔ desde el repositorio en el área de Ligero: No precisa tener un servidor ✔ trabajo local, se la realiza en un dedicado momento del tiempo o revisión Extensible: Posee una arquitectura específica ✔ basada en plugins, aspecto que Congelar: Representa permitir los ✔ permite dotarle de mayores últimos cambios (commits) para características especificas y acorde a solucionar las fallas a resolver en una cada necesidad. entrega (release) y suspender Embebido: Característica que le cualquier otro cambio antes de una ✔ permite estar presente en una serie liberación, con el fin de obtener una de aplicaciones y servicios libres y/o versión consistente. comerciales. Seguro: Al margen de las Qué es Bazaar? ✔ características que posee por si Bazaar es un sistema de control de mismo, cuenta con el patrocinio de versiones distribuido, de origen open source. Canonical tanto para su desarrollo como para su suporte Libre: Disponible bajo licencia GPL. ✔ Beneficios de un sistema de control de versiones distribuido Trabajo personal Posibilidad de revertir una revisión ✔ previa Facilitar la revisión de nuestro propio ✔ código (antes del commit) Por qué Bazaar? Sincronización de múltiples maquinas ✔ Adaptable: Orientado a la mayoría de ✔ los trabajos de desarrollo de software (local y/o remoto).
  • Desarrollo colaborativo Poniendo a prueba a Bazaar Un desarrollador puede trabajar sin Para lograr un mejor entendimiento, de todas ✔ interferir con el trabajo de otros las características y funcionalidades que desarrolladores dispone Bazaar, basaremos nuestro ejemplo considerando el siguiente directorio y El proceso de fusión es automatizado ✔ contenido: en su generalidad. Instalación ✔ Que precisamos Bazaar es un software que puede ser instalado en varias plataformas mediantes sus respectivos gestores de paquetes: Debian, Ubuntu (apt-get) ✔ RHEL, CentOS, Fedora (yum) ✔ Windows, posee un isntalador ✔ Mac OS X (MacPorts). ✔ Identificación Inicial Antes de comenzar a trabajar es recomendable identificarse, haciendo conocer nuestro nombre y email: Verificación de Identificación Esto permitirá modificar el archivo de configuración, modificación que puede ser verificada de la siguiente forma: Esto ha hecho que Bazaar cree un branch donde almacenará los ficheros y el histórico de revisión de los mismos. (crea un directorio oculto con una serie de subdirectorios y Inicializar el control de archivos que le permiten mantener el control versiones y registro de archivos y tareas realizadas, el contenido es mostrado en la figura siguiente) Inicializamos el control de versiones de nuestro directorio
  • Deshacer cambios Esta característica puede darse en tres casos distintos: Desversionando un archivo Deshacer el último commit Poniendo ficheros bajo el control de versiones Ahora es momento de ir añadiendo los ficheros y directorios de los cuales queremos Deshacer todos los cambios mantener un control de versiones. desde el ultimo commit: El deshacer los cambios pueden ser globales o de forma especifica de algún archivo. Registrando los cambios Realizando cambios en Bazaar nos permite realizar este registro nuestros archivos tanto a nivel global (todo el árbol de directorios) como a nivel especifico (solo Ahora procederemos a realizar algunos ficheros determinados) cambios en alguno de nuestros archivos (cuadrado.py) y verificar las diferencias con la versión registrada.
  • Visualizando el estado de archivos Visualizando el historial de revisiones Una vez que los cambios se hayan realizado podemos proceder a registrar el cambio en nuestro branch mediante un commit, es recomendable incluir un mensaje descriptivo en cada commit. Publicando el branch con sftp Precisamos tener instalado y configurado un servidor SFTP, que servirá como plataforma de publicación. Asumiremos que nuestro branch será publicado en http://proyecto.dominio.com/repositorio: Esto hace que Bazaar cree el directorio repositorio y dentro de el coloque el branch de nuestro proyecto.
  • Creando una nueva rama (branch) Muchas veces es necesario trabajar sobre ramas publicadas por otros desarrolladores; para esto podemos traer una copia de la publicación que hicimos anteriormente y crear una nueva rama dentro nuestro proyecto. Combinando ramas Dentro del desarrollo podemos contar con varias ramas, cada una con ciertas modificaciones; en caso que quisiéramos combinar nuestra copia de trabajo con una rama en especial, podemos hacer un merge de la siguiente forma. En caso de desear registrar estos cambios en nuestro repositorio local deberemos hacer un commit. Distribuir nuestros proyectos Antes de empezar a distribuir los archivos de nuestro desarrollo, podemos etiquetarlos para mantenerlo en el registro y posteriormente empaquetarlos. Etiquetado Empaquetado
  • GUIs de ayuda Ganotate Bazaar dispone de una serie de GUIs que permiten realizar varias de la tareas de forma gráfica. Gbranch Gcommit Gdiff Visualize Referencias [1] http://bazaar-vcs.org/ [2] http://bazaar-vcs.org/Documentation Autor Anotate Esteban Saavedra López Líder de la Comunidad ATIX (Oruro – Bolivia) Activista de Software Libre en Bolivia jesaavedra@opentelematics.org http://jesaavedra.opentelematics.org