Darcs
# Darcs

Darcs (rekursives Akronym für Darcs advanced revision control system) ist ein System zur verteilten Versionsverwaltung von Softwareprojekten und wurde von David Roundy geschrieben. Im Gegensatz zu CVS oder SVN kennt Darcs kein zentrales Quelltextarchiv. Jede Kopie des Ordners mit dem Darcs Projekt stellt ein eigenständiges „Repository“ dar. Kern von Darcs sind die „Patches“ (engl. für Flicken, Ausbesserung; vgl. Patchwork), mit denen die Unterschiede zwischen den einzelnen Versionen repräsentiert und die verschiedenen Repositories auf entsprechenden Stand gebracht werden. Unter bestimmten Umständen kann die Reihenfolge der „Patches“ geändert werden bzw. Änderungen durch einzelne Patches zurückgenommen werden.

Darcs wurde in Haskell geschrieben und greift für die Datenübermittlung auf Technologien wie SSH, HTTP und E-Mail zurück.

Im Unterschied zu allen anderen Versionsverwaltungen arbeitet Darcs nicht mit einem Baum von Revisionen, sondern Patches und Abhängigkeiten zwischen diesen. Aus der gleichen Menge Patches lassen sich so viel mehr denkbare Revisionen generieren, etwa indem Patches weggelassen werden. Dies geht bei Darcs im Prinzip überall, bei anderen Versionsverwaltungen kann häufig nur der letzte Patch wieder entfernt werden.

