darcs: a distributed, interactive, smart revision control system

[ development, gpl, library ] [ Propose Tags ]

Darcs is a free, open source revision control system. It is:

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


[Skip to Readme]

Modules

[Last Documentation]

  • Darcs
    • Darcs.Patch
      • Darcs.Patch.Annotate
      • Darcs.Patch.Apply
      • Darcs.Patch.ApplyMonad
      • Darcs.Patch.ApplyPatches
      • Darcs.Patch.Bracketed
        • Darcs.Patch.Bracketed.Instances
      • Darcs.Patch.Bundle
      • Darcs.Patch.Choices
      • Darcs.Patch.Commute
      • Darcs.Patch.CommuteFn
      • Darcs.Patch.Conflict
      • Darcs.Patch.ConflictMarking
      • Darcs.Patch.Debug
      • Darcs.Patch.Depends
      • Darcs.Patch.Dummy
      • Darcs.Patch.Effect
      • Darcs.Patch.FileHunk
      • Darcs.Patch.Format
      • Index
        • Darcs.Patch.Index.Monad
        • Darcs.Patch.Index.Types
      • Darcs.Patch.Info
      • Darcs.Patch.Inspect
      • Darcs.Patch.Invert
      • Darcs.Patch.Match
      • Darcs.Patch.Matchable
      • Darcs.Patch.MaybeInternal
      • Darcs.Patch.Merge
      • Darcs.Patch.MonadProgress
      • Darcs.Patch.Named
      • Darcs.Patch.OldDate
      • Darcs.Patch.PatchInfoAnd
      • Darcs.Patch.Patchy
        • Darcs.Patch.Patchy.Instances
      • Darcs.Patch.Permutations
      • Darcs.Patch.Prim
        • Darcs.Patch.Prim.Class
        • Darcs.Patch.Prim.V1
          • Darcs.Patch.Prim.V1.Apply
          • Darcs.Patch.Prim.V1.Coalesce
          • Darcs.Patch.Prim.V1.Commute
          • Darcs.Patch.Prim.V1.Core
          • Darcs.Patch.Prim.V1.Details
          • Darcs.Patch.Prim.V1.Read
          • Darcs.Patch.Prim.V1.Show
        • Darcs.Patch.Prim.V3
          • Darcs.Patch.Prim.V3.Apply
          • Darcs.Patch.Prim.V3.Coalesce
          • Darcs.Patch.Prim.V3.Commute
          • Darcs.Patch.Prim.V3.Core
          • Darcs.Patch.Prim.V3.Details
          • Darcs.Patch.Prim.V3.ObjectMap
          • Darcs.Patch.Prim.V3.Read
          • Darcs.Patch.Prim.V3.Show
      • Darcs.Patch.Progress
      • Darcs.Patch.Read
      • Darcs.Patch.ReadMonads
      • Darcs.Patch.Rebase
        • Darcs.Patch.Rebase.Fixup
        • Darcs.Patch.Rebase.Name
        • Darcs.Patch.Rebase.NameHack
        • Darcs.Patch.Rebase.Recontext
        • Darcs.Patch.Rebase.Viewing
      • Darcs.Patch.RegChars
      • Darcs.Patch.Repair
      • Darcs.Patch.RepoPatch
      • Darcs.Patch.Set
      • Darcs.Patch.Show
      • Darcs.Patch.Split
      • Darcs.Patch.Summary
      • Darcs.Patch.SummaryData
      • Darcs.Patch.TokenReplace
      • Darcs.Patch.TouchesFiles
      • Darcs.Patch.Type
      • Darcs.Patch.V1
        • Darcs.Patch.V1.Apply
        • Darcs.Patch.V1.Commute
        • Darcs.Patch.V1.Core
        • Darcs.Patch.V1.Read
        • Darcs.Patch.V1.Show
        • Darcs.Patch.V1.Viewing
      • Darcs.Patch.V2
        • Darcs.Patch.V2.Non
        • Darcs.Patch.V2.Real
      • Darcs.Patch.Viewing
      • Witnesses
        • Darcs.Patch.Witnesses.Eq
        • Darcs.Patch.Witnesses.Ordered
        • Darcs.Patch.Witnesses.Sealed
        • Darcs.Patch.Witnesses.Show
        • Darcs.Patch.Witnesses.Unsafe
        • Darcs.Patch.Witnesses.WZipper
    • Darcs.Repository
      • Darcs.Repository.ApplyPatches
      • Darcs.Repository.Cache
      • Darcs.Repository.Compat
      • Darcs.Repository.Diff
      • Darcs.Repository.External
      • Darcs.Repository.Flags
      • Darcs.Repository.Format
      • Darcs.Repository.HashedIO
      • Darcs.Repository.HashedRepo
      • Darcs.Repository.Internal
      • Darcs.Repository.InternalTypes
      • Darcs.Repository.Job
      • Darcs.Repository.Lock
      • Darcs.Repository.LowLevel
      • Darcs.Repository.Match
      • Darcs.Repository.Merge
      • Darcs.Repository.Motd
      • Darcs.Repository.Old
      • Darcs.Repository.PatchIndex
      • Darcs.Repository.Prefs
      • Darcs.Repository.Read
      • Darcs.Repository.Rebase
      • Darcs.Repository.Repair
      • Darcs.Repository.Resolution
      • Darcs.Repository.Ssh
      • Darcs.Repository.State
      • Darcs.Repository.Test
      • Darcs.Repository.Util
    • UI
      • Darcs.UI.ApplyPatches
      • Darcs.UI.Commands
        • Darcs.UI.Commands.Add
        • Darcs.UI.Commands.Amend
        • Darcs.UI.Commands.Annotate
        • Darcs.UI.Commands.Apply
        • Darcs.UI.Commands.Clone
        • Darcs.UI.Commands.Convert
        • Darcs.UI.Commands.Diff
        • Darcs.UI.Commands.Dist
        • Darcs.UI.Commands.GZCRCs
        • Darcs.UI.Commands.Help
        • Darcs.UI.Commands.Init
        • Darcs.UI.Commands.Log
        • Darcs.UI.Commands.MarkConflicts
        • Darcs.UI.Commands.Move
        • Darcs.UI.Commands.Optimize
        • Darcs.UI.Commands.Pull
        • Darcs.UI.Commands.Push
        • Darcs.UI.Commands.Rebase
        • Darcs.UI.Commands.Record
        • Darcs.UI.Commands.Remove
        • Darcs.UI.Commands.Repair
        • Darcs.UI.Commands.Replace
        • Darcs.UI.Commands.Revert
        • Darcs.UI.Commands.Rollback
        • Darcs.UI.Commands.Send
        • Darcs.UI.Commands.SetPref
        • Darcs.UI.Commands.Show
        • Darcs.UI.Commands.ShowAuthors
        • Darcs.UI.Commands.ShowBug
        • Darcs.UI.Commands.ShowContents
        • Darcs.UI.Commands.ShowFiles
        • Darcs.UI.Commands.ShowIndex
        • Darcs.UI.Commands.ShowPatchIndex
        • Darcs.UI.Commands.ShowRepo
        • Darcs.UI.Commands.ShowTags
        • Darcs.UI.Commands.Tag
        • Darcs.UI.Commands.Test
        • Darcs.UI.Commands.TransferMode
        • Darcs.UI.Commands.Unrecord
        • Darcs.UI.Commands.Unrevert
        • Darcs.UI.Commands.Util
          • Darcs.UI.Commands.Util.Tree
        • Darcs.UI.Commands.WhatsNew
      • Darcs.UI.CommandsAux
      • Darcs.UI.Defaults
      • Darcs.UI.Email
      • Darcs.UI.External
      • Darcs.UI.Flags
      • Message
        • Darcs.UI.Message.Send
      • Darcs.UI.Options
        • Darcs.UI.Options.All
        • Darcs.UI.Options.Core
        • Darcs.UI.Options.Flags
        • Darcs.UI.Options.Iso
        • Darcs.UI.Options.Markdown
        • Darcs.UI.Options.Matching
        • Darcs.UI.Options.Util
      • Darcs.UI.PrintPatch
      • Darcs.UI.RemoteApply
      • Darcs.UI.RunCommand
      • Darcs.UI.SelectChanges
      • Darcs.UI.TheCommands
      • Darcs.UI.Usage
    • Util
      • Darcs.Util.AtExit
      • Darcs.Util.Bug
      • Darcs.Util.ByteString
      • Darcs.Util.CommandLine
      • Crypt
        • Darcs.Util.Crypt.SHA1
        • Darcs.Util.Crypt.SHA256
      • Darcs.Util.DateMatcher
      • Darcs.Util.DateTime
      • Darcs.Util.Diff
        • Darcs.Util.Diff.Myers
        • Darcs.Util.Diff.Patience
      • Darcs.Util.Download
        • Darcs.Util.Download.HTTP
        • Darcs.Util.Download.Request
      • Darcs.Util.English
      • Darcs.Util.Environment
      • Darcs.Util.Exception
      • Darcs.Util.Exec
      • Darcs.Util.File
      • Darcs.Util.Global
      • Darcs.Util.IsoDate
      • Darcs.Util.Path
      • Darcs.Util.Printer
        • Darcs.Util.Printer.Color
      • Darcs.Util.Progress
      • Darcs.Util.Prompt
      • Darcs.Util.Ratified
      • Darcs.Util.Show
      • Darcs.Util.SignalHandler
      • Darcs.Util.Ssh
      • Darcs.Util.Text
      • Darcs.Util.URL
      • Darcs.Util.Workaround
  • Storage
    • Storage.Hashed
      • Storage.Hashed.AnchoredPath
      • Storage.Hashed.Darcs
      • Storage.Hashed.Diff
      • Storage.Hashed.Hash
      • Storage.Hashed.Index
      • Storage.Hashed.Monad
      • Storage.Hashed.Packed
      • Storage.Hashed.Plain
      • Storage.Hashed.Tree

Flags

Manual Flags

NameDescriptionDefault
warn-as-error

Build with warnings-as-errors

Disabled
Automatic Flags
NameDescriptionDefault
curl

Use libcurl for HTTP support.

Enabled
pkgconfig

Use pkgconfig to configure libcurl

Disabled
http

Use the pure Haskell HTTP package for HTTP support.

Enabled
static

Build static binary

Disabled
terminfo

Use the terminfo package for enhanced console support.

Enabled
threaded

Use threading and SMP support.

Enabled
executable

Build darcs executable

Enabled
hpcDisabled
rtsDisabled
optimize

Build with optimizations (-O2)

Enabled
use-local-data-map-strict

Support containers < 0.5, by using a local copy of the Data.Map.Strict module from containers 0.5.

Disabled
libiconv

Explicitly link against the libiconv library.

Disabled
hashed-storage-diffDisabled
use-time-1point5Enabled
network-uri

Get Network.URI from the network-uri package

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 2.1.2.1, 2.1.2.2, 2.1.98.2, 2.1.99.0, 2.2.0, 2.2.1, 2.3.0, 2.3.1, 2.4, 2.4.1, 2.4.3, 2.4.4, 2.5, 2.5.1, 2.5.2, 2.8.0, 2.8.1, 2.8.2, 2.8.3, 2.8.4, 2.8.5, 2.10.0, 2.10.1, 2.10.2, 2.10.3, 2.12.0, 2.12.1, 2.12.2, 2.12.3, 2.12.4, 2.12.5, 2.14.0, 2.14.1, 2.14.2, 2.14.3, 2.14.4, 2.14.5, 2.16.1, 2.16.2, 2.16.3, 2.16.4, 2.16.5, 2.18.1, 2.18.2, 2.18.3
Change log CHANGELOG
Dependencies array (>=0.4 && <0.6), attoparsec (>=0.11 && <0.14), base (>=4.5 && <4.9), base16-bytestring (>=0.1 && <0.2), binary (>=0.5 && <0.9), bytestring (>=0.9.0 && <0.11), containers (>=0.4 && <0.6), cryptohash (>=0.4 && <0.12), darcs, data-ordlist (>=0.4 && <0.5), deepseq (>=1.3 && <1.4), directory (>=1.1.0.2 && <1.3.0.0), filepath (>=1.2.0.0 && <1.5.0.0), hashable (>=1.0 && <1.3), haskeline (>=0.6.3 && <0.8), html (>=1.0 && <1.1), HTTP (>=4000.2.3 && <4000.4), lcs, mmap (>=0.5 && <0.6), mtl (>=2.1 && <2.3), network (>=2.3 && <2.7), network-uri (>=2.6 && <2.7), old-locale (>=1.0 && <1.1), old-time (>=1.1 && <1.2), parsec (>=3.1 && <3.2), process (>=1.1.0.1 && <1.5.0.0), random (>=1.0 && <1.2), regex-applicative (>=0.2 && <0.4), regex-compat-tdfa (>=0.95.1 && <0.96), sandi (>=0.2 && <0.4), tar (>=0.4 && <0.6), terminfo (>=0.3 && <0.5), text (>=0.11.3.1 && <1.3), time (>=1.4 && <1.7), transformers (>=0.3 && <0.4.0.0 || >0.4.0.0 && <0.6), transformers-compat (>=0.4 && <0.6), unix (>=2.5 && <2.8), unix-compat (>=0.1.2 && <0.5), utf8-string (>=0.3.6 && <1.1), vector (>=0.7 && <0.12), Win32 (>=2.2 && <2.4), zip-archive (>=0.2.3 && <0.4), zlib (>=0.5.3.0 && <0.7.0.0) [details]
License LicenseRef-GPL
Author David Roundy <droundy@darcs.net>, <darcs-devel@darcs.net>
Maintainer <darcs-devel@darcs.net>
Revised Revision 1 made by GuillaumeHoffmann at 2016-04-22T19:59:26Z
Category Development
Home page http://darcs.net/
Source repo head: darcs get http://darcs.net/
Uploaded by GuillaumeHoffmann at 2016-01-29T15:39:51Z
Distributions Arch:2.18.2, Debian:2.14.5, Fedora:2.16.5, FreeBSD:2.10.1, NixOS:2.18.3
Reverse Dependencies 2 direct, 0 indirect [details]
Executables darcs
Downloads 52499 total (222 in the last 30 days)
Rating 2.5 (votes: 3) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-11-26 [all 3 reports]

Readme for darcs-2.10.3

[back to package description]

Darcs

Darcs is a distributed version control system written in Haskell.

Getting started

Compiling

Build instructions are available at http://darcs.net/Binaries.

Using

To clone a repository from HTTP and send patches by mail:

$ darcs clone --lazy http://darcs.net
$ (edit files)
$ darcs add (new files)
$ darcs record -m "my changes"
$ darcs send

To clone from SSH and push patches:

$ darcs clone user@hub.darcs.net:user/repo
$ (edit files)
$ darcs add (new files)
$ darcs record -m "my changes"
$ darcs push

To create a project and start working:

$ darcs init (project)
$ cd (project)
$ (add files)
$ darcs add (files)
$ darcs record -m "initial version"

See http://darcs.net/Using for more information.

Reporting bugs

Please send bug reports to bugs@darcs.net.