Guillaume Hoffmann | 23 Oct 23:01 2014

incoming darcs 2.10 feature freeze


not before next november 3th, I'm kicking off the release process of
darcs 2.10 ( ). That
is, I will clone our reviewed repository into a release-2.10
repository, and from then on the only stuff that will go in will be
bugfixes, optimizations and helpstrings.

A description about what's already in 2.10 (new features, etc.) can be
found at

Ganesh Sittampalam | 23 Oct 20:28 2014

skeptical review requested: darcs tag --ask-deps


I'm thinking of adding a new flag to 'darcs tag', and I'm looking for a 
"skeptical review" (

So - anyone want to play the skeptic?

The basic idea is that it should be possible to make a tag that doesn't 
include all the patches currently in a repository. You can do that by 
pulling the relevant ones into a fresh repository, but that's not very 

My proposal is to add a flag --ask-deps to 'darcs tag', similar to the 
existing flag for 'darcs record', that asks the user about which 
explicit dependencies to include in the tag.

I've written a preview implementation at

The subtle difference between tag and record is that a normal patch by 
default has no explicit dependencies, but a tag by default has 
everything as an explicit dependency.

This leads to a slight UI anomaly: when selecting the dependencies for a 
tag, the 'd' key for saying "no" to all remaining patches is disabled. 
This is because it's unlikely to be what the user actually wants, and in 
the current implementation it would run very slowly. The user is 
expected to press 'a' instead once she has finished saying 'n' to 
patches that should be omitted from the tag.
(Continue reading)

Ganesh Sittampalam | 25 Aug 22:45 2014

darcs 2.8.5 release

The darcs team is pleased to announce the release of darcs 2.8.5:


The main purpose of this release is to add support for GHC 7.8. It's
been tested with GHC 7.8.3.

The new 64 bit version of GHC for Windows is not supported; 64 bit
is supported on other platforms as before.

Various dependencies on hackage packages have also been bumped: base,
network, unix, process, array, mtl, text.

The following problems have also been fixed:

 - Resolve issue2364 <> :
   Download problems with GHC 7.8

 - Resolve issue2345 <> :
   Erroneous message about libiconv when libcurl is missing


The easiest way to install darcs 2.8.5 from source is by first
installing the Haskell Platform ( If
you have installed the Haskell Platform or cabal-install, you can
install this release by doing:

(Continue reading)

Gian Piero Carrubba | 17 Aug 11:26 2014

Whatsnew on a rolled back repo

Use case:

I've a repo with patches A and B that are mutually exclusive. They 
aren't conflicting, but both define a same-named function, so the sw 
won't compile if both are applied. The simple solution is to rollback 
the undesired one before compiling, then revert the repo afterwards. Now 
I've discovered that last time I've forgotten to do the revert step. If 
I do a revert now, I'll lose any change I could have done in the repo 
while in the rolled-back status, so I need a way for displaying the 
changes in the working dir other than the ones generated by the rollback 

Any hint ? I think it could be done with some scripting, but this seems 
a bit too heavy task and probably there should be some simpler method 
for obtaining this. What am I missing ?

Gian Piero.
Gian Piero Carrubba | 14 Aug 21:42 2014

Using hash(es) for selecting one or more patches

Hi all,

now that `log` shows the hash of the patches, I would like to use it for 
selecting patches as `log (or whatever) -p` is not much handy where 
there are similar- or same-named patches. On the other hand, typing 
`--match 'hash` is boring, so I've added a `-H/--hash`[0] option that 
aliases to `--match 'hash ...'`.

Then I've changed idea and instead thought that I would prefer to 
continue using `-p` and darcs should discriminate if I've provided a 
regex or a hash. So I've modified `-p` (and the related `--from-patch` 
and `--to-patch`) in order to consider its argument as a hash if it's 40 
chars long and only composed by hex digits.

- much shorter patch
- no options inflating

1. no hash prefix matches: too many chances for false positives.
2. lack of correctness if your regex happens to be a 40 digits long hex.  
In this case you would have to resort to `--match 'name ...'`

If we had (or will have in the future) a short-id like other VCSs, we 
could use both full and short versions for alleviate 1, but this would 
OTOH aggravate 2.

While I consider the chances for 2. pretty limited, the drawbacks seem 
serious: user's surprise, breakage of sw that automatically names 
patches using hashes, possible kittens injuries, ...
(Continue reading)

Ganesh Sittampalam | 30 Jul 07:23 2014

planning a 2.8.5


I'm planning a 2.8.5 release primarily to support GHC 7.8.

The things I intend to include are:

 - GHC 7.8 support
 - The fixes from HEAD for the problems with downloading that GHC 7.8
 - The configuration fix from HEAD so that a missing libcurl is
correctly reported rather than as a missing iconv

Please shout if there's anything else important.


Xan xan | 26 Jul 23:26 2014

darcs serve


Is there any way of having embeded web server in darcs like "hg serve" in mercurial? Is there any bug against that? I think it were useful for seeing more comfortably what's changed, the files in every revision, etc.

Is there a planning for implementing that?

darcs-users mailing list
darcs-users <at>
Guillaume Hoffmann | 25 Jun 06:55 2014

Darcs News #108

# News and discussions

1.  We have a few updates from the Google Summer of Code projects.
    Alejandro Gadea about history reordering:

    -   <>
    -   <>
    -   <>

2.  Marcio Diaz about the cache system:

    -   <>

3.  Incremental fast-export is now provided to ease maintenance of git mirrors:

    -   <>

# Issues resolved (8)

issue2244 Ale Gadea
  ~ -   darcs tag should warn about duplicate tags
    -   <>

issue2314 Benjamin Franksen
  ~ -   output-auto-name in defaults file
    -   <>

issue2361 Ale Gadea
  ~ -   optimize --reorder runs forever with one repository
    -   <>

issue2364 Sergei Trofimovich
  ~ -   fix file corruption on double fetch
    -   <>

issue2364 Sergei Trofimovich
  ~ -   don't break list of 'bad sources'
    -   <>

issue2388 Owen Stephens
  ~ -   check if inventories dir has been created
    -   <>

issue2394 Guillaume Hoffmann
  ~ -   make optimize a supercommand
    -   <>

issue2396 Guillaume Hoffmann
  ~ -   make convert a supercommand and enhance help strings
    -   <>

# Patches applied (39)

2014-06-24 Guillaume Hoffmann
  ~ -   update issue2388 test to optimize supercommand

2014-05-11 Owen Stephens
  ~ -   Resolve issue2388: check if inventories dir has been created
    -   Accept issue 2388

2014-05-30 Ganesh Sittampalam
  ~ -   indentation fix for Windows-only module

2014-05-11 Benjamin Franksen
  ~ -   fixed a typo in a comment in Darcs.Util.Diff.Patience
    -   Allow options with path arguments to be specified in defaults file
    -   fixed cut-n-paste error in haddock comment
    -   resolve issue2314: output-auto-name in defaults file

2014-05-11 Owen Stephens
  ~ -   Accept issue2386

2014-06-12 Guillaume Hoffmann
  ~ -   remove patch index flags from rollback command
    -   resolve issue2396: make convert a supercommand and enhance help strings
    -   factorize boilerplate of optimize subcommands
    -   resolve issue2394: make optimize a supercommand
    -   adapt testsuite to new optimize supercommand

2014-05-11 Benjamin Franksen
  ~ -   make optimize command respect --quiet by using putInfo
    -   darcs.cabal: make Haskell2010 the default-language for all stanzas

2014-06-18 Guillaume Hoffmann
  ~ -   explain commandProgramName

2014-05-07 Benjamin Franksen
  ~ -   fixed missing option for author in test
    -   added _test_playground to boring file
    -   added cabal sandbox generated stuff to boringfile
    -   avoid a syntax error with haddock-2.13.2

2014-04-29 Sergei Trofimovich
  ~ -   resolve issue2364: fix file corruption on double fetch

2014-04-30 Owen Stephens
  ~ -   Use DeriveFunctor instead of manual instance for PatchMod

2014-06-09 Guillaume Hoffmann
  ~ -   marksfile support for convert --export

2014-06-11 Ale Gadea
  ~ -   Documentation of function Darcs.Repository.Internal.misplacedPatches .
    -   Documentation for Darcs.Patch.Witnesses.Sealed module.
    -   Documentation for Darcs.Patch.Witnesses.Ordered module.

2014-06-03 Ganesh Sittampalam
  ~ -   conditionalise replHook using Template Haskell

2014-06-05 Ale Gadea
  ~ -   Resolve Issue2361: optimize --reorder runs forever with one repository

2014-05-16 Guillaume Hoffmann
  ~ -   implement doFastZip to create zip archive from pristine tree

2014-05-29 Ganesh Sittampalam
  ~ -   re-advertise GHC 7.8 support
    -   clean out some obsolete conditionalisation
    -   bump version to 2.9.9

2014-05-19 Guillaume Hoffmann
  ~ -   rm latex2html file

2014-05-13 Sergei Trofimovich
  ~ -   resolve issue2364: don't break list of 'bad sources'

2014-04-27 Owen Stephens
  ~ -   Accept issue2382: darcs is confused if a dir is moved inplace of a file
    -   Accept issue2383
    -   Accept issue2380: darcs wont rename a file to the name of a deleted file

2014-05-07 Ale Gadea
  ~ -   Resolve Issue2244: darcs tag should warn about duplicate tags
Dmitry Bogatov | 29 May 20:12 2014

Return value of hooks


It seems, that I can set {pre,post} -hooks for record command, but
I cannot find a way to use their exit status.

What I want, is get `darcs record` to ask me to choose chunks, apply
them, run test and refuse to record, if it fails. Is it possible?

PS. Sorry for possible duplicate

Best regards, Dmitry Bogatov <KAction <at>>,
Free Software supporter, esperantisto and netiquette guardian.
	GPG: 54B7F00D
Eric Kow | 11 May 22:33 2014

HCAR 2014-05

Hi everyone!

Any comments on our latest Haskell Communities and Activities Report draft?

Lines 31-47 are new, with a brief description of our (exciting!) GSoC projects for 2014.

Thanks :-)


Eric Kow

Attachment (Darcs.tex): application/octet-stream, 3826 bytes
darcs-users mailing list
darcs-users <at>
Guillaume Hoffmann | 5 May 20:35 2014

Darcs News #107

# News and discussions

1.  Darcs has received two grants from the Google Summer of Code program,
    as part of the umbrella organization
    Alejandro Gadea will work on history reordering:

    -   <>

2.  Marcio Diaz will work on the cache system:

    -   <>
    -   <>

3.  Repository cloning to remote ssh hosts has been present for years as
    `darcs put`. This feature has now a more efficient implementation:

    -   <>

# Issues resolved (11)

issue851 Dan Frumin
  ~ -   interactive mode for whatsnew
    -   <>

issue1066 Guillaume Hoffmann
  ~ -   clone to ssh URL by locally cloning then copying by scp
    -   <>

issue1268 Guillaume Hoffmann
  ~ -   enable to write darcs init x
    -   <>

issue1416 Ale Gadea
  ~ -   put log files in tempdir instead of in working dir.
    -   <>

issue1987 Marcio Diaz
  ~ -   Garbage collection for inventories and patches.
    -   <>

issue2263 Ale Gadea
  ~ -   Option --set-scripts-executable is not properly documented
    -   <>

issue2345 Dan Frumin
  ~ -   solution using cabal's checkForeignDeps
    -   <>

issue2357 Dan Frumin
  ~ -   switching to regex-compat-tdfa for unicode support
    -   <>

issue2365 Guillaume Hoffmann
  ~ -   correctly copy pristine in no-working-dir clones
    -   <>

issue2367 Guillaume Hoffmann
  ~ -   rename amend-record to amend, make --unrecord more visible
    -   <>

issue2379 Guillaume Hoffmann
  ~ -   only use packs to copy pristine when up-to-date
    -   <>

# Patches applied (41)

2014-05-03 Owen Stephens
  ~ -   Use custom replHook to fix cabal repl
    -   Use DeriveFunctor instead of manual instance for PatchMod

2014-04-25 Guillaume Hoffmann
  ~ -   update packs tests to new strings
    -   resolve issue1268: enable to write darcs init x
    -   rename get to clone
    -   remove Put since Get can clone to ssh destination faster
    -   resolve issue1066: clone to ssh URL by locally cloning then
copying by scp
    -   do not tolerate ctrl+c when --complete is passed
    -   do not print message twice when patches pack grabbing fails
    -   create inventories subdir at darcs init

2014-04-24 Ganesh Sittampalam
  ~ -   TAG 2.9.9

2014-04-22 Guillaume Hoffmann
  ~ -   resolve issue2365: correctly copy pristine in no-working-dir clones
    -   rename copyRepo to copyHashedInventory, separate copySources
    -   only print once repository renaming message when cloning
    -   maybeIdentifyRepository: report missing _darcs directory right away
    -   no longer make put autocomplete on known repos
    -   rename setDefaultrepo to addRepoSource and haddock it
    -   resolve issue2379: only use packs to copy pristine when up-to-date

2014-02-08 Dan Frumin
  ~ -   A shell test for `whatsnew --interactive`
    -   resolve issue851: interactive mode for whatsnew
    -   Cleaning up the headers in WhatsNew and SelectChanges

2014-04-23 Ganesh Sittampalam
  ~ -   switch hashed-storage-test to be a proper test harness
    -   dumb merge of hashed-storage.cabal etc into darcs.cabal
    -   drop NoMonomorphismRestriction from hashed-storage
    -   conditionally use local copy of Data.Map.Strict in Darcs.Repository.Util

2014-02-14 Dan Frumin
  ~ -   resolve issue2357: switching to regex-compat-tdfa for unicode support
    -   resolve issue2345: solution using cabal's checkForeignDeps

2014-04-22 Owen Stephens
  ~ -   Add a test for all combinations of path status for darcs move

2014-04-19 Ganesh Sittampalam
  ~ -   don't advertise GHC 7.8 support until is fixed

2014-04-10 Guillaume Hoffmann
  ~ -   resolve issue2367: rename amend-record to amend, make
--unrecord more visible
    -   Accept issue2365: whatsnew fails in repos made w get --no-working-dir

2014-04-09 Marcio Diaz
  ~ -   resolve issue1987: Garbage collection for inventories and patches.
    -   Accept issue1987: regression tests for garbage collection for

2014-04-08 Guillaume Hoffmann
  ~ -   fix warning in Record

2014-04-08 Ale Gadea
  ~ -   Resolve Issue1416: put log files in tempdir instead of in working dir.

2013-10-27 Guillaume Hoffmann
  ~ -   TAG 2.9.8
    -   bump version to 2.9.8

2013-09-06 Petr Rockai
  ~ -   Fix a bug in MIME encoding of bundles.

2014-03-17 Guillaume Hoffmann
  ~ -   eliminate withRepoReadLock obsolete since old-fashioned deprecation
    -   polish help string on get --set-strings-executable

2014-03-22 Ale Gadea
  ~ -   Resolve Issue2263: Option --set-scripts-executable is not
properly documented