GNU arch

GNU arch

Infobox Software
name = GNU arch



caption = GNU arch logo
author = Thomas Lord
developer = Andy Tai
latest_release_version = 1.3.5
latest_release_date = release date and age|2006|07|20
latest_preview_version =
latest_preview_date =
operating_system = Linux, Windows, Mac OS X
platform =
genre = Revision control
license = GPL
website = [http://www.gnu.org/software/gnu-arch/ 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 2008, GNU arch is being maintained, but it is not under active development.cite mailinglist
last = Tai
first = Andy
title = Re: revc
url = http://lists.gnu.org/archive/html/gnu-arch-users/2008-03/msg00003.html
mailinglist = gnu-arch-users
date = 2008-03-28
accessdate = 2008-06-17
]

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

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 acronym for "Tom Lord's Arch" Lord started GNU arch as a collection of shell scripts to provide an alternative to CVS. [cite news
last=Moffit
first=Nick
url=http://www.linuxjournal.com/article/7671
work=Linux Journal
title=Revision Control with Arch: Introduction to Arch
date=2004-11-01
accessdate=2008-06-18
] . In 2003, "arch" became part of the GNU project. [cite mailinglist
last=Lord
first=Tom
title=GNU, doc foo, short-term plans, hacking suggestions, money
url=http://ml.osdir.com/version-control.arch.user/2003-07/msg00833.html
date=2003-07-13
accessdate=2008-06-18
mailinglist=arch-users
]

The GNU arch project forked several times, resulting in both Canonical Ltd's now abandoned fork and Walter Landry's ArX project. Both forks provoked a hostile reaction: the ArX fork was due to a serious dispute in direction and Lord was strongly critical of Canonical's approach to announcing the Baz project. [cite mailinglist
last=Lord
first=Thomas
title=community spirit
date=2004-10-31
url=http://lists.gnu.org/archive/html/gnu-arch-users/2004-10/msg00771.html
mailinglist=gnu-arch-users
accessdate=2008-06-17
]

In August 2005 Lord announced that he was resigning as the maintainer of GNU arch and recommended that Baz project become the main GNU arch project. [cite mailinglist
last=Lord
first=Thomas
title=GNU Arch maintainership
url=http://lists.gnu.org/archive/html/gnu-arch-users/2005-08/msg00030.html
date=2005-08-15
accessdate=2008-06-17
mailinglist=gnu-arch-users
] This did not eventuate: the Baz fork was abandoned by Canonical in favour of the separate Bazaar project. [cite web
title = Baz1x - Bazaar Version Control
date = 2006-07-24
url = http://bazaar-vcs.org/Baz1x
accessdate = 2008-01-17
] cite web
last = Arbash Meinel
first = John
coauthor = Aaron Bentley, Martin Pool, Mark Shuttleworth
title = HistoryOfBazaar
date = 2006-07-26
url = http://bazaar-vcs.org/HistoryOfBazaar
accessdate = 2008-02-20
] with the 1.5 release of Baz being scrapped in 2006.cite mailing list
last = Collins
first = Robert
title = releasing 1.5
mailinglist = bazaar-old
date = 2006-06-30
url = https://lists.ubuntu.com/archives/bazaar-old/2006-June/000531.html
accessdate = 2007-06-16
] In October, 2005, Andy Tai announced that Lord and the Free Software Foundation had accepted his offer to be the maintainer of GNU arch. [cite mailinglist
last=Tai
first=Andy
url=http://lists.gnu.org/archive/html/gnu-arch-users/2005-10/msg00246.html
date=2005-10-27
title=Re: Good News about GNU Arch!
accessdate=2008-06-17
mailinglist=gnu-arch-users
] Tai subsequently merged many features from Baz back into tla, but in March 2008 indicated that tla was no longer under active development and was no longer competitive with other version control systems.

revc

revc was a prototype revision control project by Thomas Lord that he intended to become GNU arch 2.0, intended to be a radical departure from tla and to draw many ideas from the Git revision control system.cite mailinglist
url=http://ml.osdir.com/version-control.arch.devel/2005-06/msg00034.html
last=Lord
first=Thomas
date=2005-06-20
accessdate=2008-06-17
title=arch 2.0 code base in progress
mailinglist=gnu-arch-dev
] It was announced in June 2005, the first pre-release was in Julycite mailinglist
last=Lord
first=Thomas
title=GNU Arch 2.0 -- first source
url=http://osdir.com/ml/version-control.arch.devel/2005-07/msg00006.html
date=2005-07-08
accessdate=2008-06-17
mailinglist=gnu-arch-dev
] and the last in August, just prior to Lord's resignation as maintainer [cite mailinglist
url=http://lists.gnu.org/archive/html/gnu-arch-users/2005-08/msg00009.html
last=Lord
first=Thomas
title=Arch 2.0 release (revc.0.0x2)
date=2005-08-01
accessdate=2008-06-17
mailinglist=gnu-arch-users
] . revc only had 10 core commands and Lord intended to eliminate restrictive namespaces, complicated filenaming conventions and increase the speed.

As of 2008 the last pre-release, 0.0x2, of revc is still available [cite mailinglist
last = Wandrebeck
first = Laurent
url = http://lists.gnu.org/archive/html/gnu-arch-users/2008-03/msg00000.html
title = revc
mailinglist = gnu-arch-users
date=2008-03-26
accessdate=2008-06-17
] and Lord is still interested in some of the ideas in GNU arch but does not have the resources to resume development of revc [cite mailinglist
last = Lord
first = Thomas
url = http://lists.gnu.org/archive/html/gnu-arch-users/2008-03/msg00005.html
title = Re: revc
date=2008-03-28
accessdate=2008-06-17
mailinglist=gnu-arch-users
] .

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. [cite web
last=Pool
first=Martin
url=http://sourcefrog.net/weblog/software/vc/arch/whats-wrong.html
date=2004-06-21
accessdate=2008-06-18
title= What's wrong with Arch?
] [cite web
last=Pool
first=Martin
url=http://sourcefrog.net/weblog/software/vc/arch/lord-interview.html
date=2004-09-26
accessdate=2008-06-18
title=Tom Lord interview, and related things
quote=Earlier versions were very much bound into projects being run the way Tom wanted them: wierd file conventions, only committing from clean trees, and so on
]

Some also criticize GNU arch for using very unusual file naming conventions ( [http://wiki.gnuarch.org/FunkyFileNames "FunkyFileNames"] ), which can create difficulties for using it in scripts, some shells, and in porting it to non-Unix operating systems. GNU arch has been criticised for having a slow running time as part of a design decision to lessen internal code complexity. [cite web
last=Weimer
first=Florian
title=Some Issues with GNU arch
url=http://www.enyo.de/fw/software/arch/design-issues.html
date=2004-06-09
accessdate=2008-06-18
]

References

See also

* Revision control
* List of revision control software
* Comparison of revision control software

External links

* [http://www.gnu.org/software/gnu-arch/ The GNU Arch homepage]
* [http://wiki.gnuarch.org The arch wiki]
* [http://lwn.net/Articles/125792/ LWN.net article on arch]


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • GNU Arch — Développeur Projet GNU Dernière version …   Wikipédia en Français

  • GNU arch — ist eine Software zur verteilten Versionsverwaltung. Versionsverwaltungssysteme werden u. A. eingesetzt, um die Veränderungen am Quellcode eines Programmes zu speichern und Entwicklern die Möglichkeit zu geben, gleichzeitig daran zu arbeiten …   Deutsch Wikipedia

  • GNU arch — Arch est un système de gestion de versions et de gestion de configuration. C est un logiciel libre diffusé selon les termes de la licence GNU GPL. Sommaire 1 Avantages 1.1 Il travaille sur l ensemble de l arborescence 1.2 …   Wikipédia en Français

  • Arch GNU — GNU Arch Arch est un système de gestion de versions et de gestion de configuration. C est un logiciel libre diffusé selon les termes de la licence GNU GPL. Sommaire 1 Avantages 1.1 Il travaille sur l ensemble de l arborescence 1.2 …   Wikipédia en Français

  • Arch Hurd — Famille GNU Langue multilingue Type de noyau Micronoyau État du projet en développement Plates formes i386, x86 64 Licence …   Wikipédia en Français

  • GNU — Famille Type Unix Langue Multilingue Type de noyau Micronoyau …   Wikipédia en Français

  • Arch — Arch: Arch Linux  один из дистрибутивов GNU/Linux. Arch Hurd проект по портированию Arch Linux на платформу GNU Hurd. GNU Arch  система контроля версий. ARCH  эконометрическая модель для описания волатильности временных рядов. Arch …   Википедия

  • GNU RCS — Développeur Projet GNU Dernière version …   Wikipédia en Français

  • GNU Savannah — is a project of the Free Software Foundation initiated by Loïc Dachary, which serves as a collaborative software development management system for Free Software projects. Savannah currently offers CVS, GNU arch, Subversion, Git, Mercurial,[1]… …   Wikipedia

  • GNU Savannah — es un proyecto de la Free Software Foundation, que consiste en un sistema de gestión de proyectos de software libre, también llamado forja. Savannah ofrece servicios de CVS, GNU arch, Subversion, Git, Mercurial,[1] Bazaar, listas de correo,… …   Wikipedia Español

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”