@hackage darcs2.10.0
a distributed, interactive, smart revision control system
Categories
License
LicenseRef-GPL
Maintainer
<darcs-devel@darcs.net>
Links
Versions
Installation
CustomDependencies (41)
- HTTP >=4000.2.3 && <4000.3
- Win32 >=2.2 && <2.4
- array >=0.4 && <0.6
- attoparsec >=0.11 && <0.13
- base >=4.5 && <4.9
- base16-bytestring >=0.1 && <0.2 Show all…
Dependents (6)
@hackage/darcsden, @hackage/darcs-fastconvert, @hackage/DPM, @hackage/acme-everything, @hackage/darcs2dot, @hackage/ipatch
Package Flags
curl
(on by default)
Use libcurl for HTTP support.
pkgconfig
(off by default)
Use pkgconfig to configure libcurl
http
(on by default)
Use the pure Haskell HTTP package for HTTP support.
static
(off by default)
Build static binary
terminfo
(on by default)
Use the terminfo package for enhanced console support.
threaded
(on by default)
Use threading and SMP support.
executable
(on by default)
Build darcs executable
hpc(off by default)
rts(off by default)
optimize
(on by default)
Build with optimizations (-O2)
warn-as-error
(off by default)
Build with warnings-as-errors
use-local-data-map-strict
(off by default)
Support containers < 0.5, by using a local copy of the Data.Map.Strict module from containers 0.5.
libiconv
(off by default)
Explicitly link against the libiconv library.
hashed-storage-diff(off by default)
use-time-1point5(off by default)
Darcs
This is the source tree for darcs, a distributed version control system written in Haskell.
For more information, visit the darcs website: http://www.darcs.net.
Compilation and Installation
Building Darcs is best done with the Haskell Platform: http://www.haskell.org/platform/. Any release of darcs should build with the most recent version of the Platform at the time of the release. This will also generally apply to unstable versions.
If you are not using the Platform, then you need GHC and Cabal. The versions required can be found in the darcs.cabal file under 'build-tools' and 'Cabal-Version' respectively.
The cabal-install package is also recommended.
If you have the Platform or otherwise have the "cabal-install" package
on your system (that is, there is a "cabal" executable in your path),
you can use the following command to create an executable in
~/.cabal/bin/darcs (this will also automatically fetch and build
dependencies from the Hackage server).
$ cabal update
$ 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.
Flags to alter compilation
There some flags that can be used to alter compilation. They are specified like this:
$ cabal install -fflag_name
Here are some may be of interest. Search for "flags" in the darcs.cabal file
file for the complete list.
-
-f-curl: By default the cabal-based build requires the cURL library and development headers. If you can't provide cURL, use this flag to disable the use of it. The pure Haskell 'HTTP' package will be used instead. -
-frts: When trying to use the patch-index feature, you can may get an error like this: "Stack space overflow: current size 8388608 bytes." darcs can be recompiled with this flag to avoid the issue. Some more detail is here: http://darcs.net/Using/PatchIndex -
-fstatic: Builds a static binary, which bundles most dependencies. The resulting binary is larger, but is able to be installed on similar machines without also installing all the dependencies separately.
Hacking
For more information about darcs hacking and best practices please check the darcs website http://wiki.darcs.net
Of particular interest are the following pages:
Testing
For more information about the test suite, including how to run specific tests http://darcs.net/Development/RegressionTests.
Happy hacking!