fbpx
Wikipedia

Monotone

Monotone es una herramienta software de fuente abierta para control distribuido de versiones.

Monotone
Información general
Tipo de programa aplicación informática
Desarrollador Nathaniel Smith, Graydon Hoare
Lanzamiento inicial 6 de abril de 2003
Licencia GPL
Información técnica
Programado en C++
Versiones
Última versión estable 1.0 28 de marzo de 2011
Enlaces
Sitio web oficial
Repositorio de código

Monotone registra revisiones de ficheros, agrupa conjuntos de revisiones ('changesets') y mantiene el histórico tras cambios de nombre. El principio de diseño es el de operación distribuida haciendo gran uso de primitivas criptográficas para trazar revisiones de ficheros (mediante el hash seguro SHA-1) y para autenticar acciones de usuarios (mediante firmas criptográficas RSA). Cada participante mantiene su propio almacén de revisiones históricas en una base de datos SQLite local.

Monotone es especialmente potente en su soporte de la rutina de separación/integración ('diverge/merge'), que consigue en parte al permitir siempre hacer 'commit' antes de integrar.[1]​ Las revisiones se intercambian haciendo uso del protocolo propio netsync, que tiene su propio puerto (4691) asignado por IANA y dispone de un plugin para Wireshark que permite el análisis de tráfico (netsync comparte cierto terreno conceptual con rsync y cvsup). El enfoque del proyecto está en la integridad por encima del rendimiento.

Antes de ciertas optimizaciones importantes en la revisión 0.27, se solía culpar a este énfasis en la corrección en lugar de optimización como la causa de malas experiencias iniciales. La primera acción de un usuario nuevo suele ser sincronizar (clonar) una gran base de datos de Monotone ya existente, acción que solía llevar horas de ejecución debido a las comprobaciones exhaustivas de validación e integración que realiza Monotone cuando se mueven revisiones por la red. Una vez poblada la base de datos inicial (clon), las acciones posteriores suelen ser rápidas. Sigue habiendo espacio para optimizaciones en algunas de las funciones menos habituales.

Características

Al igual que GNU arch y al contrario que Subversion, Monotone se basa en un modelo distribuido de control de versiones. Usa hashes SHA-1 en lugar de números de versión a la hora de identificar ficheros o grupos de ficheros específicos, al igual que Git y Mercurial.

Aunque Monotone solía admitir varios protocolos de red para sincronizar árboles, ahora usa de forma exclusiva un protocolo propio bautizado netsync, que es más robusto y eficiente (sin embargo, desde la versión 0.27, es posible usar el protocolo netsync sobre otros medios, incluyendo conexiones ssh). No existe un servidor específico debido a que cualquier cliente Monotone puede actuar como servidor, de acuerdo con el principio end-to-end (comunicación directa entre extremos, que aparece en el diseño de TCP).

Algunas otras características de Monotone son:

  • Buen soporte de internacionalización y localización
  • Diseño portable, implementado en C++
  • Monotone puede importar proyectos de CVS.
  • Firma de las revisiones usando certificados RSA
  • Fácil de aprender, debido a un juego de órdenes similar al de CVS
  • Buena documentación

En enero de 2008, entre las posibles desventajas de Monotone se incluían:

  • Menor popularidad que algunos sistemas en competencia, como Git o Mercurial
  • Problemas de rapidez en ciertas operaciones (más evidente en la clonación inicial)
  • Ausencia general de interfaces gráficas estables, aunque hay algunas en vías de desarrollo, como TracMtn, un plugin para Trac que permite navegar por un repositorio y su histórico, o , un frontal escrito en Qt para gestionar bases de datos y espacios de trabajo.

'Milestones'

La versión 0.26 de Monotone introdujo grandes cambios a la estructura interna de la base de datos, incluyendo una nueva estructura conocida como roster por los desarrolladores de Monotone.[2]​ Las bases de datos de Monotone creadas con la versión 0.26 no pueden intercambiar revisiones con otras más antiguas. Estas últimas han de ser actualizadas antes al nuevo formato. El nuevo protocolo netsync es incompatible con versiones anteriores de Monotone.

Implementación

Monotone está implementado en un C++ de dialecto moderno sobre la biblioteca de sistema Boost, la biblioteca criptográfica Botan y la base de datos SQLite. Monotone admite personalización y extensión mediante funciones de enganche (hooks) escritos en el Lenguaje de programación Lua. El proceso de construcción de monotone está automatizado usando BuildBot e incluye pruebas de regresión exhaustivas.

Monotone como inspiración de Git

En abril de 2005, Monotone disfrutó de un interés creciente dentro de la comunidad del software libre tras mencionarlo Linus Torvalds como un posible reemplazo para BitKeeper en el proceso de desarrollo de Linux.[3]​ En lugar de adoptar Monotone, Torvalds escribió su propio sistema SCM, Git. El diseño de Git usa algunas ideas Monotone, pero los proyectos no comparten nada en su código central.

Uno de los problemas claves debatidos fue si el reemplazo de BitKeeper debía admitir la técnica denominada cherry picking, mediante la cual el encargado de un árbol puede aprobar un subconjunto de cambios mientras que rechaza otros, de forma individual.

Linus argumenta que este enfoque "da como resultado una dinámica y psicologías equivocadas en el sistema", pasando los problemas a los mantenedores principales en lugar de forzar a los que contribuyen los cambios a hacer el esfuerzo de mantener sus propios árboles libres de basura.

Además, argumenta que Monotone sostiene la actitud correcta en su aversión a ofrecer esta técnica como característica, para luego, sin embargo, estropearlo al no llevar esta actitud lo suficientemente lejos como para facilitar la "expulsión" de árboles de trabajo sucios después de que hayan servido su propósito.[4]​ Además, hizo saber su impresión de que Monotone no había alcanzado por entonces el nivel de rendimiento precisado por un proyecto tan grande como el desarrollo del núcleo Linux.

Este argumento es contrario a la percepción de muchos desarrolladores de software del cherry picking como característica avanzada que una herramienta SCM debería admitir. Otras herramientas, como Darcs, son particularmente potentes en este aspecto. Incluso Git lo admite ahora, mediante la orden "git cherry-pick".

Soporte técnico

En la actualidad, el soporte de este software se encuentra disponible mediante las listas de correo electrónico, IRC y un .

Usuarios de Monotone

  • Un marco de creación de aplicaciones para PHP
  • OpenEmbedded, usado para crear distribuciones Linux para sistemas embebidos.
  • El IM Pidgin (anterior proyecto Gaim) usa Monotone ahora tanto para Pidgin como para libpurple (anteriormente, libgaim)

Véase también

Referencias

  1. «Dealing with a Fork - monotone documentation». Consultado el 30 de junio de 2008. 
  2. «What are rosters» (en inglés). 
  3. «Linux-Kernel Archive: Kernel SCM saga» (en inglés). Archivado desde el original el 30 de junio de 2012. 
  4. «LKML: Linus Torvalds: Re: Kernel SCM saga» (en inglés). 

Enlaces externos

  • Página de Monotone


  •   Datos: Q1813297

monotone, herramienta, software, fuente, abierta, para, control, distribuido, versiones, información, generaltipo, programaaplicación, informáticadesarrolladornathaniel, smith, graydon, hoarelanzamiento, inicial6, abril, 2003licenciagplinformación, técnicaprog. Monotone es una herramienta software de fuente abierta para control distribuido de versiones MonotoneInformacion generalTipo de programaaplicacion informaticaDesarrolladorNathaniel Smith Graydon HoareLanzamiento inicial6 de abril de 2003LicenciaGPLInformacion tecnicaProgramado enC VersionesUltima version estable1 0 28 de marzo de 2011EnlacesSitio web oficial Repositorio de codigo editar datos en Wikidata Monotone registra revisiones de ficheros agrupa conjuntos de revisiones changesets y mantiene el historico tras cambios de nombre El principio de diseno es el de operacion distribuida haciendo gran uso de primitivas criptograficas para trazar revisiones de ficheros mediante el hash seguro SHA 1 y para autenticar acciones de usuarios mediante firmas criptograficas RSA Cada participante mantiene su propio almacen de revisiones historicas en una base de datos SQLite local Monotone es especialmente potente en su soporte de la rutina de separacion integracion diverge merge que consigue en parte al permitir siempre hacer commit antes de integrar 1 Las revisiones se intercambian haciendo uso del protocolo propio netsync que tiene su propio puerto 4691 asignado por IANA y dispone de un plugin para Wireshark que permite el analisis de trafico netsync comparte cierto terreno conceptual con rsync y cvsup El enfoque del proyecto esta en la integridad por encima del rendimiento Antes de ciertas optimizaciones importantes en la revision 0 27 se solia culpar a este enfasis en la correccion en lugar de optimizacion como la causa de malas experiencias iniciales La primera accion de un usuario nuevo suele ser sincronizar clonar una gran base de datos de Monotone ya existente accion que solia llevar horas de ejecucion debido a las comprobaciones exhaustivas de validacion e integracion que realiza Monotone cuando se mueven revisiones por la red Una vez poblada la base de datos inicial clon las acciones posteriores suelen ser rapidas Sigue habiendo espacio para optimizaciones en algunas de las funciones menos habituales Indice 1 Caracteristicas 2 Milestones 3 Implementacion 4 Monotone como inspiracion de Git 5 Soporte tecnico 6 Usuarios de Monotone 7 Vease tambien 8 Referencias 9 Enlaces externosCaracteristicas EditarAl igual que GNU arch y al contrario que Subversion Monotone se basa en un modelo distribuido de control de versiones Usa hashes SHA 1 en lugar de numeros de version a la hora de identificar ficheros o grupos de ficheros especificos al igual que Git y Mercurial Aunque Monotone solia admitir varios protocolos de red para sincronizar arboles ahora usa de forma exclusiva un protocolo propio bautizado netsync que es mas robusto y eficiente sin embargo desde la version 0 27 es posible usar el protocolo netsync sobre otros medios incluyendo conexiones ssh No existe un servidor especifico debido a que cualquier cliente Monotone puede actuar como servidor de acuerdo con el principio end to end comunicacion directa entre extremos que aparece en el diseno de TCP Algunas otras caracteristicas de Monotone son Buen soporte de internacionalizacion y localizacion Diseno portable implementado en C Monotone puede importar proyectos de CVS Firma de las revisiones usando certificados RSA Facil de aprender debido a un juego de ordenes similar al de CVS Buena documentacionEn enero de 2008 entre las posibles desventajas de Monotone se incluian Menor popularidad que algunos sistemas en competencia como Git o Mercurial Problemas de rapidez en ciertas operaciones mas evidente en la clonacion inicial Ausencia general de interfaces graficas estables aunque hay algunas en vias de desarrollo como TracMtn un plugin para Trac que permite navegar por un repositorio y su historico o guitone un frontal escrito en Qt para gestionar bases de datos y espacios de trabajo Milestones EditarLa version 0 26 de Monotone introdujo grandes cambios a la estructura interna de la base de datos incluyendo una nueva estructura conocida como roster por los desarrolladores de Monotone 2 Las bases de datos de Monotone creadas con la version 0 26 no pueden intercambiar revisiones con otras mas antiguas Estas ultimas han de ser actualizadas antes al nuevo formato El nuevo protocolo netsync es incompatible con versiones anteriores de Monotone Implementacion EditarMonotone esta implementado en un C de dialecto moderno sobre la biblioteca de sistema Boost la biblioteca criptografica Botan y la base de datos SQLite Monotone admite personalizacion y extension mediante funciones de enganche hooks escritos en el Lenguaje de programacion Lua El proceso de construccion de monotone esta automatizado usando BuildBot e incluye pruebas de regresion exhaustivas Monotone como inspiracion de Git EditarEn abril de 2005 Monotone disfruto de un interes creciente dentro de la comunidad del software libre tras mencionarlo Linus Torvalds como un posible reemplazo para BitKeeper en el proceso de desarrollo de Linux 3 En lugar de adoptar Monotone Torvalds escribio su propio sistema SCM Git El diseno de Git usa algunas ideas Monotone pero los proyectos no comparten nada en su codigo central Uno de los problemas claves debatidos fue si el reemplazo de BitKeeper debia admitir la tecnica denominada cherry picking mediante la cual el encargado de un arbol puede aprobar un subconjunto de cambios mientras que rechaza otros de forma individual Linus argumenta que este enfoque da como resultado una dinamica y psicologias equivocadas en el sistema pasando los problemas a los mantenedores principales en lugar de forzar a los que contribuyen los cambios a hacer el esfuerzo de mantener sus propios arboles libres de basura Ademas argumenta que Monotone sostiene la actitud correcta en su aversion a ofrecer esta tecnica como caracteristica para luego sin embargo estropearlo al no llevar esta actitud lo suficientemente lejos como para facilitar la expulsion de arboles de trabajo sucios despues de que hayan servido su proposito 4 Ademas hizo saber su impresion de que Monotone no habia alcanzado por entonces el nivel de rendimiento precisado por un proyecto tan grande como el desarrollo del nucleo Linux Este argumento es contrario a la percepcion de muchos desarrolladores de software del cherry picking como caracteristica avanzada que una herramienta SCM deberia admitir Otras herramientas como Darcs son particularmente potentes en este aspecto Incluso Git lo admite ahora mediante la orden git cherry pick Soporte tecnico EditarEn la actualidad el soporte de este software se encuentra disponible mediante las listas de correo electronico IRC y un wiki de soporte Usuarios de Monotone EditarXaraya Un marco de creacion de aplicaciones para PHP OpenEmbedded usado para crear distribuciones Linux para sistemas embebidos El IM Pidgin anterior proyecto Gaim usa Monotone ahora tanto para Pidgin como para libpurple anteriormente libgaim Vease tambien EditarProgramas para control de versionesReferencias Editar Dealing with a Fork monotone documentation Consultado el 30 de junio de 2008 What are rosters en ingles Linux Kernel Archive Kernel SCM saga en ingles Archivado desde el original el 30 de junio de 2012 LKML Linus Torvalds Re Kernel SCM saga en ingles Enlaces externos EditarPagina de Monotone Datos Q1813297Obtenido de https es wikipedia org w index php title Monotone amp oldid 119552359, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos