Darcs

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Darcs
Entwickler David Roundy und andere
Aktuelle Version 2.8.5
(25. August 2014)
Betriebssystem Unix, Linux, BSD, Mac OS X, Windows
Programmier­sprache Haskell
Kategorie verteilte Versionsverwaltung
Lizenz GPLv2 (Freie Software)
Deutschsprachig nein
darcs.net

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 zum populären 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 denselben Stand gebracht werden. Unter bestimmten Umständen kann die Reihenfolge der „Patches“ geändert werden bzw. Änderungen durch einzelne Patches zurückgenommen werden.

Typischerweise erstellt man eine lokale Kopie eines Archivs mit dem Befehl get, führt die Änderungen durch und erstellt mit dem Befehl record einen „Patch“, den man mit push oder send an andere Archive weitergibt, dies kann auch über E-Mail erfolgen. Mit pull kann man Patches von weiteren Archiven holen und so das lokale Archiv aktualisieren.

Darcs wurde in Haskell geschrieben und greift für die Datenübermittlung auf bewährte Technologien wie SSH, HTTP und E-Mail zurück. Für die Datenübermittlung via HTTP bietet sich das in Python geschriebene darcsweb an, welches sich als CGI an die gängigen Webserver anbinden lässt.

Im Unterschied zu allen anderen Versionsverwaltungen verwaltet Darcs nicht einen 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. Das geht bei Darcs im Prinzip überall, bei herkömmlichen Versionsverwaltungen kann immer nur der letzte Patch wieder entfernt werden.

Weblinks[Bearbeiten]