Darcs is a free, open source revision control system along the lines of CVS or arch. It is intended to be an advanced system. Darcs has two particularly distinctive features which differ from other revision control systems: Firstly, each copy of the source is a fully functional branch, and secondly, underlying darcs is a consistent and powerful theory of patches.
With Darcs, every user has access to the full command set, removing boundaries between server and client or committer and non-committers.
Darcs is easy to learn and efficient to use because it asks developers questions in response to simple commands, giving the user choices in their work flow. Choose to record one change in a file, while ignoring another. As a developer updates from upstream, (s)he can review each patch name, even the full “diff” for interesting patches.
Darcs is based on a unique algebra of patches. This smartness lets you respond to changing demands in ways that would otherwise not be possible.
Key Features
- Offline mode. Darcs is distributed. This means your own working directory is a repository in its own right. You can quickly record your work even if you’re on the road with no access to the server or with a bad network connection. When you get home, you do a
darcs pushto transmit it to the public server. - Local preparation. Darcs enables you to modify patches before sending them to a remote repository, or even to throw them away completely and start over.
- Easy branching and merging. Every repository is a branch. There is no branch administration except pushing and pulling between repositories.
- Easy collaboration by e-mail. If you want to add a feature or bugfix to some project, you can make a local clone, apply your changes, then send the patches by email (
darcs send). The project’s maintainers can decide whether to accept or reject the patches. This way, you do not need commit privileges to contribute. - Parallel development. Let’s say you follow the development of an open-source project, and you have some controversial patches that aren’t accepted by the official maintainers. No problem – make your changes and publish your own repository. It’s a fork, of sorts, but it’s still connected to the mainline. Whenever the official project makes changes, you can do a
darcs pullto get them, and resolve any conflicts. This way, your fork is kept up to date. - Cherry-picking. If you’ve ever worked on a team, you will know that somebody often has a change you want, but which can’t be committed to the trunk yet. With Darcs you can grab just the one change by pulling it into your repository.
- Interactivity. Darcs enables you to be precise and say “yes” or “no” to every change that you can include in your patch. Thus you can really create minimal patches, or separate your work in several patches, each one doing a consistent change. Other commands, like
darcs pullanddarcs push, behave the same. - Hosting. You can host your repositories with hub.darcs.net or darcsweb and share them.
Website: darcs.net
Support: User Manual
Developer: David Roundy and many contributors
License: GNU General Public License v2.0
Darcs is written in Haskell. Learn Haskell with our recommended free books and free tutorials.
Related Software
| Revision Control Tools | |
|---|---|
| Git | Used in high profile open source projects, most notably the Linux kernel |
| Jujutsu | Powerful version control system for software projects |
| Mercurial | Fast, lightweight Source Control Management system |
| Subversion | General system that can be used to manage any collection of files |
| Darcs | An advanced revision control system |
| Fossil | Distributed version control system |
| dat | Distributed data community for the next generation Web |
| Sapling | Scalable, user-friendly source control system |
| Pijul | Sound and fast distributed version control system |
| CVS | Concurrent Versions System |
| Breezy | Decentralized revision control system supporting Bazaar and Git formats |
| Monotone | Especially strong in its support of a diverge/merge workflow |
| Game of Trees | Prioritizes ease of use and simplicity over flexibility |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Know a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

