Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
GNU arch
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Distributed revision control system}} {{Infobox software | name = GNU arch | logo = [[File:GNU arch logo.png|frameless|upright]] | screenshot = | caption = GNU arch logo | author = Thomas Lord | developer = Andy Tai | discontinued = yes | latest_release_version = 1.3.5 | latest_release_date = {{Start date and age|2006|07|20}} | latest_preview_version = | latest_preview_date = | programming language = [[C (programming language)|C]] | operating_system = [[Linux]], [[Microsoft Windows|Windows]], [[Mac OS X]] | platform = | genre = [[Revision control]] | license = [[GNU General Public License|GPL]] | website = {{URL|https://www.gnu.org/software/gnu-arch/}} }} {{About|the GNU distributed revision control system|the GNU/Linux distribution with similar name|Arch Linux}} '''GNU arch''' [[software]] 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 2009, GNU arch's official status is deprecation, and only security fixes are applied.<ref name="arch-status-2008">{{Cite mailing list |last = Tai |first = Andy |title = Re: revc |url = http://lists.gnu.org/archive/html/gnu-arch-users/2008-03/msg00003.html |mailing-list = gnu-arch-users |date = 2008-03-28 |access-date = 2008-06-17}}</ref> [[GNU bzr|Bazaar (or 'bzr')]] has since also been made an official GNU project and can thus be considered the replacement for GNU arch. It is not a fork of arch.<ref>{{cite web|title=History of Bazaar|url=http://wiki.bazaar.canonical.com/HistoryOfBazaar|access-date=20 May 2014|archive-date=26 February 2009|archive-url=https://web.archive.org/web/20090226181637/http://wiki.bazaar.canonical.com/HistoryOfBazaar|url-status=dead}}</ref> == Features == Being a distributed, decentralized versioning system, each revision stored using arch is uniquely globally identifiable; such identifier can be used in a [[distributed system|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]], [[File Transfer Protocol|FTP]], or [[SSH file transfer protocol|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 ([[Secure Shell|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 commit]]s : 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 [[Concurrent Versions System|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 signature]]s : Every changeset is stored with a [[Cryptographic hash function|hash]] to prevent accidental corruption. Using an external file signing program (such as [[GnuPG]] or another [[Pretty Good Privacy|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 [[File system permissions|permissions]] of all files are tracked. [[Symbolic link]]s 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 [[Software maintainer|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 script]]s to provide an alternative to CVS.<ref>{{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 |access-date=2008-06-18}}</ref> In 2003, ''arch'' became part of the [[GNU]] project.<ref>{{Cite mailing list |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 |access-date=2008-06-18 |mailing-list=arch-users }}{{dead link|date=January 2017 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> The GNU arch project [[fork (software)|fork]]ed several times, resulting in both [[Canonical Ltd.]]'s now abandoned [[Bazaar (software)#Baz: an earlier Canonical Ltd version control system|Baz]] 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.<ref>{{Cite mailing list |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 |mailing-list=gnu-arch-users |access-date=2008-06-17}}</ref> 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.<ref>{{Cite mailing list |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 |access-date=2008-06-17 |mailing-list=gnu-arch-users}}</ref> However, this did not happen: the Baz fork was abandoned by Canonical in favour of the separate [[Bazaar (software)|Bazaar]] project,<ref>{{cite web | title = Baz1x - Bazaar Version Control | date = 2006-07-24 | url = http://bazaar-vcs.org/Baz1x | access-date = 2008-01-17 | archive-date = 2008-01-07 | archive-url = https://web.archive.org/web/20080107203210/http://bazaar-vcs.org/Baz1x | url-status = dead }}</ref><ref name="historywiki">{{cite web | last = Arbash Meinel | first = John | author2 = Aaron Bentley | author3 = Martin Pool | author4 = Mark Shuttleworth | title = HistoryOfBazaar | date = 2006-07-26 | url = http://bazaar-vcs.org/HistoryOfBazaar | access-date = 2008-02-20 | archive-date = 2009-02-26 | archive-url = https://web.archive.org/web/20090226181637/http://bazaar-vcs.org/HistoryOfBazaar | url-status = dead }}</ref> with the 1.5 release of Baz being scrapped in 2006.<ref name="end-of-baz">{{cite mailing list |last=Collins |first=Robert |title=releasing 1.5 |mailing-list=bazaar-old |date=2006-06-30 |url=https://lists.ubuntu.com/archives/bazaar-old/2006-June/000531.html |access-date=2007-06-16 |url-status=dead |archive-url=https://web.archive.org/web/20110512173621/https://lists.ubuntu.com/archives/bazaar-old/2006-June/000531.html |archive-date=2011-05-12 }}</ref> In October, 2005, Andy Tai announced that Lord and the [[Free Software Foundation]] had accepted his offer to be the maintainer of GNU arch.<ref>{{Cite mailing list |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! |access-date=2008-06-17 |mailing-list=gnu-arch-users}}</ref> Tai subsequently merged many features from Baz back into tla,<ref name="end-of-baz"/> but in March 2008 indicated that tla was no longer under active development and was no longer competitive with other version control systems.<ref name="arch-status-2008"/> === 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 [[Git (software)|Git]] revision control system.<ref name="revc-announce">{{Cite mailing list |url=http://ml.osdir.com/version-control.arch.devel/2005-06/msg00034.html |last=Lord |first=Thomas |date=2005-06-20 |access-date=2008-06-17 |title=arch 2.0 code base in progress |mailing-list=gnu-arch-dev }}{{dead link|date=January 2017 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> It was announced in June 2005,<ref name="revc-announce"/> the first pre-release was in July<ref name="revc-release">{{Cite mailing list |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 |access-date = 2008-06-17 |mailing-list = gnu-arch-dev |archive-url = https://web.archive.org/web/20110517201422/http://osdir.com/ml/version-control.arch.devel/2005-07/msg00006.html |archive-date = 2011-05-17 |url-status = dead }}</ref> and the last in August, just prior to Lord's resignation as maintainer.<ref>{{Cite mailing list |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 |access-date=2008-06-17 |mailing-list=gnu-arch-users}}</ref> revc only had 10 core commands and Lord intended to eliminate restrictive namespaces, complicated file naming conventions and increase the speed.<ref name="revc-release"/> As of 2008 the last pre-release, 0.0x2, of revc is still available<ref>{{Cite mailing list |last = Wandrebeck |first = Laurent |url = http://lists.gnu.org/archive/html/gnu-arch-users/2008-03/msg00000.html |title = revc |mailing-list = gnu-arch-users |date=2008-03-26 |access-date=2008-06-17}}</ref> and Lord was still interested in some of the ideas in GNU arch but did not have the resources to resume development of revc.<ref>{{Cite mailing list |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 |access-date=2008-06-17 |mailing-list=gnu-arch-users}}</ref> Thomas Lord died in June 2022.<ref>{{Citation |url = https://berkeleydailyplanet.com/issue/2022-06-26/article/49837 |date=2022-06-26 |title = Thomas Lord 1966-2022}}</ref> == Criticism == Perhaps the most common criticism of GNU arch is that it is difficult to learn, even for users who have experience with other [[Version control]] 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.<ref>{{cite web |last=Pool |first=Martin |url=http://sourcefrog.net/weblog/software/vc/arch/whats-wrong.html |archive-url=https://archive.today/20120714202439/http://sourcefrog.net/weblog/software/vc/arch/whats-wrong.html |url-status=dead |archive-date=2012-07-14 |date=2004-06-21 |access-date=2008-06-18 |title=What's wrong with Arch? }}</ref><ref>{{cite web |last=Pool |first=Martin |url=http://sourcefrog.net/weblog/software/vc/arch/lord-interview.html |archive-url=https://archive.today/20120713233855/http://sourcefrog.net/weblog/software/vc/arch/lord-interview.html |url-status=dead |archive-date=2012-07-13 |date=2004-09-26 |access-date=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 [sic] file conventions, only committing from clean trees, and so on }}</ref> Some also criticize GNU arch for using very unusual file naming conventions ({{webarchive |url=https://web.archive.org/web/20070808210711/http://www.gnuarch.org/gnuarchwiki/FunkyFileNames |date=August 8, 2007 |title="FunkyFileNames" }}), which can create difficulties for using it in scripts, some [[Operating system shell|shell]]s, 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.<ref>{{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 |access-date=2008-06-18}}</ref> == See also == {{Portal|Free and open-source software}} * [[Version control]] * [[List of version-control software]] * [[Comparison of version-control software]] ==References== {{Reflist|2}} ==External links== *{{Official website}} {{Version control software}} {{GNU}} [[Category:Free version control software]] [[Category:Free software programmed in C]] [[Category:GNU Project software]] [[Category:Distributed version control systems]] [[Category:Discontinued version control systems]] [[Category:2001 software]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:Citation
(
edit
)
Template:Cite mailing list
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Dead link
(
edit
)
Template:GNU
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)
Template:Version control software
(
edit
)
Template:Webarchive
(
edit
)