Noooooo! Two "your repo is in an inconsitent state" in one day. See below. This is Darcs 2.2.0 on Windows, and a very small repo (a paper I'm writing).
Running 'darcs repair' doesn't seem to help.
Sigh.
Simon
bash-3.1$ darcs pull -av
Pulling from "code.haskell.org:/srv/code/explicitCallStackPaper"...
They have the following patches to pull:
Tue Apr 28 18:22:12 GMT Daylight Time 2009 tora@zonetora.co.uk
* More changes for building
Tue Apr 28 18:22:37 GMT Daylight Time 2009 tora@zonetora.co.uk
* Small typos, Real world example, extras in the compiler pass
Getting and merging the following patches:
Tue Apr 28 18:22:12 GMT Daylight Time 2009 tora@zonetora.co.uk
* More changes for building
Tue Apr 28 18:22:37 GMT Daylight Time 2009
darcs failed: File './stackTransitions.pdf' already exists!
Your repository is now in an inconsistent state.
This must be fixed by running darcs repair.
tora@zonetora.co.uk
* Small typos, Real world example, extras in the compiler pass
Applying to pristine... Tue Apr 28 18:22:12 GMT Daylight Time 2009 tora@zonetora.co.uk
* More changes for building
Tue Apr 28 18:22:37 GMT Daylight Time 2009 tora@zonetora.co.uk
* Small typos, Real world example, extras in the compiler pass

Hi Simon,
I didn't see my reply on the bugtracker, so I'll send it again
On Wed, Apr 29, 2009 at 16:46:55 -0000, Simon Peyton-Jones wrote:
> I tried removing the file in Linux and pushing, but I still can't get
> the repo. It seems that this repo is irredeemable poisoned from a
> Windows point of view.
The short answer is to do a darcs get --hashed when fetching this
repository.
More later!

Here's the promised additional context.
The short answer is "use hashed repositories".
The medium length answer is "we are working to make people use hashed
repositories without their having to know about them".
Context: We fixed this sort of issue a long time ago (in darcs 2) by
introducing hashed repositories. The remaining problems are (1) that hashed
repositories can be slower in day to day usage and (2) people aren't using the
hashed repositories, either because they haven't upgraded to darcs 2 yet, or
because they aren't aware of the feature.
We have workarounds for (1) which we can discuss if you encounter them. Petr
Rockai's Google Summer of Code project should also solve (1) in the long term,
making hashed repos a lot more practical.
We've been making some progress in (2) by making --darcs-2 the default format
for Darcs 2.1 (--darcs-2 are hashed darcs 2 format repos; --hashed are hashed
darcs 1 format repos). This means that people that fetch repositories created
by Darcs 2.1 should no longer experience this kind of grief.
But what about repositories created by older versions of Darcs? These are going
to be around for a while, so our next plan is to make darcs get use the --hashed
flag by default. Your bug report has reminded us to make this a priority for
the Darcs 2.3 release in July. Once we do this, users like you will no
experience these kind of errors from case sensitivity issues on a case
insensitive file system.
In the meantime, the workaround is to use darcs get --hashed.
In the bigger picture, hashed repositories only fix the issue from the point of
view of keeping darcs repos consistent. Occasionally, you may get scary-looking
messages, which are not as bad as the "inconsistent state" ones when you read
them, but still look scary because they have the word "inconsistent" in them.
Ultimately, we need a better solution which lets us map the actual filename to
some internal filename. In Darcs 3, we plan to implement a plan by Ganesh to
give files some sort of unique ID internally and also implement this mapping.
But for all intents and purposes, forcing everybody to use these hashed repos
will effectively resolve the issue in the interim.

On Wed, Apr 29, 2009 at 16:00:19 -0000, Simon Peyton-Jones wrote:
> Noooooo! Two "your repo is in an inconsitent state" in one day. See
> below. This is Darcs 2.2.0 on Windows, and a very small repo (a paper
> I'm writing).
Sorry darcs is causing you so much grief, Simon.
Short answer
------------
Please use darcs get --hashed to fetch this repository.
I can confirm that getting without the hashed option breaks on Mac and
that getting it with hashed works.
Long answer
-----------
This error is caused by having a file called 'stackTransitions.pdf' and
'StackTransitions.pdf' in the same repository.
Thankfully, this issue has been resolved since the early days of darcs 2
if not during the darcs 2 release itself. The solution was the use of
these "hashed" repositories.
More on this in a later message.

Thanks for your prompt help. The darcs team are really good on that front!
Yes, getting with --hashed works fine. TRISTAN: no need for a new repo.
But you might want to consider some usability issues:
a) Rather than saying "darcs failed: File './stackTransitions.pdf' already exists!", could you not emit a message saying
"Looks as if your repo contains two files that differ only in
the case of their filename. Use darcs get --hashed"
b) Similarly, in the other case I had, the failure said that the repo was now in an inconsistent state. That's alarming, if (as was happily not the case) I'd had a lot of uncommitted changes in the tree. *Was* it inconsistent? Couldn't the message say something about using --hashed too?
[These suggestions apply even if --hashed is the default, in case you use --no-hashed.]
c) What *does* happen if you use --hashed and there are two files with the same name? Does one overwrite the other? Do you make X and X_0? Should darcs not at least tell the user that something presumably-unintended has happened. Silence is not golden here.
Simon
| -----Original Message-----
| From: Eric Kow [mailto:bugs@darcs.net]
| Sent: 29 April 2009 18:35
| To: dmitry.kurochkin@gmail.com; kowey@darcs.net; naur@post11.tele.dk;
| simon@joyful.com; Simon Peyton-Jones; tora@doc.ic.ac.uk
| Subject: [issue1453] case insensitivity and inconsistent state
|
|
| Eric Kow <kowey@darcs.net> added the comment:
|
| Here's the promised additional context.
|
| The short answer is "use hashed repositories".
|
| The medium length answer is "we are working to make people use hashed
| repositories without their having to know about them".
|
| Context: We fixed this sort of issue a long time ago (in darcs 2) by
| introducing hashed repositories. The remaining problems are (1) that hashed
| repositories can be slower in day to day usage and (2) people aren't using the
| hashed repositories, either because they haven't upgraded to darcs 2 yet, or
| because they aren't aware of the feature.
|
| We have workarounds for (1) which we can discuss if you encounter them. Petr
| Rockai's Google Summer of Code project should also solve (1) in the long term,
| making hashed repos a lot more practical.
|
| We've been making some progress in (2) by making --darcs-2 the default format
| for Darcs 2.1 (--darcs-2 are hashed darcs 2 format repos; --hashed are hashed
| darcs 1 format repos). This means that people that fetch repositories created
| by Darcs 2.1 should no longer experience this kind of grief.
|
| But what about repositories created by older versions of Darcs? These are going
| to be around for a while, so our next plan is to make darcs get use the --hashed
| flag by default. Your bug report has reminded us to make this a priority for
| the Darcs 2.3 release in July. Once we do this, users like you will no
| experience these kind of errors from case sensitivity issues on a case
| insensitive file system.
|
| In the meantime, the workaround is to use darcs get --hashed.
|
| In the bigger picture, hashed repositories only fix the issue from the point of
| view of keeping darcs repos consistent. Occasionally, you may get scary-looking
| messages, which are not as bad as the "inconsistent state" ones when you read
| them, but still look scary because they have the word "inconsistent" in them.
|
| Ultimately, we need a better solution which lets us map the actual filename to
| some internal filename. In Darcs 3, we plan to implement a plan by Ganesh to
| give files some sort of unique ID internally and also implement this mapping.
|
| But for all intents and purposes, forcing everybody to use these hashed repos
| will effectively resolve the issue in the interim.
|
| ----------
| priority: -> bug
| title: Inconsistent state -> case insensitivity and inconsistent state
|
| __________________________________
| Darcs bug tracker <bugs@darcs.net>
| <http://bugs.darcs.net/issue1453>
| __________________________________

On Wed, Apr 29, 2009 at 09:54:08PM +0000, Simon Peyton-Jones wrote:
> a) Rather than saying "darcs failed: File './stackTransitions.pdf'
> already exists!", could you not emit a message saying "Looks as
> if your repo contains two files that differ only in the case of
> their filename. Use darcs get --hashed"
Hopefully this is no longer a big issue, as --hashed is on by default
post-Darcs 2.2 (see issue1435). Thus it will only affect people who
explicitly darcs get --old-fashioned-inventory.
> [These suggestions apply even if --hashed is the default, in case
> you use --no-hashed.]
Granted.
> c) What *does* happen if you use --hashed and there are two files
> with the same name?
Tests welcome! :-)

A quick wrap-up: the workaround to this bug is to use hashed format repositories.
The discussion on this bug has uncovered another long-term issue where the
*working* directory can be corrupted. I have filed that as issue1461.
As for this particular bug here, there isn't any real solution, so I'm marking
this as wont-fix. Please use hashed repositories instead.