GNU Arch Software es un sistema de control de versiones distribuido que forma parte del Proyecto GNU y está licenciado bajo la Licencia Pública General de GNU . Se utiliza para realizar un seguimiento de los cambios realizados en el código fuente y para ayudar a los programadores a combinar y manipular los cambios realizados por varias personas o en diferentes momentos.
Desde 2009, el estado oficial de GNU arch es de obsoleto, y solo se aplican correcciones de seguridad. [ 1 ] 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 arch. [ 2 ]
Características
Al ser un sistema de control de versiones distribuido y descentralizado, cada revisión almacenada mediante `arch` es identificable de forma única a nivel global; dicho identificador puede utilizarse en un entorno distribuido para fusionar fácilmente o seleccionar los cambios que sean necesarios de fuentes completamente dispares.
La descentralización implica que no se necesita un servidor central al que los desarrolladores deban autorizar para contribuir. Al igual que en otros sistemas, se puede acceder a una copia completa de un proyecto en modo de solo lectura en un repositorio "oficial" mediante HTTP , FTP o SFTP ; sin embargo, se anima a los colaboradores a realizar modificaciones y publicarlas en un archivo público (repositorio) propio, para que el desarrollador principal pueda integrar manualmente los cambios en el repositorio oficial.
Para simular el comportamiento de los sistemas de control de versiones centralizados, el desarrollador principal podría permitir el acceso a la línea de comandos ( SSH ) o el acceso de escritura (FTP, SFTP, WebDAV ) a un servidor, lo que permitiría a los usuarios autorizados realizar confirmaciones en un servidor central. Con mayor frecuencia, los proyectos gestionados por la arquitectura GNU cuentan con un líder benevolente que integra los cambios de los colaboradores.
La arquitectura GNU tiene otras características:
- Confirmaciones atómicas
- Las confirmaciones son de todo o nada. El árbol debe estar en condiciones óptimas antes de que comience la confirmación, y estas no son visibles para el mundo hasta que se completan. Si la confirmación se interrumpe antes de que esto ocurra, permanece invisible y debe revertirse antes de la siguiente confirmación. Esto evita la corrupción del archivo y de las copias de otros usuarios.
- Orientado a conjuntos 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 describe la diferencia entre un árbol de código fuente y otro, por lo que se puede usar para generar una revisión a partir de otra. Se recomienda a los autores usar una confirmación por cada característica o corrección de errores.
- Ramificación sencilla
- La ramificación es eficiente y puede abarcar varios archivos. Una rama (o "etiqueta") simplemente declara la revisión anterior, y el desarrollo continúa a partir de ahí.
- fusión avanzada
- Gracias 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 ancestral compartida.
- firmas criptográficas
- Cada conjunto de cambios se almacena con un hash para evitar daños accidentales. Mediante un programa externo de firma de archivos (como GnuPG u otro cliente PGP ), estos hashes también pueden firmarse opcionalmente, lo que impide modificaciones no autorizadas si el archivo se ve comprometido.
- Cambiar el nombre
- Todos los archivos y directorios se pueden renombrar fácilmente. Se les asigna un identificador único en lugar de un nombre, por lo que se conserva el historial y las actualizaciones de archivos se fusionan correctamente, incluso si los nombres de archivo difieren entre las distintas ramas.
- Seguimiento de metadatos
- Se realiza un seguimiento de los permisos de todos los archivos. Se admiten los enlaces simbólicos y se realiza el mismo seguimiento que los archivos y directorios.
Historia y mantenimiento
GNU arch versión 1 y tla
El autor y mantenedor original de GNU arch fue Thomas Lord, quien inició el proyecto en 2001. El comando utilizado para manipular los repositorios de GNU arch es tla , acrónimo de Tom Lord's Arch . Lord comenzó 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, dando como resultado la bifurcación Baz de Canonical Ltd. , ahora abandonada, y el proyecto ArX de Walter Landry. Ambas bifurcaciones provocaron una reacción hostil: la bifurcación ArX se debió a una seria disputa sobre la dirección del proyecto, y Lord criticó duramente la forma en que Canonical anunció el proyecto Baz. [ 5 ]
En agosto de 2005, Lord anunció su renuncia 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 , [ 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 de nuevo en tla, [ 9 ] pero en marzo de 2008 indicó que tla ya no estaba en desarrollo activo y ya no era competitivo con otros sistemas de control de versiones. [ 1 ]
revc
revc fue un prototipo de proyecto de control de versiones de Thomas Lord que pretendía convertir en GNU arch 2.0, diseñado para ser una ruptura radical con tla y para tomar muchas ideas del sistema de control de versiones Git . [ 11 ] Fue anunciado en junio de 2005, [ 11 ] el primer pre-lanzamiento 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 pretendía eliminar los espacios de nombres restrictivos, las convenciones de nombres de archivos complicadas y aumentar la velocidad. [ 12 ]
A partir de 2008, la última versión preliminar, 0.0x2, de revc todavía está disponible [ 14 ] y Lord seguía 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 con experiencia en otros sistemas de control de versiones . 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 imponen, posiblemente, de forma demasiado marcada las preferencias de Lord en cuanto a prácticas de control de versiones. [ 17 ] [ 18 ]
Algunos también critican a GNU arch por usar convenciones de nombres de archivo 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 para portarlo a sistemas operativos que no sean Unix. GNU arch ha sido criticado por tener un tiempo de ejecución lento como parte de una decisión de diseño para disminuir la complejidad del código interno. [ 19 ]
Véase también
Referencias
- 1 2 Tai, Andy (2008-03-28). "Re: revc" . gnu-arch-users (Lista de correo) . Recuperado el 2008-06-17 .
- ↑ "Historia del Bazar" . Archivado del original el 26 de febrero de 2009. Consultado el 20 de mayo de 2014 .
- ↑ Moffit, Nick (1 de noviembre de 2004). "Control de revisiones con Arch: Introducción a Arch" . Linux Journal . Consultado el 18 de junio de 2008 .
- ↑ Lord, Tom (13 de julio de 2003). "GNU, doc foo, planes a corto plazo, sugerencias de hacking, dinero" . arch-users (Lista de correo) . Recuperado el 18 de junio de 2008 .
- ↑ Lord, Thomas (31-10-2004). "Espíritu comunitario" . gnu-arch-users (Lista de correo) . Consultado el 17-06-2008 .
- ↑ Lord, Thomas (15 de agosto de 2005). "Mantenimiento de GNU Arch" . gnu-arch-users (Lista de correo) . Consultado el 17 de junio de 2008 .
- ↑ "Baz1x - Control de versiones de Bazaar" . 24/07/2006. Archivado del original el 07/01/2008 . Consultado el 17/01/2008 .
- ↑ Arbash Meinel, John; Aaron Bentley; Martin Pool; Mark Shuttleworth (26 de julio de 2006). "HistoryOfBazaar" . Archivado del original el 26 de febrero de 2009. Recuperado el 20 de febrero de 2008 .
- 1 2 Collins, Robert (30-06-2006). "lanzamiento 1.5" . bazaar-old (Lista de correo). Archivado del original el 12-05-2011 . Recuperado el 16-06-2007 .
- ↑ Tai, Andy (27-10-2005). "Re: ¡Buenas noticias sobre GNU Arch!" . gnu-arch-users (Lista de correo) . Recuperado el 17-06-2008 .
- 1 2 Lord, Thomas (2005-06-20). "Arch 2.0 code base in progress" . gnu-arch-dev (Lista de correo) . Recuperado el 2008-06-17 .
- 1 2 Lord, Thomas (2005-07-08). "GNU Arch 2.0 -- primer código fuente" . gnu-arch-dev (Lista de correo). Archivado del original el 17-05-2011 . Recuperado el 17-06-2008 .
- ↑ Lord, 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 .
- ↑ Wandrebeck, Laurent (2008-03-26). "revc" . gnu-arch-users (Lista de correo) . Recuperado el 2008-06-17 .
- ↑ Lord, Thomas (2008-03-28). "Re: revc" . gnu-arch-users (Lista de correo) . Recuperado el 2008-06-17 .
- ↑ Thomas Lord 1966-2022 , 26-06-2022
- ↑ Pool, Martin (21 de junio de 2004). "¿Qué le pasa a Arch?" . Consultado el 18 de junio de 2008 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ Pool, Martin (26 de septiembre de 2004). "Entrevista a Tom Lord y temas relacionados" . Recuperado el 18 de junio de 2008.
Las versiones anteriores estaban muy ligadas a que los proyectos se ejecutaran como Tom quería: convenciones de archivos extrañas
[
sic
]
, solo confirmaciones desde árboles limpios, etc.
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ Weimer, Florian (2004-06-09). "Algunos problemas con GNU arch" . Recuperado el 2008-06-18 .
Enlaces externos
- Software de control de versiones gratuito
- Software libre programado en C
- Software del Proyecto GNU
- Sistemas de control de versiones distribuidos
- Sistemas de control de versiones descontinuados
- Software de 2001
- Software que utiliza la Licencia Pública General de GNU.