Revision Control

Darcs – version control system

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 push to 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 pull to 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 pull and darcs 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
GitUsed in high profile open source projects, most notably the Linux kernel
JujutsuPowerful version control system for software projects
MercurialFast, lightweight Source Control Management system
SubversionGeneral system that can be used to manage any collection of files
DarcsAn advanced revision control system
FossilDistributed version control system
datDistributed data community for the next generation Web
SaplingScalable, user-friendly source control system
PijulSound and fast distributed version control system
CVSConcurrent Versions System
BreezyDecentralized revision control system supporting Bazaar and Git formats
MonotoneEspecially strong in its support of a diverge/merge workflow
Game of TreesPrioritizes ease of use and simplicity over flexibility

Read our verdict in the software roundup.


Best Free and Open Source Software 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.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments