On Sat, Oct 9, 2010 at 8:52 PM, Brent Yorgey <byorgey@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 properties

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.

Jason