El software GNU arch es un sistema de control de revisiones distribuido que forma parte del Proyecto GNU y tiene la licencia Pública General GNU . Se utiliza para realizar un seguimiento de los cambios realizados en un árbol de fuentes y para ayudar a los programadores a combinar y manipular los cambios realizados por varias personas o en diferentes momentos.
A partir de 2009, el estado oficial de GNU arch es obsoleto y solo se aplican correcciones de seguridad. [1] Desde entonces , Bazaar (o 'bzr') también se ha convertido en un proyecto oficial de GNU y, por lo tanto, puede considerarse el reemplazo de GNU arch. No es una bifurcación de arco. [2]
Al ser un sistema de versiones descentralizado y distribuido, cada revisión almacenada mediante arch es identificable de forma única a nivel global; dicho identificador se puede utilizar en un entorno distribuido para fusionar o "seleccionar" fácilmente cambios de fuentes completamente dispares.
Al estar descentralizado, no se necesita un servidor central en el que los desarrolladores deban estar autorizados para poder contribuir. Al igual que con otros sistemas, se puede acceder a una copia completa de solo lectura de un proyecto en un repositorio "oficial" a través de HTTP , FTP o SFTP ; pero luego, se anima a los contribuyentes a realizar modificaciones y publicarlas en un archivo público (repositorio) propio, de modo que el desarrollador principal pueda fusionar manualmente los conjuntos de cambios en el repositorio oficial.
Para simular el comportamiento de los sistemas de control de revisiones centralizados, el desarrollador principal podría permitir el acceso al shell ( SSH ) o el acceso de escritura (FTP, SFTP, WebDAV ) a un servidor, permitiendo a los usuarios autorizados comprometerse con un servidor central. Más a menudo, los proyectos archirgestionados por GNU tienen un dictador benévolo que fusiona los cambios de los contribuyentes.
GNU arch tiene varias otras características:
El autor original y mantenedor de GNU arch fue Thomas Lord, quien inició el proyecto en 2001. El comando utilizado para manipular los repositorios de GNU arch es tla , una inicial de Tom Lord's Arch . Lord inició GNU arch como una colección de scripts de shell para proporcionar una alternativa a CVS. [3] En 2003, arch pasó a formar parte del proyecto GNU . [4]
El proyecto GNU arch se bifurcó varias veces, lo que resultó en la bifurcación Baz ahora abandonada de Canonical Ltd. y el proyecto ArX de Walter Landry. Ambas bifurcaciones provocaron una reacción hostil: la bifurcación ArX se debió a una seria disputa de dirección y Lord fue fuertemente crítico con el enfoque de Canonical al anunciar el proyecto Baz. [5]
En agosto de 2005, Lord anunció que renunciaba como mantenedor de GNU arch y recomendó que Baz se convirtiera en el proyecto principal de GNU arch. [6] Sin embargo, esto no sucedió: Canonical abandonó la bifurcación de Baz en favor del proyecto Bazaar separado, [7] [8] y la versión 1.5 de Baz fue descartada en 2006. [9] En octubre de 2005, Andy Tai anunció que Lord y la Free Software Foundation habían aceptado su oferta para ser el mantenedor de GNU arch. [10] Posteriormente, Tai fusionó muchas características de Baz nuevamente en tla, [9] pero en marzo de 2008 indicó que tla ya no estaba bajo desarrollo activo y ya no era competitivo con otros sistemas de control de versiones. [1]
revc era un prototipo de proyecto de control de revisiones de Thomas Lord que pretendía convertirse en GNU arch 2.0, diseñado para ser una desviación radical de tla y extraer muchas ideas del sistema de control de revisiones Git . [11] Fue anunciado en junio de 2005, [11] el primer prelanzamiento fue en julio [12] y el último en agosto, justo antes de la renuncia de Lord como mantenedor. [13] revc solo tenía 10 comandos principales y Lord tenía la intención de eliminar espacios de nombres restrictivos, convenciones de nomenclatura de archivos complicadas y aumentar la velocidad. [12]
En 2008, la última versión preliminar, 0.0x2, de revc todavía está disponible [14] y Lord todavía estaba interesado en algunas de las ideas de GNU arch pero no tenía los recursos para reanudar el desarrollo de revc. [15] Thomas Lord murió en junio de 2022. [16]
Quizás la crítica más común a GNU arch es que es difícil de aprender, incluso para usuarios que tienen experiencia con otros sistemas SCM . En particular, GNU arch tiene una gran cantidad de comandos, lo que puede resultar intimidante para los nuevos usuarios y algunos elementos de diseño posiblemente imponen demasiado el gusto de Lord en las prácticas de control de versiones. [17] [18]
Algunos también critican a GNU arch por usar convenciones de nomenclatura de archivos muy inusuales ("FunkyFileNames" en Wayback Machine (archivado el 8 de agosto de 2007)), lo que puede crear dificultades para usarlo en scripts, algunos shells y al portarlo a sistemas que no sean Unix. sistemas operativos. GNU arch ha sido criticado por tener un tiempo de ejecución lento como parte de una decisión de diseño para reducir la complejidad del código interno. [19]
Las versiones anteriores estaban muy vinculadas a proyectos que se ejecutaban de la forma en que Tom los quería: convenciones de archivos extrañas [sic], solo confirmaciones desde árboles limpios, etc.