Darcs
# Darcs

Darcs est un système de gestion de versions libre, qui sert à garder trace des versions successives d'un ensemble de fichiers (par exemple des sources d'un programme).

Darcs appartient à la catégorie des systèmes de gestion de versions décentralisés. Chaque copie de travail est un dépôt complet, avec tout l'historique, dans lequel on peut enregistrer et grâce auquel on peut distribuer ses modifications.

Darcs gère des correctifs (patches), chaque correctif étant un ensemble d'opérations sur un ou plusieurs fichiers. Le correctif possède un nom et une description donnés par son auteur. Contrairement à d'autres systèmes tels que Subversion, Git ou Mercurial, Darcs n'impose pas un ordre chronologique dans les correctifs, mais une relation de dépendance. Par conséquent, des correctifs indépendants peuvent être échangés librement : Darcs est le seul logiciel en son genre, avec Pijul, à permettre certaines opérations, comme l'échange de correctifs entre différents dépôts sans avoir à créer de correctif supplémentaire officialisant l'échange, ou la possibilité de n'échanger qu'un sous-ensemble de correctifs entre deux dépôts. On peut également défaire un correctif localement, même si des correctifs indépendants plus récents ont été enregistrés entre-temps.

Cette flexibilité est permise car Darcs repose sur une théorie des patches qui décrit les opérations possibles entre correctifs, notamment la commutation.

Darcs est écrit en langage Haskell. Son auteur original, David Roundy, a commencé son développement en 2002.

