[Haskell-cafe] Make your Darcs repositories hashed?

Jason Dagit dagit at codersbase.com
Sun Oct 10 00:19:22 EDT 2010

On Sat, Oct 9, 2010 at 8:52 PM, Brent Yorgey <byorgey at seas.upenn.edu> wrote:

> On Sat, Oct 09, 2010 at 03:43:42PM -0700, Jason Dagit wrote:
> >
> > The Haskell.org server doesn't have to be upgraded. Maintainers can
> install
> > a newer darcs locally (cabal install darcs), do the upgrade locally and
> then
> > copy the repository back to the haskell.org server.
> Really?  But then the version of darcs on code.haskell.org wouldn't be
> able to read those repositories, which would cause darcs over ssh to
> fail -- wouldn't it?  Or am I missing something?

I answered you immediate question in a different email.  Now I'll do a bit
of explanation on why people want hashed.

I should also mention that darcs 2.0.2 (which is the version on c.h.o) does
read darcs 2 repositories as support for that feature exists in all darcs
2.x clients.

And I personally think that c.h.o should be upgraded to darcs 2.4.4, but
that issue is orthogonal to the issue of getting maintainers to upgrade to
hashed format repos.

Darcs currently has 3 options for repo formats:
  * old fashioned
  * darcs 1 hashed
  * darcs 2 hashed

The old fashioned format will eventually be removed as it's not as robust or
safe as the hashed variants.  The big difference between darcs 1 hashed and
darcs 2 hashed is how patches behave when commuted.  The darcs 2 hashed
variant is a refinement that better handles some corner cases that result
from conflicts.  Something like 90% of the code in darcs is shared between
darcs 1 hashed and darcs 2 hashed.

The hashed formats are more robust because:
  * the hashes guard against accidental modification of patches that are
stored on disk
  * the hashes guard against a buggy darcs client that misapplies patches
(the hashes would be off, git has similar safe guards)
  * the hashed formats have better atomicity and hence better transactional

If you try the hashed format and find it unpleasant for any reason it's
something to report as a bug.  We really want (and need) people to switch to
hashed, so if it's not good enough we need to know why so we can fix it.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20101009/4dc0e5e8/attachment.html

More information about the Haskell-Cafe mailing list