HOME

TheInfoList



OR:

GNU arch
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
is a
distributed revision control In software development, distributed version control (also known as distributed revision control) is a form of version control in which the complete codebase, including its full history, is mirrored on every developer's computer. Compared to centra ...
system that is part of the
GNU Project The GNU Project () is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and computing devices by collaborati ...
and licensed under the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the Four Freedoms (Free software), four freedoms to run, study, share, and modify the software. The license was th ...
. 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. 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.


Features

Being a distributed, decentralized versioning system, each revision stored using arch is uniquely globally identifiable; such identifier can be used in a
distributed Distribution may refer to: Mathematics *Distribution (mathematics), generalized functions used to formulate solutions of partial differential equations *Probability distribution, the probability of a particular value or value range of a varia ...
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 The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
,
FTP The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and data ...
, 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 The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution. SSH applications are based on a ...
) or write access (FTP, SFTP,
WebDAV WebDAV (Web Distributed Authoring and Versioning) is a set of extensions to the Hypertext Transfer Protocol (HTTP), which allows user agents to collaboratively author contents ''directly'' in an HTTP web server by providing facilities for concu ...
) to a server, allowing authorized users to commit to a central server. More often, GNU arch-managed projects have a lead
benevolent dictator A benevolent dictatorship is a government in which an authoritarian leader exercises absolute political power over the state, but is perceived to do so with regard for benefit of the population as a whole, standing in contrast to the decidedly ma ...
that merges changes from contributors. GNU arch has several other features: ;
Atomic commit In the field of computer science, an atomic commit is an operation that applies a set of distinct changes as a single operation. If the changes are applied, then the atomic commit is said to have succeeded. If there is a failure before the atomic ...
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 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 A digital signature is a mathematical scheme for verifying the authenticity of digital messages or documents. A valid digital signature, where the prerequisites are satisfied, gives a recipient very high confidence that the message was created b ...
s : Every changeset is stored with a hash to prevent accidental corruption. Using an external file signing program (such as
GnuPG GNU Privacy Guard (GnuPG or GPG) is a free-software replacement for Symantec's PGP cryptographic software suite. The software is compliant with RFC 4880, the IETF standards-track specification of OpenPGP. Modern versions of PGP are interoperabl ...
or another
PGP PGP or Pgp may refer to: Science and technology * P-glycoprotein, a type of protein * Pelvic girdle pain, a pregnancy discomfort * Personal Genome Project, to sequence genomes and medical records * Pretty Good Privacy, a computer program for the ...
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 link In computing, a symbolic link (also symlink or soft link) is a file whose purpose is to point to a file or directory (called the "target") by specifying a path thereto. Symbolic links are supported by POSIX and by most Unix-like operating system ...
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
maintainer Maintenance may refer to: Biological science * Maintenance of an organism * Maintenance respiration Non-technical maintenance * Alimony, also called ''maintenance'' in British English * Champerty and maintenance, two related legal doctr ...
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 A shell script is a computer program designed to be run by a Unix shell, a command-line interpreter. The various dialects of shell scripts are considered to be scripting languages. Typical operations performed by shell scripts include file manip ...
s to provide an alternative to CVS. In 2003, ''arch'' became part of the
GNU GNU () is an extensive collection of free software (383 packages as of January 2022), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operat ...
project. The GNU arch project
fork In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods ei ...
ed several times, resulting in both
Canonical Ltd. Canonical Ltd. is a UK-based privately held computer software company founded and funded by South African entrepreneur Mark Shuttleworth to market commercial support and related services for Ubuntu and related projects. Canonical employs staff ...
's now abandoned Baz fork and Walter Landry's
ArX Arx, ARX, or ArX may refer to: *ARX (Algorithmic Research Ltd.), a digital security company *ARX (gene), Aristaless related homeobox *ARX (operating system), an operating system *ArX (revision control), revision control software *Arx (Roman), a Ro ...
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. 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. However, this did not happen: the Baz fork was abandoned by Canonical in favour of the separate
Bazaar A bazaar () or souk (; also transliterated as souq) is a marketplace consisting of multiple small Market stall, stalls or shops, especially in the Middle East, the Balkans, North Africa and India. However, temporary open markets elsewhere, suc ...
project, with the 1.5 release of Baz being scrapped in 2006. In October, 2005, Andy Tai announced that Lord and the
Free Software Foundation The Free Software Foundation (FSF) is a 501(c)#501(c)(3), 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985, to support the free software movement, with the organization's preference for software being distributed ...
had accepted his offer to be the maintainer of GNU arch. 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, designed to be a radical departure from tla and to draw many ideas from the
Git Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data inte ...
revision control system. It was announced in June 2005, the first pre-release was in July and the last in August, just prior to Lord's resignation as maintainer. revc only had 10 core commands and Lord intended to eliminate restrictive namespaces, complicated file naming conventions and increase the speed. As of 2008 the last pre-release, 0.0x2, of revc is still available and Lord is still interested in some of the ideas in GNU arch but does not have the resources to resume development of revc.


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. Some also criticize GNU arch for using very unusual file naming conventions (), which can create difficulties for using it in scripts, some
shell Shell may refer to: Architecture and design * Shell (structure), a thin structure ** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses ** Thin-shell structure Science Biology * Seashell, a hard ou ...
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.


See also

*
Revision control In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
*
List of revision control software This is a list of notable software for version control. Local data model In the local-only approach, all developers must use the same file system. Open source * Revision Control System (RCS) â€“ stores the latest version and backward del ...
*
Comparison of revision control software In software development, version control is a class of systems responsible for managing changes to computer programs or other collections of information such that revisions have a logical and consistent organization. The following tables includ ...


References


External links

*
LWN.net article on arch
{{DEFAULTSORT:Arch Free version control software Free software programmed in C GNU Project software Distributed version control systems Discontinued version control systems 2001 software