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.

Features include:

  • 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 or darcsweb and share them.

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.

Return to Revision Control

Popular series
Free and Open Source SoftwareThe largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you to make informed decisions.
ReviewsHundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information.
Alternatives to Proprietary SoftwareReplace proprietary software with open source alternatives: Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle, Atlassian, Corel, Cisco, Intuit, and SAS.
GamesAwesome Free Linux Games Tools showcases a series of tools that making gaming on Linux a more pleasurable experience. This is a new series.
Artificial intelligence iconMachine Learning explores practical applications of machine learning and deep learning from a Linux perspective. We've written reviews of more than 40 self-hosted apps. All are free and open source.
Guide to LinuxNew to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux.
Alternatives to popular CLI tools showcases essential tools that are modern replacements for core Linux utilities.
System ToolsEssential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users.
ProductivityLinux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine.
AudioSurveys popular streaming services from a Linux perspective: Amazon Music Unlimited, Myuzi, Spotify, Deezer, Tidal.
Saving Money with LinuxSaving Money with Linux looks at how you can reduce your energy bills running Linux.
Home ComputersHome computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum.
Now and ThenNow and Then examines how promising open source software fared over the years. It can be a bumpy ride.
Linux at HomeLinux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged.
Linux CandyLinux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery.
DockerGetting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers.
Android AppsBest Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series.
Programming BooksThese best free books accelerate your learning of every programming language. Learn a new language today!
Programming TutorialsThese free tutorials offer the perfect tonic to our free programming books series.
Linux Around The WorldLinux Around The World showcases usergroups that are relevant to Linux enthusiasts. Great ways to meet up with fellow enthusiasts.
Stars and StripesStars and Stripes is an occasional series looking at the impact of Linux in the USA.
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments