Contributors:
- Robert Anderson
- Stig Brautaset - 11 Jan 2003
- Karel Gardas
- Tom Lord
- Robert Collins - 03 Jan 2003
- Panu Kalliokoski - 06 Apr 2004
Why Choose arch?
Here's what some users and contributors are saying:
Distributed Repositories
With arch, there is no "central repository". For example, you can form branches of a public project in a private repository on your own machine. This means, among other things, that people can more easily contribute to your project without need for any special privileges to your repository. Each party can merge the other's changes at will, and arch can take care of merge interdependencies. "With using such feature you'll be able to use your revision control while working on the road/airplane board w/o net connection to your company repository."
"Daily work performance is never mops
- limited by network issues - you can always get local disk access performance by branching."
- "If you are interested in open source, the ability to branch someone else's repository without requiring cooperation with the original repo owner is a revolution." "Laptop users get source control while disconnected from the network." "You have the ability to branch a remote project (and cache it locally)." "Arch works with dumb servers. Install it on your local machine and you can immediately start working with remote repositories."
"Whole-tree" Revision Control
- Arch keeps track of revisions to entire trees -- not just individual files. "Tree rearrangements are fully supported; revision control is renaming-aware." "There is support for versioning symbolic links and permissions." "Arch not only controls contents of files, but it even controls files' metadata and handles file renames gracefully, so you'll not lose files' history while renaming/moving while restructuring your project directory layout."
Atomic Commit / Changeset Orientation
When you make a commit in arch, changes to many files are grouped together in a single changeset. Thus, a revision in arch doesn't represent just an arbitrary change -- but it can represent all the changes needed for feature X or all the changes needed to fix bug Y. When it comes time to merge, this change set orientation helps a lot. "It's nearly unbelievable, but some of todays widely deployed revision control systems don't provide such feature, so it's a need to note it here. Yes, Arch provides atomic commits." "You'll be allowed to use branches and merging between them w/o a lot of pain which produces work with todays revision control systems (CVS as the best example)." "Arch stores revision in a form of patch-sets, so you'll not need to find relation between file-based changes anymore, you'll just review patch-set and see all changes done."
"tla changes --diffs shows all changes since last commit -- I use it a lot (bad memory I guess
)"
Branching is Well Supported
- Arch has many features to make branching work better -- to encourage the use of branches.
"You can view what's missing from a branch with tla missing." "Branching is easy with Arch." "With each clean change on its own branch, the developer is then ready to respond to maintainer feedback and keep the patch up-to-date while waiting for a mainline merge." "Arch has sophisticated merging technology."
"People accustomed to just CVS, or worse -- diff, diff3, and patch -- think that merging is magic. Arch demystifies merging by providing a systematic set of tools that provide lots of options for how to perform a particular merge. Arch is ideal for projects faced with cooperative forks and/or busy patch queues."
Arch is Pleasant to Use
- "Simpler to learn and use than CVS" "Commands arguments are consistent" "Commands are self-documenting (--help)" "Getting started is easy -- it has a nice tutorial for beginners" "Arch has built-in support for a variety of remote protocols, including secure alternatives such as ssh."
Arch aids in tasks that belong to every well-organised project
- "Arch keeps track of the 'ontological status' of your files - whether they belong to the project (source), are important or just temporary junk." "Arch supports writing commit logs as you go with the job." "Arch provides automatic changelog generation from commit logs." "Arch has a relatively clear and well thought-out system for organising your projects."
Arch is lightweight
- "You don't need any local servers to use arch with local and remote repositories. Very cool for low power (ie laptop) or low resource situations".
Arch has a clean and transparent design
- Repositories are just directories containing regular files. No big binary blobs or databases.
- Signatures on patchsets are simply GPG signatures on md5sum (or SHA-1) lists.
- Changes to (text) files are represented as regular unified diffs.
- Changesets are packed up for transport as tarballs.
