Henning Thielemann | 28 Jun 08:50 2016

diff algorithm: matching similar lines

Am I right that the old and current darcs-diff algorithm only match 
exactly equal lines? I assume that results are more intuitive if also 
non-matching lines are taken into account depending on their degree of 
similarity (only differences in spacing, single character inserts or 
deletions). Or is this too computationally expensive?

I guess that a spacing-aware diff algorithm might also be a step towards 
an indentation patch type.
Alexander Berntsen | 6 Jun 14:57 2016

OpenPGP signing and Darcs


With git I rely heavily on OpenPGP-signing every commit with GPG, so
that users can confidently checkout any snapshot of the repository.

As far as I understand with Darcs, patches can be signed using GPG.
However, I cannot find out how to actually find them. How do I, using
darcs log or similar, actually see the signatures?

As an aside, as a git user and complete Darcs newbie, my understanding
of the ramifications of patches as first-class citizens is admittedly
lacking, so I am not entirely certain how OpenPGP signatures should
work with Darcs. I just want to make sure I can distribute my software
and patches with a certain guarantee for end-users regarding things
like MitM. If anyone has any documentation or guides I should look at
for this, that would be appreciated.

alexander <at> plaimi.net
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:

    -   <http://lists.osuosl.org/pipermail/darcs-users/2016-April/027198.html>
    -   <http://darcs.net/Releases/2.12>

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

    -   <http://lists.osuosl.org/pipermail/darcs-users/2016-April/027197.html>
    -   <http://darcs.net/Sprints/2016-05>

# Issues resolved (5)

issue1807 Guillaume Hoffmann
  ~ -   clarify help of PAGER, DARCS_PAGER
    -   <http://bugs.darcs.net/issue1807>

issue2258 Guillaume Hoffmann
  ~ -   improve patch index error message with suggestion
    -   <http://bugs.darcs.net/issue2258>

issue2393 Guillaume Hoffmann
  ~ -   remove whatsnew functionality from annotate
    -   <http://bugs.darcs.net/issue2393>

issue2486 Ben Franksen
  ~ -   obliterate --not-in-remote -q should be more quiet
    -   <http://bugs.darcs.net/issue2486>

(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:

    -   <http://lists.osuosl.org/pipermail/darcs-users/2015-October/027144.html>
    -   <http://lists.osuosl.org/pipermail/darcs-users/2015-October/027145.html>

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

    -   <http://lists.osuosl.org/pipermail/darcs-users/2016-March/027185.html>

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:

    -   <http://lists.osuosl.org/pipermail/darcs-users/2015-November/027151.html>
    -   <http://lists.osuosl.org/pipermail/darcs-users/2016-January/027182.html>

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:

    -   <http://blog.darcs.net/2015/09/darcs-hacking-sprint-9-report.html>
    -   <http://blog.darcs.net/2016/01/darcs-hacking-sprint-10-report.html>

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

    -    <http://pijul.org/2016/03/16/sprint.html>
(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 (http://www.haskell.org/platform)
and install Darcs with cabal-install:

$ cabal update
$ cabal install darcs-2.10.3

You can also download the tarball from
http://darcs.net/releases/darcs-2.10.3.tar.gz 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)