Darcs is a distributed version-control system whose own site describes it as “a free and open source, cross-platform version control system” that takes “a very different approach: focus on changes rather than snapshots.” Where most systems track the state of a project at points in time, darcs treats the patches themselves, the individual changes, as the primary objects, requiring no central server.
That difference rests on a body of ideas the project calls patch theory. The darcs.net Theory pages document this as the system’s foundation, evolving across versions through mechanisms such as “mergers” in early darcs and “Conflictors” in darcs 2, and note that formalizing patch theory “remains an active area of research.” The approach is a genuine patch algebra: a set of rules for reasoning about how changes commute and combine, rather than a record of file snapshots.
In practice this gives darcs unusually fine-grained control. The project’s feature page explains that a user can “be precise and say ‘yes’ or ‘no’ to every change,” can reshape patches locally before sharing them, and can treat “any (set of) patch(es)” as a branch without an explicit branching command. Contributions can be sent and pulled selectively, supporting cherry-picking of individual changes.
Darcs was created by David Roundy and first released publicly in 2003. Though it never reached mainstream adoption on the scale of git or Mercurial, its patch-centric model has been influential, shaping later thinking about distributed version control and directly inspiring successor systems that continue to explore patch theory.