Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bazaar 090506084407 Phpapp01
Bazaar 090506084407 Phpapp01
Un sistema de control de versiones es el encargado de la gestin 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 revisin. Posibilidad de aadir, borrar, mover o editar los elementos. Capacidad de gestionar ramas de desarrollo paralelas a la principal. Gestin de conflictos, en el caso de que ms de un usuario cambie un elemento del proyecto. Generacin de informes de estado, donde se muestren las diferencias entre distintas revisiones.
Introduccin
Los sistemas de control de versiones , en la actualidad se han convertido en un elemento indispensable en el proceso de desarrollo de un producto software; de igual forma se convierten en un aliado importante de la ingeniera de software en la tarea de conseguir como resultado un producto de software de calidad. Los sistemas de control de versiones desde sus inicios fueron utilizados principalmente en la industria informtica, pero hoy en da estos sistemas son utilizados tanto por industrias como por desarrolladores individuales, considerando que estos ltimos le dieron ms dinamismo a su desarrollo y evolucin. Los sistemas de control de versiones se constituyen en un buen complemento a los sistemas de backups.
Clasificacin
Centralizados: existe un repositorio centralizado de todo el cdigo, del cual es responsable un nico usuario (o conjunto de ellos). Se facilitan las tareas administrativas a cambio de reducir la potencia y flexibilidad, pues todas las decisiones fuertes (como crear una nueva rama) necesitan la aprobacin del responsable. Distribuidos: se aumenta la capacidad de decisin distribuida, caracterstica que dar mayor flexibilidad en el uso, pero en algunos casos puede dificultar la sincronizacin.
un de
Funcionamiento
Todos los sistemas de control de versiones se basan en disponer de un repositorio, que es el conjunto de informacin gestionada por el sistema. Este repositorio contiene el historial de versiones de todos los elementos gestionados. Cada uno de los usuarios puede crearse una copia local duplicando el contenido del repositorio para permitir su uso. Es posible duplicar la ltima versin o cualquier versin almacenada en el historial. Este proceso se suele conocer como check out. Al momento de realizar modificaciones en la copia local existen dos alternativas:
Mdulo: Conjunto de directorios y/o archivos dentro del repositorio que pertenecen a un proyecto comn. Rtulo: Identificador asignado a un mdulo o fichero, asignado en un momento determinado, orientado a una bsqueda posterior. Revisin: Una revisin es una versin determinada de un archivo. Lnea base: Una revisin aprobada de un fichero, a partir del cual se pueden realizar cambios subsiguientes. Injertar rama o branch: Un mdulo puede ser branched o bifurcado en un momento dado, de forma que, en adelante, dos copias de esos ficheros puedan ser desarrolladas a diferentes velocidades o de diferentes formas, de modo independiente. Check-out: Permite crear una copia de trabajo local desde el repositorio. Se puede especificar una revisin especfica, por defecto se suele obtener la ltima. Commit o check-in: Los cambios realizados localmente son escritos o integrados sobre el repositorio. Conflicto: Un conflicto ocurre cuando el sistema es incapaz de fusionar los cambios, algunas veces precisa intervencin manual. Cambio: Un cambio representa una modificacin especfica a un fichero bajo control de versiones. Lista de cambios: Son listas que identifican una serie de cambios a realizarse en un solo commit. til al momento de revisar un cambio a partir de un identificador. Exportacin: Similar a un check-out, crea un rbol de directorios limpio sin los metadatos de control de versiones presentes en la copia de trabajo. Se utiliza a menudo de forma previa a la publicacin de los contenidos. Importacin: Una importacin es la accin de copia un rbol de
Exclusivos: para poder realizar un cambio es necesario marcar en el repositorio el elemento que se desea modificar y el sistema se encargar de impedir que otro usuario pueda modificar dicho elemento. Colaborativos: en el que cada usuario se descarga la copia, la modifca y el sistema automticamente mezcla las diversas modificaciones. El principal problema es la posible aparicin de conflictos que deban ser solucionados manualmente o las posibles inconsistencias que surjan al modificar el mismo fichero por varias personas no coordinadas. Esta semntica no es apropiada para ficheros binarios.
Tras realizar la modificacin es necesario actualizar el repositorio con los cambios realizados. Habitualmente este proceso se denomina commit, check in.
Repositorio: Es el lugar en el que se almacenan los datos actualizados e histricos, a menudo un servidor (proceso centralizado), el PC de los desarrolladores (proceso distribuido)
directorios local (que no es en ese momento una copia de trabajo) en el repositorio por primera vez.
Integracin o fusin: Una integracin o fusin une dos conjuntos de cambios sobre un fichero o un conjunto de ficheros en una revisin unificada de dicho fichero o ficheros. Actualizacin: Integra los cambios que han sido hechos en el repositorio (por ejemplo por otras personas) en la copia de trabajo local. Copia de trabajo: La copia obtenida desde el repositorio en el rea de trabajo local, se la realiza en un momento del tiempo o revisin especfica Congelar: Representa permitir los ltimos cambios (commits) para solucionar las fallas a resolver en una entrega (release) y suspender cualquier otro cambio antes de una liberacin, con el fin de obtener una versin consistente.
Amigable: Orientado principalmente a personas que recin empiezan a hacer uso de este tipo de herramientas, enfocado principalmente a la usabilidad y eficiencia. Elegante: Soporta el renombrado de archivos y directorios Rpido: Permite obtener rpidamente sus ventajas y caractersticas sin afectar al proceso de desarrollo. Eficiente: Su almacenaje utiliza un formato altamente eficiente y limpio. Ligero: No precisa tener un servidor dedicado Extensible: Posee una arquitectura basada en plugins, aspecto que permite dotarle de mayores caractersticas especificas y acorde a cada necesidad. Embebido: Caracterstica que le permite estar presente en una serie de aplicaciones y servicios libres y/o comerciales. Seguro: Al margen de las caractersticas que posee por si mismo, cuenta con el patrocinio de Canonical tanto para su desarrollo como para su suporte Libre: Disponible bajo licencia GPL.
Qu es Bazaar?
Bazaar es un sistema de control de versiones distribuido, de origen open source.
Posibilidad de revertir una revisin previa Facilitar la revisin de nuestro propio cdigo (antes del commit) Sincronizacin de mltiples maquinas
Por qu Bazaar?
Adaptable: Orientado a la mayora de los trabajos de desarrollo de software (local y/o remoto).
Desarrollo colaborativo
Un desarrollador puede trabajar sin interferir con el trabajo de otros desarrolladores El proceso de fusin es automatizado en su generalidad. Instalacin
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).
Identificacin Inicial
Antes de comenzar a trabajar es recomendable identificarse, haciendo conocer nuestro nombre y email:
Verificacin de Identificacin
Esto permitir modificar el archivo de configuracin, modificacin que puede ser verificada de la siguiente forma:
Inicializar versiones
el
control
de
Esto ha hecho que Bazaar cree un branch donde almacenar los ficheros y el histrico de revisin de los mismos. (crea un directorio oculto con una serie de subdirectorios y archivos que le permiten mantener el control y registro de archivos y tareas realizadas, el contenido es mostrado en la figura siguiente)
Deshacer cambios
Esta caracterstica puede darse en tres casos distintos:
Desversionando un archivo
en
Ahora procederemos a realizar algunos cambios en alguno de nuestros archivos (cuadrado.py) y verificar las diferencias con la versin registrada.
Esto hace que Bazaar cree el directorio repositorio y dentro de el coloque el branch de nuestro proyecto.
Combinando ramas
Dentro del desarrollo podemos contar con varias ramas, cada una con ciertas modificaciones; en caso que quisiramos 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.
Etiquetado
Empaquetado
GUIs de ayuda
Bazaar dispone de una serie de GUIs que permiten realizar varias de la tareas de forma grfica.
Ganotate
Gbranch
Gcommit Gdiff
Visualize
Referencias
[1] [2] http://bazaar-vcs.org/ http://bazaar-vcs.org/Documentation
Autor
Anotate
Esteban Saavedra Lpez Lder de la Comunidad ATIX (Oruro Bolivia) Activista de Software Libre en Bolivia jesaavedra@opentelematics.org http://jesaavedra.opentelematics.org