BookRags.com Literature Guides Literature
Guides
Criticism & Essays Criticism &
Essays
Questions & Answers Questions &
Answers
Lesson Plans Lesson
Plans
My Bibliography Periodic Table U.S. Presidents Shakespeare Sonnet Shake-Up
Research Anything:        
History | Encyclopedias | Films | News | Create a Bibliography | More... Login | Register | Help
Not What You Meant?  There are 17 definitions for Arch.  Also try: TLA.

GNU arch

Print-Friendly
About 4 pages (1,043 words)

Bookmark and Share Know this topic well? Help others and get FREE products!
GNU arch
Developer Andy Tai
Latest release 1.3.5 / July 20, 2006
OS Linux, Windows, Mac OS X
Genre Revision control
License GPL
Website The GNU Arch homepage

In computing, GNU arch is a distributed revision control system that is part of the GNU Project and licensed under the GNU General Public License. It is used to keep track of the changes made to a source tree and to help programmers combine and otherwise manipulate changes made by multiple people or at different times. As of May 2006, GNU arch is being maintained, but it is not under active development.

Contents

Features

Being a distributed, decentralized versioning systems, each revision in GNU arch is uniquely globally identifiable; such identifier can be used in a distributed setting to easily merge or cherry-pick changes from completely disparate sources. 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 HTTP, FTP, or SFTP; but then, contributors are encouraged to make modifications and publish them in a public archive (repository) of their own, so that the head developer may manually merge changesets into the official repository. To simulate the behavior of centralized revision control systems, the head developer could allow shell access (SSH) or write access (FTP, SFTP, WebDAV) to a server, allowing authorized users to commit to a central server. More often, GNU arch-managed projects have a lead benevolent dictator that merges changes from contributors. 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 hash to prevent accidental corruption. Using an external file signing program (such as GnuPG or another PGP client), 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 links are supported and are tracked the same way as files and directories.

History and maintainership

The original author and maintainer of arch was Tom Lord. The command used to manipulate Arch repositories is tla, an acronym for Tom Lord's Arch. Lord started arch as a collection of shell scripts to provide an alternative to CVS. In 2003, arch became part of the GNU project. On August 15 2005 (shortly after announcing a new release of his Arch 2.0 project revc [1]), Tom Lord announced to Richard Stallman and the GNU Arch users that he was resigning as the maintainer of Arch and recommended that Canonical Ltd's Bazaar project (version 1) become the main Arch project. [2]. On October 27, 2005, Andy Tai announced that Lord and the Free Software Foundation had accepted his offer to be the maintainer of GNU arch. [3] The Arch project has forked several times, resulting in the ArX and Baz revision control systems.

Criticism

Perhaps the most common criticism of arch is that it is difficult to learn, even for users who have experience with other SCM systems. In particular, arch has a large number of commands, which can be intimidating for new users. Some also criticize arch for using very unusual file naming conventions ("FunkyFileNames"), which can create difficulties for using arch in scripts, some shells, and in porting arch to non-Unix operating systems. In addition to a perceived lack of portability, at present arch has a reputation of not scaling well to large trees. Proponents of arch point out that the project is still maturing, and that any serious problems will likely be addressed as work continues. The not yet released version 2.0 proposed to get rid of the strange filenames and reduce the command set to 10 commands. The 2.0 release is currently stalled given Tom Lord's resignation as maintainer.

See also

External links

Free software Portal

View More Summaries on GNU arch
 
Ask any question on GNU arch and get it answered FAST!
Answer questions in BookRags Q&A and earn points toward
discounted or even FREE Study Guides and other BookRags products!
Learn more about BookRags Q&A
Copyrights
GNU arch from Wíkipedia. ©2006 by Wíkipedia. Licensed under the GNU Free Documentation License. View a list of authors or edit this article.

Article Navigation
Join BookRagslearn moreJoin BookRags




About BookRags | Customer Service | Report an Error | Terms of Use | Privacy Policy