Distributed: Every user has access to the full
command set, removing boundaries between server and
client or committer and non-committers.

Interactive: Darcs is easy to learn and efficient to
use because it asks you questions in response to
simple commands, giving you choices in your work
flow. You can choose to record one change in a file,
while ignoring another. As you update from upstream,
you can review each patch name, even the full "diff"
for interesting patches.

Smart: Originally developed by physicist David
Roundy, darcs is based on a unique algebra of
patches.

This smartness lets you respond to changing demands
in ways that would otherwise not be possible. Learn
more about spontaneous branches with darcs.

Maintainer's Corner

Readme for darcs-2.2.1

Darcs
=====
This is the source tree for darcs, a distributed version control system
written in Haskell.
For more information, visit the darcs web site:
http://www.darcs.net
Compilation and Installation
============================
Darcs currently supports two build systems: a traditional autotools-
based system, and an experimental cabal-based system. Currently
AUTOTOOLS IS RECOMMENDED; in later releases it will be deprecated and
eventually removed (in favour of cabal).
If a "configure" file is present, autotools is supported. If a
"Setup.lhs" file is present, cabal is supported. Currently there is a
separate source tarball for each build system; either can be used in
unstable checkouts.
Using Autotools
---------------
If you have the normal, autotools-based tarball, this sequence should work
for you (if you are in doubt, this is likely the case):
$ ./configure
$ make
# make install
You first need to run `autoconf` if you obtained the source tree from the
darcs repository (but this is not needed for release tarballs).
For more information, please see the manual:
* http://www.darcs.net/manual
* doc/manual/darcs.ps
Using Cabal
-----------
This method requires the cabal package, version 1.6 or higher. The
cabal-install package is also recommended.
If you have the "cabal-install" package on your system (that is, there
is a "cabal" executable in your path), you can use the following
commands to create an executable in ~/.cabal/bin/darcs.
$ cabal configure
$ cabal build
$ cabal install
Otherwise, if you have the "cabal" package but not the "cabal-install"
package, run the following:
$ runghc Setup configure
$ runghc Setup build
$ sudo runghc Setup install
You may also omit the last step and copy the darcs executable (found in
dist/build/darcs/darcs) to a location of your choosing.
More detailed instructions can be found at
<http://www.haskell.org/haskellwiki/Cabal/How_to_install_a_Cabal_package>
including instructions on obtaining a copy of cabal-install.
Please also note that the cabal-based build by default requires the cURL
library (and development headers). If, for some reason, you cannot provide
cURL, please pass "-f-curl" to the configure step above.
Hacking
=======
For more information about darcs hacking and best practices please check
the darcs wiki at http://darcs.net/DarcsWiki
Of particular interest are the following documents:
* http://wiki.darcs.net/index.html/DeveloperFAQ
* http://wiki.darcs.net/index.html/DeveloperTips
Testing
=======
For more information about the test suite, including how to run specific
tests please read tests/README.test_maintainers.txt.
Happy hacking!