[Haskell-cafe] Compilers

Eric Kow kowey at darcs.net
Sun Nov 30 09:57:04 EST 2008

Hi Daniel,

On Sun, Nov 30, 2008 at 08:31:15 -0500, haskell-cafe-request at haskell.org wrote:
> dafis at linux:~/lhc> darcs get --partial http://code.haskell.org/lhc
> Invalid repository:  http://code.haskell.org/lhc
> darcs failed:  failed to fetch: http://code.haskell.org/lhc/_darcs/inventory 
> ExitFailure 1
> There's a hashed_inventory in lhc/_darcs, but no inventory.
> Is that a darcs2 vs. darcs1 incompatibility and I'm just screwed or is the 
> repo broken?

There are two issues here.  One is that the LHC repository is indeed a
darcs 2 repository and you appear to have darcs 1 on your machine.  I
think upgrading to darcs 2 would be a very good idea, and I'm sure the
darcs community would be happy to help you with this.

The second issue is that our forward-compatibility detector was likely
buggy in darcs 1.0.9.  The response darcs 1.0.9 should have given you
was something like this:

  darcs failed:  Can't understand repository format: hashed
  darcs failed:  Can't understand repository format: darcs-2

Unfortunately, the relationship between hashed and darcs 2 repositories
is slightly confusing.  Basically you need a darcs 2 client if you see
hashed_inventory, but it does not necessarily mean there is an
incompatibility.  I hope that the following snippet from the darcs 2.1.0
release announcement can help clear this up:

What should I do?
Upgrade! Binary versions should be available shortly, either from your
favourite package distributor or by third party contributors.

Other than installing the new darcs, no action is required on your part to
perform this upgrade. Darcs 2, including this particular version, is 100%
compatible with your pre-existing repositories.

If you have not done so already, you should consider using the hashed
repository format in place of your current old-fashioned repositories.
This format offers greater protection against accidental corruption,
better support for case insensitive file systems. It also provides some
very nice performance features, including lazy fetching of patches and a
global cache (both optional).

If darcs 1 compatibility is not a concern, you could also upgrade your
repositories all the way to the darcs 2 format. In addition to the
robustness and performance features above, this gives you the improved
merging semantics and conflicts handling that give darcs 2 its name.

More details about upgrading to darcs 2 here:

Another clarification
To be clear, we say that hashed repositories are backward-compatible.
This means that darcs 2 clients can pull and push patches between
them and old-fashioned repostiories.  On the other hand, interacting
with the hashed repositories themselves requires a darcs 2 client.


Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow>
PGP Key ID: 08AC04F9
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
Url : http://www.haskell.org/pipermail/haskell-cafe/attachments/20081130/e833bfdc/attachment.bin

More information about the Haskell-Cafe mailing list