[darcs-devel] announcing darcs 2.0.0pre1, the first prerelease for darcs 2

Simon Marlow simonmarhaskell at gmail.com
Wed Dec 12 13:45:13 UTC 2007

David Roundy wrote:

> === Creating a repository in the darcs-2 format ===
> Converting an existing repository to the darcs-2 format is as easy as
> darcs convert oldrepository newrepository

I did this for GHC's repository.  I left it running last night, and I'm not 
sure whether it completed successfully - I certainly have a repository, but 
it had a _darcs/lock file left in it.  It seems to have all the patches in 
_darcs/patches, and the last one is dated about 3.5 hours after I started 
the conversion.

$ darcs2 query repo
           Type: darcs
         Format: hashed, darcs-2-experimental
           Root: /64playpen/simonmar/ghc-darcs2
       Pristine: HashedPristine
          Cache: thisrepo:/64playpen/simonmar/ghc-darcs2
    Num Patches: 17532

A few quick performance tests.  The darcs2 repository is on a local filesystem:

$ time darcs2 whatsnew -s
No changes!
2.25s real   2.04s user   0.18s system   98% darcs2 w -s

In a darcs1 GHC repository mounted over NFS:

$ time darcs whatsnew -s
No changes!
0.13s real   0.03s user   0.05s system   58% darcs w -s

"darcs changes" seems to have a big performance regression:

$ time darcs2 changes --last=10 >/dev/null

I killed it after 3 minutes of CPU time and the process had grown to 1.4Gb. 
  darcs1 does this in 0.05 seconds using 2Mb.  Perhaps the repository is 
corrupted somehow?

I've tarred up the repo and put it here:


It is also online here:


Documentation nits

The 'darcs show' documentation appears in two places, under "Seeing what 
you've done" and "Advanced examination of the repository".

The docs still say that two patches making the same change are considered 
to be in conflict.

I can't find any docs about using lazy patch downloading and the 
~/.darcs/sources file.


More information about the darcs-devel mailing list