@hackage darcs2.10.0

a distributed, interactive, smart revision control system

  • Installation

    Custom

  • Dependencies (41)

  • 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!