darcs

Issue 264 case insensitivity (?) + buggy pending

Title case insensitivity (?) + buggy pending
Priority bug Status resolved
Milestone Resolved in
Superseder Nosy List darcs-devel, dmitry.kurochkin, kowey, salvatore, thorkilnaur, tommy
Assigned To
Topics

Created on 2006-09-09.13:34:52 by salvatore, last changed 2009-08-27.14:10:57 by admin.

Messages
msg982 (view) Author: salvatore Date: 2006-09-09.13:34:48
Please consider the repository stored in the following URL:

http://www.iovene.com/Rarilliamo-0.1.tar.bz2

Doing "darcs record" fails with the following:

darcs: ./src/pixmaps/status/16X16/available16.png-0:
takeFile ./src/pixmaps/status/16X16/available16.png-0
in /home/siovene/Rarilliamo-0.1/_darcs/pristine: openFd: does not exist
(No such file or directory)

This has happened after I modified my directory structure like this:

src/pixmaps/status/available.png
src/pixmaps/status/offline.png

became:

src/pixmaps/status/16X16/available16.png
src/pixmaps/status/16X16/offline16.png

Repairing the repository would work, but after the record (which fails),
the repository is inconsistent.

This problem has been fixed for me thanks to the help of kowey on IRC,
but this might be a bug in darcs.
msg983 (view) Author: kowey Date: 2006-09-09.13:47:21
On Sat, Sep 09, 2006 at 13:34:52 +0000, Salvatore Iovene wrote:
> This problem has been fixed for me thanks to the help of kowey on IRC,
> but this might be a bug in darcs.

Actually, no.  I made a mistake.  What I tried was this:

1) darcs getting a new copy of the repository
2) clobbering the src directory with the one from the working dir of
   the troubled repo
3) doing a record in the new copy

But this gave me this error message, which I interpreted as
being an interesting but otherwise harmless warning 

darcs: ./src/pixmaps/status/16X16: createDirectory: already exists (File
exists)

(Silly me, things like that should _always_ raise an eyebrow)

So this means more investigative work to do
msg984 (view) Author: kowey Date: 2006-09-09.14:26:32
This appears to be a case-sensitivity issue after all.
Observe that the pristine has
 src/pixmaps/status/16x16
and working has
 src/pixmaps/status/16X16 (with a capital X)

Here's something which can be used as a new test case
 darcs init
 touch a
 darcs add a
 darcs record -m "add a"
 ls _darcs/pristine # so far so good
 mv a A
 darcs record -l -m "manually rename a to A"
 ls _darcs/pristine # uh-oh! neither a nor A 

I would be inclined to believe that issue234 is related to this.
msg985 (view) Author: kowey Date: 2006-09-09.19:54:03
> This appears to be a case-sensitivity issue after all.

Well no, it's a bit more subtle than that...

Although there is a case-sensitivity issue (see the example) in darcs,
this particular issue might not be related to it (not sure yet).

The idea is that somehow, darcs can be fooled into trying to add stuff
into a directory it hasn't added yet, and that, it deals with rather
poorly.  If have another hokey 'minimal' example that half-way explains
the problem (the pending is weird!).

darcs init
mkdir foo
touch foo/bar
darcs add foo/bar
# here's the hokey part
sed -e '/adddir/d' _darcs/patches/pending > _darcs/patches/pending.weird
mv _darcs/patches/pending.weird _darcs/patches/pending
# and now here we get the same takeFile error
darcs record -l

The question that remains is how did the pending get this way in the
first place?  Here I forced it by hand-editing the pending, but somehow
darcs was able to get into a buggy pending state without knowing it.
msg986 (view) Author: kowey Date: 2006-09-09.19:57:08
On Sat, Sep 09, 2006 at 21:54:36 +0200, Eric Y. Kow wrote:
> The question that remains is how did the pending get this way in the
> first place?  Here I forced it by hand-editing the pending, but somehow
> darcs was able to get into a buggy pending state without knowing it.

I forgot to mention:

1. There is a pending.new which contains the adddir we are looking for
2. Salvatore is using Linux/Reiserfs.  No reason to think that case is
   at stake here.
msg1877 (view) Author: kowey Date: 2007-07-19.10:38:22
I believe this one is resolved in the stable branch as well, because it involves
adding a file into a directory that has not been added yet.  If I recall
correctly, David's patch notices the situation

Sat Dec  9 23:39:16 CET 2006  David Roundy <droundy@darcs.net>
  * fix pending bug that broke several_commands.sh.

But we'll need somebody to test it out to be sure
History
Date User Action Args
2006-09-09 13:34:52salvatorecreate
2006-09-09 13:47:27koweysetstatus: unread -> unknown
nosy: droundy, tommy, kowey, salvatore
messages: + msg983
2006-09-09 14:26:37koweysetnosy: droundy, tommy, kowey, salvatore
messages: + msg984
2006-09-09 19:54:07koweysetnosy: droundy, tommy, kowey, salvatore
messages: + msg985
2006-09-09 19:57:14koweysetnosy: droundy, tommy, kowey, salvatore
messages: + msg986
2007-03-09 11:31:39koweysetnosy: + beschmi
title: darcs record" makes repository inconsistent -> case insensitivity (?) + buggy pending
2007-07-19 10:38:25koweysetstatus: unknown -> resolved-in-stable
nosy: droundy, tommy, beschmi, kowey, salvatore
messages: + msg1877
2008-09-16 21:30:19adminsetstatus: resolved-in-stable -> resolved
nosy: + dagit
2009-08-06 17:50:38adminsetnosy: + markstos, jast, Serware, dmitry.kurochkin, darcs-devel, zooko, mornfall, simon, thorkilnaur, - droundy, salvatore
2009-08-06 20:51:50adminsetnosy: - beschmi
2009-08-10 21:55:27adminsetnosy: + salvatore, - markstos, darcs-devel, zooko, jast, Serware, mornfall
2009-08-10 23:56:03adminsetnosy: - dagit
2009-08-25 18:01:57adminsetnosy: + darcs-devel, - simon
2009-08-27 14:10:57adminsetnosy: tommy, kowey, darcs-devel, salvatore, thorkilnaur, dmitry.kurochkin