Articulo Para Control de Versiones

20
Alcides Y. Leaños Barrio Polanco Calle 2 Nro 15 Telf. +501 70898308 [email protected] Ariel Dominguez Pq. Industrial Mza 10 A Telf. +501 78523260 ariel.dominguez.vargas@gmail .com 1. ABSTRACT El presente artículo muestra la importancia de utilizar una herramienta para controlar las versiones de archivos o conjunto de archivos y a GIT como una de ellas. 2. INTRODUCCION El control de versiones es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo, de modo que se puedan recuperar versiones específicas más adelante. GIT es un sistema de control de versiones distribuido, donde los clientes no solo descargan la última versión de los archivos, replican completamente el repositorio, de tal manera que si un servidor cae, cualquiera de los repositorios de los clientes puede copiarse en el servidor para restaurarlo. El desarrollo de Git comenzó luego que muchos desarrolladores del kernel de Linux decidieron dejar de utilizar el sistema BitKeeper. Git fue diseñado por Linus Torvalds pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente. 3. FUNDAMENTOS DE GIT Git almacena y modela la información de manera muy diferente a otros sistema, aunque su interfaz es muy similar. 3.1 Instantáneas no diferencias La principal diferencia entre GIT y cualquier otro (Subversion, Perfonmance, Bazaar), es como GIT modela sus datos. Muestras otros sistemas modelan su información como un conjunto de archivos y las modificaciones hecha a cada uno de ellos a lo largo del tiempo.

description

Articulos de aplicaciones que sirven para el control de versiones

Transcript of Articulo Para Control de Versiones

Alcides Y. LeaosBarrio Polanco Calle 2 Nro 15Telf. +501 [email protected] DominguezPq. Industrial Mza 10 ATelf. +501 [email protected]

ABSTRACTEl presente artculo muestra la importancia de utilizar una herramienta para controlar las versiones de archivos o conjunto de archivos y a GIT como una de ellas.

INTRODUCCIONEl control de versiones es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo, de modo que se puedan recuperar versiones especficas ms adelante. GIT es un sistema de control de versiones distribuido, donde los clientes no solo descargan la ltima versin de los archivos, replican completamente el repositorio, de tal manera que si un servidor cae, cualquiera de los repositorios de los clientes puede copiarse en el servidor para restaurarlo.El desarrollo de Git comenz luego que muchos desarrolladores del kernel de Linux decidieron dejar de utilizar el sistema BitKeeper. Git fue diseado por Linus Torvalds pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran nmero de archivos de cdigo fuente.FUNDAMENTOS DE GITGit almacena y modela la informacin de manera muy diferente a otros sistema, aunque su interfaz es muy similar.Instantneas no diferenciasLa principal diferencia entre GIT y cualquier otro (Subversion, Perfonmance, Bazaar), es como GIT modela sus datos.Muestras otros sistemas modelan su informacin como un conjunto de archivos y las modificaciones hecha a cada uno de ellos a lo largo del tiempo.

GIT modela sus datos como un conjunto de fotos instantneas de todos los archivos y guarda referencias.

Casi cualquier operacin es de manera localLa mayora de las operaciones de GIT solo necesita archivo y recursos locales para operar. Esto implica una mayor velocidad de respuestaIntegridadTodo en Git es verificado mediante una suma de comprobacin (checksum en ingls) antes de ser almacenado, y es identificado a partir de ese momento mediante dicha suma. Esto significa que es imposible cambiar los contenidos de cualquier archivo o directorio sin que Git lo sepa. Esta funcionalidad est integrada en Git al ms bajo nivel y es parte integral de su filosofa. No puedes perder informacin durante su transmisin o sufrir corrupcin de archivos sin que Git lo detecte.

El mecanismo que usa Git para generar esta suma de comprobacin se conoce como hash SHA-1. Se trata de una cadena de 40 caracteres hexadecimales (0-9 y a-f), y se calcula en base a los contenidos del archivo o estructura de directorios. Un hash SHA-1 tiene esta pinta.GIT generalmente solo aade informacinCuando realizas acciones en Git, casi todas ellas slo aaden informacin a la base de datos de Git. Es muy difcil conseguir que el sistema haga algo que no se pueda deshacer, o que de algn modo borre informacin.Los tres estadosGit tiene tres estados principales en los que se pueden encontrar los archivos: confirmado (committed), modificado (modified), y preparado (staged). Confirmado significa que los datos estn almacenados de manera segura en la base de datos local. Modificado significa que has modificado el archivo pero todava no se has confirmado a tu base de datos. Preparado significa que has marcado un archivo modificado en su versin actual para que vaya en tu prxima confirmacinINSTALACIONLa manera ms fcil de instalar GIT es descargando desde la pgina de GitHub y ejecutar dicho instalador.

CONFIGURACIONPrimeramente se tiene que crear el repositorio, clonar o abrir uno existente

Se tiene que direccionar donde se crear el repositorio

Luego de eso se puede comenzar a crear los diferentes archivos y trabajar con GIT

Richard H. Moron BordaCalle Pedro Galvez #3895Telf. +591 [email protected]

Gerardo MirandaAv. Ovidio Barbery c/ San Jos #10 Telf. +501 [email protected]

1. ABSTRACTEl presente artculo hace una explicacin del software Subversion, el cual es open source y permite el control de versiones principalmente de archivos de cdigo fuente.INTRODUCCIONSubversion, conocido tambin como SVN, fue creado por CollabNet Inc. en 2000, y actualmente es un proyecto Apache liberado para la comunidad.Permite el acceso remoto al repositorio brindando la posibilidad de que varias personas puedan trabajar en el mismo conjunto de datos desde sus diferentes estaciones lo cual fomenta la colaboracin y control del histrico de los archivos del proyecto.Actualmente cuenta con varias interfaces de cliente para ser aprovechado desde diferentes plataformas, como ser ambientes de escritorio y acceso web entre otros.CARACTERSTICAS

Entre sus principales prestaciones de Subversion podemos mencionar: Realiza el commit como operaciones atmicas, es decir que los cambios no tienen efecto hasta que se complete todo el commit. Mantiene el histrico de los archivos renombrados, copiados o eliminados. Tambin versiona los directorios. Los cambios se actualizan en ambas direcciones. Permite el bloqueo de archivos mientras estn en edicin. Es posible realizar un seguimiento de flujo para los Merges. Puede funcionar con el servidor HTTP de Apache con protocolo Web y aprovechas las prestaciones del servidor. Tambin puede funcionar con un servidor independiente con su propio protocolo.Clientes Actualmente existen varias interfaces a Subversion, ya sea programas individuales como interfaces que lo integran en entornos de desarrollo. Algunas de ellos son: TortoiseSVN, Subclipse, Subversive, ViewVC, RapidSVN, Versions y muchos ms.Soporte Apache ofrece soporte para Subversion mediante los siguientes canales oficiales: documentacin en lnea, Wiki, mailing lists, posibilidad de reportar bugs, adems de ello se pueden encontrar muchos foros de terceros.LIMITACIONESActualmente cuenta con algunas limitaciones como el manejo de cambio de nombres de archivos que no es completo. No resuelve el problema de aplicar repetidamente parches entre ramas, no facilita llevar la cuenta de qu cambios se han realizado. Esto se resuelve siendo cuidadoso con los mensajes de commit.CONCLUSIONESSubversion es un software que permite controlar las versiones del cdigo del proyecto y permite la colaboracin entre los miembros, cuenta con muchas herramientas de clientes para aprovecharlo y de igual manera puede ser instalado de forma independiente o con el servidor Web de apache, depende cuales sean las necesidades del equipo Subversion podra adaptarse a estas.

Aunque cuenta con varias prestaciones no debemos dejar de lado las limitaciones y como estas podran afectar nuestro proyecto, sin embargo al ser un proyecto open source mantenido por Apache actualmente vemos que est siendo aprovechado por la comunidad y mejorando sus prestaciones.[Ver Demo] https://www.youtube.com/watch?v=D6cnYFlBCqc

Isai GalarzaCalle Mexico #169Telf. +501 [email protected] Vargas PeaAv. Mario Gutirrez #3320Telf. +501 [email protected]

ABSTRACTEste articulo pretende ayudar a equipos de desarrollo colaborativos entiendan los beneficios de esta herramienta como control de versiones, para el buen tratamiento del cdigo de sus proyectos.INTRODUCCIONStash es una solucin para administrar repositorios Git de manera centralizada en los servidores propios de nuestra empresa. Nos ofrece capacidades similares a servicios como Bitbucket o Github, con la ventaja de poder ser nosotros quien escojamos dnde y cmo instalar la aplicacin, mantenerla, e integrarla con nuestro entorno.UTILIZANDO STASHStash est pensado tambin para equipos que no utilizan Git pero quieren empezar a hacerlo. Podemos utilizar Stash como la aplicacin alrededor de la cual giren nuestros proyectos, revisiones de cdigo, comentarios consiguiendo as los beneficios de un modelo centralizado junto con las facilidades y agilidad de un modelo distribuido.

Para estos equipos que an no conozcan los Sistemas de Control de Versiones Descentralizados, Atlassian ha preparado un espacio en el que explica el funcionamiento y las ventajas de este paradigma.Gestin sencilla y centralizada de usuariosPara facilitar la gestin de usuarios de nuestros repositorios, Stash est completamente integrado con LDAP, de modo que podemos conectarlo al servidor de nuestra empresa, as de fcil. Si lo preferimos, tambin tenemos la opcin de conectarlo a nuestra instancia de JIRA, que har las veces de servidor Crowd.Stash nos permite asignar permisos a cada usuario sobre distintos repositorios, teniendo as los proyectos y su cdigo tan compartimentados como necesitemos.

Seguimiento del cdigoLa interfaz de Stash est pensada para hacer sencilla la visualizacin y revisin de cdigo. Con Stash podemos realizar muy fcilmente un seguimiento de qu commits han resuelto qu incidencias, quin ha escrito qu cambio y en general, por qu se ha escrito cada lnea.

Administracin sencilla y estructurada de los proyectosEs habitual que un proyecto gestionado con un DCVS tenga multitud de repositorios. Stash contempla ese esquema de organizacin, facilitndonos la administracin de los proyectos, su integracin con nuestras herramientas y la gestin de permisos de los mismos.

Integracin con JIRAIntegrar Stash con JIRA es muy sencillo y nos proporciona multitud de ventajas. Basta con incluir la clave de una incidencia en un commit para tener ambos automticamente enlazados. De esta forma podemos saber en todo momento qu commits contienen cdigo de qu incidencias.Esta integracin tambin nos permite visualizar el cdigo desde JIRA. Si queremos conocer qu solucin se le di a una incidencia, solo tenemos que buscarla en JIRA, abrir la pestaa Source y tendremos una lista de los commits que se corresponden con ella, pudiendo visualizar as los cambios que se hicieron en el cdigo para solucionar nustro problema.Extensible a travs de la APIComo es costumbre en las aplicaciones de Atlassian, Stash pone a nuestra disposicin una API REST completa. Cada URL que veamos en nuestro Stash tiene su correspondiente acceso va REST. Esto unido a la posibilidad de usar el SDK de Atlassian hace de Stash un producto que podemos ajustar a nuestras necesidades con funcionalidades nuevas y plugins.

REFERENCIASSitio Herramientas Agileshttp://www.herramientasagiles.com/stash/git-atlassian-stashSitio Oficial Stashhttps://es.atlassian.com/software/stash

Darcs

Isis A. Romn RiojaC\ Las Pias N 7 Telf. +591 [email protected] Benito Vargas CuellarAv. Landivar #23Telf. +501 [email protected]

1. ABSTRACTEn el presente artculo se describe una gua de la instalacin y uso de darcs para el control de versiones de un proyecto.2. INTRODUCCIONDarcs es un sistema de control de versiones distribuido creado por David Roundy.Es un sistema de control de versiones y esta herramienta es libre y de cdigo abierto, as como git, mercurial o subversin pero con propsitos diferentes.Gracias a su enfoque sobre los cambios en lugar de las instantneas, Darcs puede ofrecer una manera libre de trabajo y una interface de usuario simple.3. CUALES SON SUS CARACTERSTICASLas caractersticas clave son: La habilidad de escoger que cambios aceptar de otros repositorios interaccin con otros repositorios locales (en disco) o repositorios remotos va SSH, HTTP o correo electrnico inusual interfaz interactiva. Los desarrolladores tambin hacen hincapies en el uso de herramientas de software avanzadas para la verificacin de la correccin: el sistema de tipo expresivo del lenguaje de programacin funcional Haskell hace cumplir algunas propiedades, y las pruebas al azar a travs de QuickCheck hace una verificacin de los mismos. El nombre es un acrnimo recursivo para el sistema de control de versiones avanzadas Darcs Avanced Revision Control System. 4. INSTALACIONPara la instalacin manual y configuracin de Darcs se deben seguir los siguientes pasos:Paso 1: Se descarga de la pgina oficial : http://darcs.net/BinariesPaso 2: Luego de que termine la descarga pasamos posteriormente a la instalacin rpida de la siguiente manera:

Paso3: Aceptar las condiciones y trminos para la respectiva instalacin.

Paso4: Elegir el directorio de instalacin, si no est seguro de donde ubicarlo es recomendable dejarlo en el directorio por defecto.

Paso 5: Confirmar la instalacin y verificamos en el directorio que instalamos.

Paso6: En caso de que ests utilizando Windows 7 o Windows 8 pedir la confirmacin de instalacin por seguridad, elija favor Si.

Luego finalizamos la instalacin y se puede visualizar de la siguiente manera donde se instal el Darcs.

5. MANEJO DE FUNCIONESIniciar un nuevo repositorio en el directorio actual y adicionar un archivo.

Mostrar los archivos editados y archivos que hayan realizado cambios en este repositorio , algunas confirmaciones y la lista de las ultimas confirmaciones.

Varios tipos de revertir confirmaciones.

Trabajando con repositorios remotos.Darcs es un sistema de control de versiones descentralizado. Este puede clonar repositorios e intercambiar parches entre repositorios local y remoto.Obtener los repositorios principales Darcs, crear un cambio y enviarlo.

6. CONCLUSIONES

Darcs es una herramienta que tiene como caractersticas resaltantes facilitar a la hora de trabajar en equipo ya que es flexible a la hora de trabajar en modo offline, al facilitarnos la ramificacin y el merge, facilita los parches envindolos mediante correo electrnico, adems el trabajo en paralelo.7. REFERENCIAS

Pgina oficial de la herramientahttp://darcs.net/Pgina de colaboracin acerca de esta Herramienta y otras.http://www.haskell.org/haskellwiki/DarcsConfiguracioneshttp://darcs.net/WindowsConfiguration

BAZAAR

Jhanina Lima BravoTelf. +501 72674000 [email protected] Brgida Lima Loayza Telf. +501 67704231 [email protected]

1. ABSTRACT

El presente artculo describe la herramienta Bazaar para el control de versiones, describiremos su funcionalidad, caractersticas, y ventajas como herramienta de apoyo a la gestin de versiones.

2. INTRODUCCIN

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.

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.

Bazaar es una herramienta de control de versiones distribuido que facilita que varias personas puedan trabajar de forma conjunta en proyectos de software.Patrocinada por Canonical Ltd., Canonical sponsor comercial de UbuntuEst escrito en Python, publicado bajo licencia GNU/GPL y disponible para plataformas Windows, Linux y Max OS X.

Bazaar se centra en la facilidad de uso y puede ser utilizado por un nico o en conjunto con equipos de desarrollo, permite guardar progresivamente los cambios que vayamos realizando sobre un conjunto de archivos de texto (cdigo fuente), recuperar versiones anteriores, mostrar diferencias, integrar el trabajo de diversos programadores, etc

3. CARACTERSTICAS

Algunas caractersticas de Bazaar son:

Gestiona el almacenamiento de cada uno de los elementos del proyecto.

Capacidad de gestionar ramas de desarrollo paralelas a la principal.

Gestin de conflictos, en el caso de un usuario cambie un elemento de un proyecto.

Generacin de informes de estado, donde se muestren las diferencias entre las distintas versiones.

4. INSTALACIONLo puedes descargar de la pgina de descarga [1] http://wiki.bazaar.canonical.com/WindowsDownload

Pueden descargarse varias versiones, mejor una que indique 'estable'.

Ejecutar fichero descargado, se instala sin ningn problema. Puede cambiarse algunas opciones pero lo instalo por defecto

Bien, una vez instalado podremos ejecutarlo desde el icono que se crea en el escritorio o desde el menu Inicio.

Listo para usar.

Bazaar explorer[2]Es un programa bastante intuitivo, no es complejo empezar a trabajar con Bazaar,lo primero que debemos hacer es crear el directorio en nuestro ordenador donde vamos alojar nuestro proyecto.Luego desde Bazzar explorer, le damos al icono de inicializar, nos sale una ventana donde debemos indicar la ubicacion y el modelo de trabajo que deseamos.

5. CONCLUSION

Bazaar constituye una herramienta valiosa para el control de versiones, al ser sistema distribuido permite que aunque se caiga el repositorio remoto los usuarios pueden seguir trabajando.

Esta aplicacin permite un uso muy verstil, y que puede ser utilizada por un nico usuario en un contenido local o puede, tambin, contar con varios usuarios de un mismo equipo que estn trabajando conjuntamente en la red.

6. REFERENCIAS

[1] http://jdeveloper.wikispaces.com/10.6.-+Bazaar

[2]http://manualesyayudas.solucionesvigo.es/index.php/categorias/lenguajes-de-programacion/item/100-bazaar-en-windows-y-en-ubuntu?tmpl=component&print=1

Karen Snchez Av. Beln 5571 Telf. +501 70913833 [email protected] Dabeyva Meja Calle 10, zona expocruz Telf. +501 77659230 [email protected] 1. ABSTRACT Este artculo se centra en el sistema de gestin de cdigo fuente Mercurial, ms comnmente conocida como HG. Mercurial ofrece una solucin potente, moderna y ligera para el control del cdigo fuente que facilita a los desarrolladores trabajar y depurar sus cambios en un proyecto de software, mientras da mantenimiento a un repositorio estable, centralizando el cdigo fuente para que todos los miembros del proyecto pueden depender. 2. INTRODUCCION Mercurial es un sistema de control de versiones distribuido (VCS) libre, gratuito y similar a Git o Bazaar. Todos ellos rompen con el modelo tradicional de trabajo cliente/servidor de los repositorios como CVS o Subversin. En los repositorios tradicionales existe una clara diferencia entre los conceptos servidor y cliente: el servidor es el que mantiene y controla el versionado de los ficheros, y el cliente se descarga copias del servidor para que sean modificadas y subidas posteriormente con el fin de que sean vistas por el resto de usuarios. En cambio, en los repositorios distribuidos, los clientes ya no se descargan una copia del repositorio, sino que lo clonan, comportndose como cliente y servidor al mismo tiempo, es decir, que la copia podra comportarse a su vez como servidor ante otros clientes (construyendo as una estructura distribuida). A pesar de que la estructura y gestin es algo ms compleja que la de un SCM tradicional, existen situaciones en las que los repositorios distribuidos son muy tiles, por ejemplo, en proyectos donde los desarrolladores se encuentren continuamente incomunicados y necesitan realizar acciones tan habituales como commit (locales), branch, etc ... Adems de los comandos tradicionales que se pueden ejecutar sobre un sistema de control de versiones, los repositorios distribuidos aaden nuevos como: push y pull. Estos dos comandos permiten a un usuario subir los cambios locales a un servidor remoto y actualizarse con los cambios realizados por otros usuarios respectivamente. 3. CARACTERISTICAS - Arquitectura Distribuida Mercurial se distribuye realmente, dando a cada desarrollador una copia local de toda la historia del desarrollo. Esta forma en que funciona independiente de acceso a la red o en un servidor central. Permite crear ramas y la mezcla es rpida y barata. - Rapido La estructura e implementacin de mercurial est diseado para ser rpido. Puede generar diffs entre revisiones, o saltar hacia atrs en el tiempo en segundos. Por lo tanto Mercurial es perfectamente adecuado para grandes proyectos como NetBeans. - Independiente de la Plataforma Mercurial est escrito en Python, por razones de rendimiento. Como resultado, tenemos distribuciones binarias y estn disponibles para todas las plataformas. - Extensible La funcionalidad de Mercurial se puede aumentar con extensiones, ya sea mediante la activacin oficial que se envan con Mercurial o descargando algunos. Las extensiones estn escritas en Python y pueden cambiar el funcionamiento de los comandos bsicos, agregar nuevos comandos y acceder a todas las funciones bsicas de Mercurial. - Fcil de usar La mayora de los comandos son los mismos que en subversin. Las acciones peligrosas estn disponibles a travs de las acciones peligrosas disponibles con las extensiones. funcionalidad de Mercurial se puede aumentar con extensiones, ya sea mediante la activacin oficial que se envan con Mercurial o descargando algunos. Las extensiones estn escritas en Python y pueden cambiar el funcionamiento de los comandos bsicos, agregar nuevos comandos y acceder a todas las funciones bsicas de Mercurial. - Cdigo Abierto Mercurial es software libre licenciado bajo los trminos de la Licencia Pblica General GNU versin 2 o cualquier versin posterior. - Proyectos similares Mercurial se utiliza para el control de versiones de archivos. Proyectos similares a Git y bazar . Sistemas de control de versiones sin una arquitectura distribuida incluyen Subversion y CVS. 4. INSTALACION Lo descargamos del enlace: http://mercurial.selenic.com/ Video de Instalacin: https://www.youtube.com/watch?v=1toAxnUhWqQ 5. CONCLUSIONES Ofrece la posibilidad de tener un nmero ilimitado de personas trabajando sobre un mismo cdigo. Retorno a un estado anterior. El uso de sistemas de versiones permite poder volver a un estado anterior de un fichero o de todo el proyecto en caso de que los cambios realizados a posterior hayan dado problemas. Historial de los cambios realizados, pudiendo saber en todo momento quin y en qu momento se hizo un determinado cambio. Crear una determinada rama para probar una cosa o solucionar un determinado bug encontrado sin comprometer lo que ya llevas realizado. Acceso remoto. Es posible acceder al repositorio donde se encuentra el proyecto desde cualquier equipo capaz de conectarse a la red. Mejora de la seguridad, ya que se pueden otorgar diferentes permisos sobre cada rama del proyecto. As se podra dar acceso de lectura a todos los usuarios, pero slo a unos pocos permisos de escritura.