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

  • Bundled
    • Bundled.Posix
  • 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.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.Merge
      • Darcs.Patch.MonadProgress
      • Darcs.Patch.Named
        • Darcs.Patch.Named.Wrapped
      • 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.FileUUID
          • Darcs.Patch.Prim.FileUUID.Apply
          • Darcs.Patch.Prim.FileUUID.Coalesce
          • Darcs.Patch.Prim.FileUUID.Commute
          • Darcs.Patch.Prim.FileUUID.Core
          • Darcs.Patch.Prim.FileUUID.Details
          • Darcs.Patch.Prim.FileUUID.ObjectMap
          • Darcs.Patch.Prim.FileUUID.Read
          • Darcs.Patch.Prim.FileUUID.Show
        • 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.Progress
      • Darcs.Patch.Read
      • Darcs.Patch.ReadMonads
      • Darcs.Patch.Rebase
        • Darcs.Patch.Rebase.Container
        • Darcs.Patch.Rebase.Fixup
        • Darcs.Patch.Rebase.Item
        • Darcs.Patch.Rebase.Name
        • Darcs.Patch.Rebase.Viewing
      • Darcs.Patch.RegChars
      • Darcs.Patch.Repair
      • Darcs.Patch.RepoPatch
      • Darcs.Patch.RepoType
      • 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.RepoPatch
      • 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.Prelude
    • Darcs.Repository
      • Darcs.Repository.ApplyPatches
      • Darcs.Repository.Cache
      • Darcs.Repository.Clone
      • Darcs.Repository.Diff
      • Darcs.Repository.Flags
      • Darcs.Repository.Format
      • Darcs.Repository.HashedIO
      • Darcs.Repository.HashedRepo
      • Darcs.Repository.Internal
      • Darcs.Repository.InternalTypes
      • Darcs.Repository.Job
      • Darcs.Repository.Match
      • Darcs.Repository.Merge
      • Darcs.Repository.Motd
      • Darcs.Repository.Old
      • Darcs.Repository.Packs
      • Darcs.Repository.PatchIndex
      • Darcs.Repository.Pending
      • Darcs.Repository.Prefs
      • Darcs.Repository.Rebase
      • Darcs.Repository.Repair
      • Darcs.Repository.Resolution
      • Darcs.Repository.State
      • Darcs.Repository.Test
    • 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.ShowDependencies
        • 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.PatchHeader
      • Darcs.UI.PrintPatch
      • 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
      • Darcs.Util.Compat
      • 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.External
      • Darcs.Util.File
      • Darcs.Util.Global
      • Darcs.Util.Hash
      • Darcs.Util.Index
      • Darcs.Util.IsoDate
      • Darcs.Util.Lock
      • 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.Tree
        • Darcs.Util.Tree.Hashed
        • Darcs.Util.Tree.Monad
        • Darcs.Util.Tree.Plain
      • Darcs.Util.URL
      • Darcs.Util.Workaround

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
rtsDisabled
optimize

Build with optimizations (-O2)

Enabled
libiconv

Explicitly link against the libiconv library.

Disabled
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

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
Change log CHANGELOG
Dependencies array (>=0.4.0.1 && <0.6), async (>=2.0.1.4 && <2.2), attoparsec (>=0.11 && <0.14), base (>=4.6 && <4.10), base16-bytestring (>=0.1 && <0.2), binary (>=0.5 && <0.9), bytestring (>=0.10.0.2 && <0.11), containers (>=0.5 && <0.6), cryptohash (>=0.4 && <0.12), darcs, data-ordlist (>=0.4 && <0.5), directory (>=1.2.0.1 && <1.3.0.0), fgl (>=5.5.0.1 && <5.6), filepath (>=1.3.0.1 && <1.5.0.0), graphviz (>=2999.17.0.1 && <2999.19), hashable (>=1.1.2.5 && <1.3), haskeline (>=0.6.3 && <0.8), html (>=1.0.1.2 && <1.1), HTTP (>=4000.2.8 && <4000.4), mmap (>=0.5 && <0.6), mtl (>=2.1.2 && <2.3), network (>=2.4.1.2 && <2.7), network-uri (>=2.6 && <2.7), old-locale (>=1.0.0.5 && <1.1), old-time (>=1.1 && <1.2), parsec (>=3.1 && <3.2), process (>=1.1.0.2 && <1.5.0.0), random (>=1.0.1.1 && <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.0.1 && <1.7), transformers (>=0.3 && <0.4.0.0 || >0.4.0.0 && <0.6), transformers-compat (>=0.4 && <0.6), unix (>=2.6.0.1 && <2.8), unix-compat (>=0.1.2 && <0.5), utf8-string (>=0.3.6 && <1.1), vector (>=0.10.0.1 && <0.12), Win32 (>=2.3 && <2.4), zip-archive (>=0.2.3 && <0.4), zlib (>=0.5.4.1 && <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 HerbertValerioRiedel at 2019-02-17T11:25:52Z
Category Development
Home page http://darcs.net/
Source repo head: darcs get http://darcs.net/
Uploaded by GuillaumeHoffmann at 2016-04-29T14:39:36Z
Distributions Arch:2.16.5, Debian:2.14.5, Fedora:2.16.5, FreeBSD:2.10.1, NixOS:2.16.5
Executables darcs
Downloads 48135 total (219 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-11-26 [all 2 reports]

Readme for darcs-2.12.0

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

Hacking

Please consult http://darcs.net/Development/GettingStarted for up-to-date information about contributing to Darcs.

The wiki can be downloaded with the command:

$ darcs clone --lazy http://darcs.net/darcs-wiki