GNU arch
Original author(s) | Thomas Lord |
---|---|
Developer(s) | Andy Tai |
Final release | 1.3.5
/ July 20, 2006 |
Written in | Revision control |
License | GPL |
Website | www |
GNU arch
As of 2009, GNU arch's official status is deprecation, and only security fixes are applied.
Features
Being a distributed, decentralized versioning system, each revision stored using arch is uniquely globally identifiable; such identifier can be used in a
Being decentralized means that there is no need for a central server for which developers have to be authorized in order to contribute. As with other systems, a full read-only copy of a project is made accessible in an "official" repository via
To simulate the behavior of centralized revision control systems, the head developer could allow shell access (
GNU arch has several other features:
- Atomic commits
- Commits are all-or-nothing. The tree must be in proper condition before the commit begins, and commits are not visible to the world until complete. If the commit is interrupted before this, it remains invisible and must be rolled back before the next commit. This avoids corruption of the archive and other users' checked-out copies.
- Changeset oriented
- Instead of tracking individual files (as in CVS), GNU arch tracks changesets, which are akin to patches. Each changeset is a description of the difference between one source tree and another, and so a changeset can be used to produce one revision from another revision. Authors are encouraged to use one commit per feature or bugfix.
- Easy branching
- Branching is efficient and can span archives. A branch (or 'tag') simply declares the ancestor revision, and development continues from there.
- Advanced merging
- Due to the permanent record of all ancestors and merged revisions, merging can take into account which branch contains which patch, and can do three-way merging based on a shared ancestor revision.
- Cryptographic signatures
- Every changeset is stored with a GnuPG or another PGPclient), these hashes can also optionally be signed, preventing unauthorized modification if the archive is compromised.
- Renaming
- All files and directories can be easily renamed. These are tracked by a unique ID rather than by name, so history is preserved, and patches to files are properly merged even if filenames differ across branches.
- Metadata tracking
- The permissions of all files are tracked. Symbolic linksare supported and are tracked the same way as files and directories.
History and maintainership
GNU arch version 1 and tla
The original author and maintainer of GNU arch was Thomas Lord who started the project in 2001. The command used to manipulate GNU arch repositories is tla, an initialism for Tom Lord's Arch. Lord started GNU arch as a collection of shell scripts to provide an alternative to CVS.[3] In 2003, arch became part of the GNU project.[4]
The GNU arch project
In August 2005 Lord announced that he was resigning as the maintainer of GNU arch and recommended that Baz become the main GNU arch project.
revc
revc was a prototype revision control project by Thomas Lord that he intended to become GNU arch 2.0, designed to be a radical departure from tla and to draw many ideas from the
As of 2008 the last pre-release, 0.0x2, of revc is still available[14] and Lord was still interested in some of the ideas in GNU arch but did not have the resources to resume development of revc.[15] Thomas Lord died in June 2022.[16]
Criticism
Perhaps the most common criticism of GNU arch is that it is difficult to learn, even for users who have experience with other SCM systems. In particular, GNU arch has a large number of commands, which can be intimidating for new users and some design elements arguably too strongly enforce Lord's taste in version control practices.[17][18]
Some also criticize GNU arch for using very unusual file naming conventions ("FunkyFileNames" at the
See also
References
- ^ a b Tai, Andy (2008-03-28). "Re: revc". gnu-arch-users (Mailing list). Retrieved 2008-06-17.
- ^ "History of Bazaar". Retrieved 20 May 2014.
- ^ Moffit, Nick (2004-11-01). "Revision Control with Arch: Introduction to Arch". Linux Journal. Retrieved 2008-06-18.
- ^ Lord, Tom (2003-07-13). "GNU, doc foo, short-term plans, hacking suggestions, money". arch-users (Mailing list). Retrieved 2008-06-18.[permanent dead link]
- ^ Lord, Thomas (2004-10-31). "community spirit". gnu-arch-users (Mailing list). Retrieved 2008-06-17.
- ^ Lord, Thomas (2005-08-15). "GNU Arch maintainership". gnu-arch-users (Mailing list). Retrieved 2008-06-17.
- ^ "Baz1x - Bazaar Version Control". 2006-07-24. Retrieved 2008-01-17.
- ^ Arbash Meinel, John; Aaron Bentley; Martin Pool; Mark Shuttleworth (2006-07-26). "HistoryOfBazaar". Retrieved 2008-02-20.
- ^ a b Collins, Robert (2006-06-30). "releasing 1.5". bazaar-old (Mailing list). Archived from the original on 2011-05-12. Retrieved 2007-06-16.
- ^ Tai, Andy (2005-10-27). "Re: Good News about GNU Arch!". gnu-arch-users (Mailing list). Retrieved 2008-06-17.
- ^ a b Lord, Thomas (2005-06-20). "arch 2.0 code base in progress". gnu-arch-dev (Mailing list). Retrieved 2008-06-17.[permanent dead link]
- ^ a b Lord, Thomas (2005-07-08). "GNU Arch 2.0 -- first source". gnu-arch-dev (Mailing list). Archived from the original on 2011-05-17. Retrieved 2008-06-17.
- ^ Lord, Thomas (2005-08-01). "Arch 2.0 release (revc.0.0x2)". gnu-arch-users (Mailing list). Retrieved 2008-06-17.
- ^ Wandrebeck, Laurent (2008-03-26). "revc". gnu-arch-users (Mailing list). Retrieved 2008-06-17.
- ^ Lord, Thomas (2008-03-28). "Re: revc". gnu-arch-users (Mailing list). Retrieved 2008-06-17.
- ^ Thomas Lord 1966-2022, 2022-06-26
- ^ Pool, Martin (2004-06-21). "What's wrong with Arch?". Archived from the original on 2012-07-14. Retrieved 2008-06-18.
- ^ Pool, Martin (2004-09-26). "Tom Lord interview, and related things". Archived from the original on 2012-07-13. Retrieved 2008-06-18.
Earlier versions were very much bound into projects being run the way Tom wanted them: wierd [sic] file conventions, only committing from clean trees, and so on
- ^ Weimer, Florian (2004-06-09). "Some Issues with GNU arch". Retrieved 2008-06-18.