[darcs-users] Announcing darcs 1.0.4rc1

Jonathon Mah me at JonathonMah.com
Fri Oct 14 10:29:48 UTC 2005


> Here's the announcement of darcs 1.0.4rc1, the first release
> candidate before the upcoming 1.0.4 release.

Yay! It keeps getting better and better...

> * Highlights
>
> Improved speed and memory usage. David Roundy and Ian Lynagh
> made a lot of changes that greatly improved the way darcs reads
> and writes patches -- faster, smaller, better. This resulted in
> darcs not showing the total number of patches during interactive
> selection, until you hit 'c' (count).

I always like to see a count of changes. Could someone Haskell-y add  
a switch to record, amend-record, revert (is that all of them?) to  
make it always calculate the number of patches? I could then add it  
to my defaults file.

> New --posthook option. Jason Dagit implemented a much requested
> feature, the posthook option. It runs a given shell command if
> the darcs command exits successfully, and is most useful when
> placed in the "defaults" configuration file.

Posthook is really great, and allows lots of new possibilities (one  
of which I'll post shortly). I think by default the posthook should  
_not_ run when a command is cancelled (e.g. cancelling during an  
interactive record).

> Obliterate. There have been much debate on darcs' mailing lists
> about the naming of Unpull, and David Roundy has now made
> Obliterate an alias for Unpull.

This fact (that they are aliases) should be made clear in the command  
help. Assuming 'unpull' would be eventually phased out, its command  
description could be changed to "Alias for obliterate", and  
'obliterate' can remain unchanged.

> Put. There's a new command, Put, symmetric with Get, to put a
> clone or tagged version of the current repo somewhere. The
> command is still a bit inefficient, so avoid it on very large
> repos. It's coded by Josef Svenningsson.

This is very handy too -- but why is it so much slower than 'get'?  
I'd think that 'darcs push /parent/new' would be the same as '(cd / 
parent ; darcs get repo new)'.

----
$ time darcs get /repo-path/Patchworks-trunk gotten
Copying patch 85 of 85... done!
Finished getting.

real    0m2.225s
user    0m0.308s
sys     0m0.487s
$ time darcs put ~/putten
Finished applying...

real    2m22.563s
user    1m41.810s
sys     0m6.875s
----

The current usage for this command is:
Usage: darcs put [OPTION]... <REPOSITORY>

 From that it is not clear that <REPOSITORY> is the location of a  
_new_ repository. Something like <NEW REPOSITORY> would make it more  
evident.

> Flags can now be given also after (and in between) the command
> arguments (by David Roundy).

Far more civilized. :)

> Optimize can --modernize-patches and --reorder-patches. David
> Roundy extended the Optimize command with new options to update
> patches to newer formats (some very old formats have bugs) and
> to improve darcs' performance on repos.

...and very applicable to the thing I mentioned earlier (I'll send  
out an e-mail in an hour or two).

> Andres Loeh made some nice cleanups of the LaTeX code in the
> manual.

Very much appreciated, Andres!

> Zooko changed darcs' web page to point new users to the
> precompiled darcs binaries before giving them the source
> direction. Then they'll know about this escape route before they
> start the (sometimes) hard journey of setting up a system that
> can build darcs.

Definitely a good step.


OK, I think that's about it for now. :) Thanks,



Jonathon Mah
me at JonathonMah.com






More information about the darcs-users mailing list