Guillaume Hoffmann | 15 Apr 17:02 2016

Darcs News #113

# News and discussions

1.  We will release Darcs 2.12 by the end of this month:

    -   <>
    -   <>

2.  On May 6th-8th in Helsinki, a joint sprint Pijul/Darcs is organized:

    -   <>
    -   <>

# Issues resolved (5)

issue1807 Guillaume Hoffmann
  ~ -   clarify help of PAGER, DARCS_PAGER
    -   <>

issue2258 Guillaume Hoffmann
  ~ -   improve patch index error message with suggestion
    -   <>

issue2393 Guillaume Hoffmann
  ~ -   remove whatsnew functionality from annotate
    -   <>

issue2486 Ben Franksen
  ~ -   obliterate --not-in-remote -q should be more quiet
    -   <>

(Continue reading)

Guillaume Hoffmann | 1 Apr 20:06 2016

darcs news #112

# News and discussions

1.  After 7 years of being the maintainer/Benevolent Dictator of Darcs,
    Eric Kow stepped down and offered me (Guillaume Hoffmann) to take over,
    which I accepted:

    -   <>
    -   <>

2.  The release process of Darcs 2.12 will start when GHC 8 is released:

    -   <>

3.  We had two new minor releases of Darcs 2.10, and in spite of being minor,
    they contain a few interesting changes and optimizations:

    -   <>
    -   <>

4.  In a span of 4 months we had two sprints, one in Paris in
September and another
    another in Seville in January, check out the reports:

    -   <>
    -   <>

5.  Finally, Pierre-√Čtienne Meunier announced a Pijul sprint in may in Finland.
    Darcs hackers are welcome!

    -    <>
(Continue reading)

Simon Michael | 15 Mar 20:48 2016

darcs hub at Los Angeles meetup tonight

Hi all,

if you're in Los Angeles, you might like to check out this meetup in 
Santa Monica at 1900 tonight, where I'll be talking about Darcs Hub.
Guillaume Hoffmann | 7 Mar 20:57 2016

plans for Darcs 2.12

Hi everyone,

we had an important release of Darcs 2.10.0 on April of 2015, and the
last point-release is 2.10.3 from January of 2016.

I'm aiming at releasing Darcs 2.12 whithin the next couple of months
to avoid waiting too long for another "big release" which would cost
us too much effort.

I think the only blocker for the release is "darcs stash". Ganesh has
already sent many patches for a refactoring that prepares the stash
command and there are more coming. We need to review them and test the
feature when it is done.

Ganesh also has improvements for the "darcs test" command, if they can
be ready soon, they will make it in 2.12.

If anyone else thinks about another important feature to get in,
please let me know.

The perfect moment for the release would be not too long after the
release of GHC 8, so that we can hope to have Darcs 2.12 included in
the next Debian stable along with GHC 8.


Evan Laforge | 3 Mar 03:02 2016

How do disable "do you want to push these patches"?

I've been meaning to bring this up for a long time (ever since 2.10),
but had some trouble subscribing to darcs-users.

Is there a way to disable the extra  "do you want to push these
patches" confirmation introduced in 2.10?  It's always redundant for
me since I already decided about the patches, and it gets me in
trouble because my habits are to hit 'a' or whatever and then start
typing something or go to a different window because I assume I'm
done.  It's especially annoying when I just reviewed 200 hunks and I
accidentally cancel and now have to go select them again.

It also does silly things like this:

  Shall I pull this patch? (1/1)  [ynW...], or ? for more options: n
  Do you want to pull these patches? [Yglqk...], or ? for more options: n

As an aside, is there some special thing the prompt lets you do that
you couldn't do otherwise?  It seems redundant to me because we
already have an easy undo for most (all?) operations.  I looked in the
archives and couldn't find any rationale for it, but it may have been
a long time ago.

Also, is there any way to have 'record' go back to asking for a one
line summary and only opening the editor if you tell it to?  The
previous behaviour was more convenient for me because the accepted
hunks are right there to remind me what the summary line should be.
The current way immediately clears them off of the screen and I have
to go to a different window for a 'darcs w' to remind myself what they

(Continue reading)

Pierre-√Čtienne Meunier | 2 Feb 08:53 2016

Pijul 0.2

Hi darcs fellows,

Florent Becker and myself are proud to announce the second public release of Pijul, a new version control
system aiming to be easy to learn and use, distributed, and fast.

Pijul is based on a theoretical model of patches described here. At the conceptual level, it merges
concepts from category theory, and the patch theory developed by darcs. At the practical level, a number
of new ideas allow for a quite fast system.

A lot has changed in this second release. Pijul has been completely rewritten in a new language, Rust. While
rewriting, we have also focused on a more limited interface, to try and ensure correctness.

What we have

Here is what we have in this release (modulo bugs, of course):

 -  Basic file system operations: add, remove, mv, ls.
 -  Record, for text files only.
 -  Conflict handling, at the line level.
 -  Pull from local repositories, ssh and http.
 -  Push to local repositories, ssh.
 -  Repositories robust to hash function changes (see Layout of a repository).

What is missing

The most crucially missing feature is unrecord, with rollback a close second, but there is no fundamental
problem with this. Other features include blame/annotate, especially in the case of conflicts (this is
probably an easy project to start contributing).
(Continue reading)

Guillaume Hoffmann | 29 Jan 17:37 2016

darcs 2.10.3 release

The darcs team is pleased to announce the release of darcs 2.10.3 !

# Downloading #

One way of installing Darcs 2.10.3 is with stack:

$ stack install darcs-2.10.3

Or first install the Haskell Platform (
and install Darcs with cabal-install:

$ cabal update
$ cabal install darcs-2.10.3

You can also download the tarball from and build it by hand.

The 2.10 branch is also available as a darcs repository from

# What's new in 2.10.3 (since 2.10.2) #

 * implement weak repository hash and show it in "darcs show repo"
 * implement "whatsnew --machine-readable" for more parsability
 * enhance Git import: empty directories, unescape file names, unnamed commits
 * make commit an alias for record
 * expose API for "darcs diff"
 * force grep to treat output of locale as text
 * bump dependencies: vector, process, HUnit, binary, transformers, time, HTTP,
(Continue reading)

Henning Thielemann | 17 Jan 17:53 2016

Maintaining a history of compilable repository states

I am sure you darcs developers already thought intensively about the 
following problem, but I could not find a proposal or future plan page in 
the darcs wiki. Maybe this is the closest:

The great feature of darcs is that I can push and pull single patches 
around, i.e. cherry-picking is the default behaviour. The downside is that 
I can pretty easily create repository states that cannot be compiled or 
run. E.g. if I develop two features, each in a separate branch and then 
merge them, the conflicting parts will be removed from the repository and 
'darcs test' (usually a 'cabal configure && cabal build && cabal test') 
will fail. Even if there are no conflicts in the text, the merged patches 
may not form a compilable package. Additionally I am hardly able to get 
the two lines of development separated later.

Older darcs versions (e.g. darcs-2.5) had the 'trackdown' function.

It seems to be removed in darcs-2.10. I wonder how it can work if many 
interim states do not compile.

In Git this is no problem since it only stores snapshots (=commits) and 
every merge creates a new commit that you can inspect and improve and 
test. (Having said that, Git makes it pretty complicated to run a test 
that actually tests the current repository state.) The downside is that it 
cannot store file moves and token replacements.

What ideas or proposals do you have for reconstructing historic repository 
states and make 'trackdown' actually work? Maybe it would help to somehow 
(Continue reading)

Ivan Zakharyaschev | 21 Dec 17:07 2015

Re: Q: language-c upstream repo

On Mon, 21 Dec 2015, Guillaume Hoffmann wrote:

>> But isn't it a bug that some tags seem to be lost after the conversion? (As
>> I have demonstrated below: the tags are present in the source darcs-1 repo,
>> but not in the result.)
> Can you first run "darcs optimize reorder" and then do the conversion?

I did this.

This didn't help with the lost tags (isn't it strange?), but did help with 
being able to push to the darcs-2 repo from hub (a clone of it):

(BTW, there are axtra patches in the darcs-1 repo.)

~/TOOLS/prog $ cd language-c.pristine.reordered/
~/TOOLS/prog/language-c.pristine.reordered $ darcs show tags
~/TOOLS/prog/language-c.pristine.reordered $ darcs optimize reorder
Done reordering!
~/TOOLS/prog/language-c.pristine.reordered $ darcs show tags
(Continue reading)

Ivan Zakharyaschev | 15 Dec 05:53 2015

vc-darcs.el records changes without the fullname unlike darcs itself (with a PATCH)

Another problem I've noticed with the vc-darcs.el from jch <at>  is that it
doesn't use the author's fullname when recording changes.

This has been discovered thanks to a warning by "darcs amend".

Let's have a look how the code of vc-darcs.el could be fixed. (I'll
post if I come up with something.)

Here is an example session demonstrating the problem:

~/tests $ mkdir test-darcs
~/tests $ cd test-darcs/
~/tests/test-darcs $ darcs init
Repository initialized.
~/tests/test-darcs $ echo a > a
~/tests/test-darcs $ darcs add a
Adding 'a'
~/tests/test-darcs $ darcs rec
addfile ./a
Shall I record this change? (1/2)  [ynW...], or ? for more options: y
hunk ./a 1
Shall I record this change? (2/2)  [ynW...], or ? for more options: y
Do you want to record these changes? [Yglqk...], or ? for more options: y
Finished recording patch 'A.'
~/tests/test-darcs $

(On the last step above, there is another minor problem -- probably caused
by vc-darcs.el, since I didn't experience it before starting to use
(Continue reading)

Ivan Zakharyaschev | 15 Dec 02:13 2015

vc-darcs.el and the length of hashes (cons: Args out of range)


As a darcs user from time to time (and sympathizer), I have recently 
started to use vc-darcs.el in Emacs. (I know there are other darcs 
libraries for Emacs, but I'm interested in the Emacs VC interface, too, 
because I'm accustomed to using it in certain situations.)

I want to share some observations about a discovered bug in one of the 
implementations of vc-darcs (which I'm left with as the only one, because 
the other link is dead).

Perhaps, this will help make it better.

I'm not sure about where this inconsistency comes from. Perhaps, an older 
version of darcs had a different interface w.r.t. the ids of patches. 
Understanding this would make it clearer how to proceed with a possible 
fix (keep both variants or not, check versions,...). Do you have any 

Best regards,

---------- Forwarded message ----------
Date: Tue, 8 Dec 2015 13:18:54 +0300
From: Ivan Zakharyaschev <imz <at> >
To: jch <at> 
Subject: vc-darcs: cons: Args out of range


(Continue reading)