Darcs

From Wikipedia, the free encyclopedia

Darcs
darcs logo
Developer: David Roundy
Latest release: 1.0.8 / June 16, 2006
OS: Unix, Linux, BSD, Mac OS X, Windows
Use: revision control
License: GPL
Website: Darcs home
The correct title of this article is darcs. The initial letter is shown capitalized due to technical restrictions.

Darcs is a distributed revision control system by David Roundy that was designed to replace the centralized CVS. Two particular features in its design distinguish it from CVS. Each copy of the source tree acts as a full repository, allowing several different versions to be maintained in different locations. Patches are global to the repository and are subject under certain conditions to reordering, as governed by the project's "theory of patches".

The name is short for David's Advanced Revision Control System, but is usually capitalized like a non-proper noun; i.e., it is given lowercase letters (darcs), except at the beginnings of sentences.

In basic usage, users get a copy of a repository, make any changes, record the changes, pull changes from other repositories, and finally push or send changes to other repositories. To start a new repository, users can init any directory.

Other repositories can be local directories, or accessed by SSH or HTTP protocols. Changes can be submitted by email in situations where the user lacks permission to write to another repository.

Darcs is written in the functional programming language Haskell; among other tools, it uses QuickCheck[1].

Many of its commands are interactive, allowing users to commit changes or pull specific files selectively. This feature is designed to encourage more specificity in patches. As a result of this interactivity, darcs has fewer distinct commands than many comparable revision control systems.

Contents

darcs currently has a number of significant bugs (see e.g. [1]). The most severe of them is "the Conflict bug" - an exponential blowup in time needed to perform conflict resolution during merges, reaching into the hours and days for "large" repositories. A redesign of the repository format and wide-ranging changes in the codebase are planned in order to fix this bug, and work on this is planned to start in Spring 2007 [2].

  1. ^ "One of the problems I had with the initial C++ darcs was that I had no unit testing code. Within two weeks of the first darcs record, I started using QuickCheck to test the patch functions, and the same day I fixed a bug that was discovered by QuickCheck. QuickCheck makes it very easy to define properties that functions must have, which are then tested with randomly generated data." From page 2 of David Roundy 2005.

Wikibooks
Wikibooks has a book on the topic of
Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.