stringtranslate.com

arco GNU

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]

Características

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:

confirmaciones atómicas
Los compromisos son todo o nada. El árbol debe estar en condiciones adecuadas antes de que comience la confirmación, y las confirmaciones no son visibles para el mundo hasta que se completan. Si la confirmación se interrumpe antes de esto, permanece invisible y debe revertirse antes de la siguiente confirmación. Esto evita la corrupción del archivo y de las copias extraídas de otros usuarios.
Orientado al conjunto de cambios
En lugar de rastrear archivos individuales (como en CVS ), GNU arch rastrea conjuntos de cambios, que son similares a parches. Cada conjunto de cambios es una descripción de la diferencia entre un árbol fuente y otro, por lo que se puede utilizar un conjunto de cambios para producir una revisión a partir de otra revisión. Se anima a los autores a utilizar una confirmación por función o corrección de errores.
Fácil ramificación
La ramificación es eficiente y puede abarcar archivos. Una rama (o 'etiqueta') simplemente declara la revisión del antecesor y el desarrollo continúa a partir de ahí.
Fusión avanzada
Debido al registro permanente de todos los ancestros y las revisiones fusionadas, la fusión puede tener en cuenta qué rama contiene qué parche y puede realizar una fusión de tres vías basada en una revisión de ancestro compartida.
Firmas criptográficas
Cada conjunto de cambios se almacena con un hash para evitar daños accidentales. Utilizando un programa de firma de archivos externo (como GnuPG u otro cliente PGP ), estos hashes también se pueden firmar opcionalmente, evitando modificaciones no autorizadas si el archivo se ve comprometido.
Cambiar el nombre
Todos los archivos y directorios se pueden cambiar fácilmente de nombre. Estos se rastrean mediante una identificación única en lugar de por nombre, por lo que se conserva el historial y los parches de los archivos se combinan correctamente incluso si los nombres de los archivos difieren entre las ramas.
Seguimiento de metadatos
Se realiza un seguimiento de los permisos de todos los archivos. Los enlaces simbólicos son compatibles y se rastrean de la misma manera que los archivos y directorios.

Historia y mantenimiento

GNU arch versión 1 y tla

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

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]

Crítica

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]

Ver también

Referencias

  1. ^ ab Tai, Andy (28 de marzo de 2008). "Re: revc". gnu-arch-users (lista de correo) . Consultado el 17 de junio de 2008 .
  2. ^ "Historia del Bazar" . Consultado el 20 de mayo de 2014 .
  3. ^ Moffit, Nick (1 de noviembre de 2004). "Control de revisiones con Arch: Introducción a Arch". Diario de Linux . Consultado el 18 de junio de 2008 .
  4. ^ Señor, Tom (13 de julio de 2003). "GNU, doc foo, planes a corto plazo, sugerencias de piratería, dinero". arch-usuarios (lista de correo) . Consultado el 18 de junio de 2008 .[ enlace muerto permanente ]
  5. ^ Señor, Thomas (31 de octubre de 2004). "espíritu comunitario". gnu-arch-users (lista de correo) . Consultado el 17 de junio de 2008 .
  6. ^ Señor, Thomas (15 de agosto de 2005). "Mantenimiento de GNU Arch". gnu-arch-users (lista de correo) . Consultado el 17 de junio de 2008 .
  7. ^ "Baz1x - Control de versiones de Bazaar". 24 de julio de 2006 . Consultado el 17 de enero de 2008 .
  8. ^ Arbash Meinel, Juan; Aarón Bentley; Martín Piscina; Mark Shuttleworth (26 de julio de 2006). "Historia Del Bazar" . Consultado el 20 de febrero de 2008 .
  9. ^ ab Collins, Robert (30 de junio de 2006). "liberando 1,5". bazar-old (lista de correo). Archivado desde el original el 12 de mayo de 2011 . Consultado el 16 de junio de 2007 .
  10. ^ Tai, Andy (27 de octubre de 2005). "Re: ¡Buenas noticias sobre GNU Arch!". gnu-arch-users (lista de correo) . Consultado el 17 de junio de 2008 .
  11. ^ ab Señor, Thomas (20 de junio de 2005). "base de código arch 2.0 en progreso". gnu-arch-dev (lista de correo) . Consultado el 17 de junio de 2008 .[ enlace muerto permanente ]
  12. ^ ab Señor, Thomas (8 de julio de 2005). "GNU Arch 2.0 - primera fuente". gnu-arch-dev (lista de correo). Archivado desde el original el 17 de mayo de 2011 . Consultado el 17 de junio de 2008 .
  13. ^ Señor, Thomas (1 de agosto de 2005). "Lanzamiento de Arch 2.0 (revc.0.0x2)". gnu-arch-users (lista de correo) . Consultado el 17 de junio de 2008 .
  14. ^ Wandrebeck, Laurent (26 de marzo de 2008). "revc". gnu-arch-users (lista de correo) . Consultado el 17 de junio de 2008 .
  15. ^ Señor, Thomas (28 de marzo de 2008). "Re: revc". gnu-arch-users (lista de correo) . Consultado el 17 de junio de 2008 .
  16. ^ Thomas Lord 1966-2022, 2022-06-26
  17. ^ Piscina, Martín (21 de junio de 2004). "¿Qué le pasa a Arch?". Archivado desde el original el 14 de julio de 2012 . Consultado el 18 de junio de 2008 .
  18. ^ Piscina, Martín (26 de septiembre de 2004). "Entrevista a Tom Lord y cosas relacionadas". Archivado desde el original el 13 de julio de 2012 . Consultado el 18 de junio de 2008 . 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.
  19. ^ Weimer, Florian (9 de junio de 2004). "Algunos problemas con GNU arch" . Consultado el 18 de junio de 2008 .

enlaces externos