darcs

Issue 43 get"-ing a repository that contains an upper case file name fails on vfat filesystem

Title get"-ing a repository that contains an upper case file name fails on vfat filesystem
Priority not-our-bug Status resolved
Milestone Resolved in
Superseder Nosy List darcs-devel, dmitry.kurochkin, ijones, jch, kowey, markstos, thorkilnaur, tommy
Assigned To
Topics

Created on 2005-12-05.00:02:17 by ijones, last changed 2009-08-27.14:03:43 by admin.

Messages
msg163 (view) Author: ijones Date: 2005-12-05.00:02:15
Message from David Roundy:

>> "get"-ing a repository that contains an upper case file name fails on vfat filesystem
>> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=325693
>
> This is an odd one--I've never seen a bug report like it.

David, what do you think of the attached patch in the Debian bug
report?

peace,

  isaac
msg165 (view) Author: jch Date: 2005-12-05.04:27:24
I've seen this, and in my case it turned out to be a limiatation of
the Linux VFAT implementation.

Darcs is designed to work well on case-preserving filesystems, whether
case-sensitive (as traditional Unix filesystems) or not (as Mac OS X'
HFS+).  Darcs does not work on filesystems that don't preserve file
case.

If you create an all-caps file on a Linux VFAT filesystem that fits in
the 8+3 format, then Linux doesn't create a ``Long Filename'' (LFN),
but just maps it to an 8+3 filename.  The net effect is that if you do

  touch README
  ls

you will see a file ``readme'' in place of ``README''.

I have no idea if there are any ways to munt a VFAT filesystem to be
case-preserving.  It's also not clear to me whether Darcs can be made
to work on non-case-preserving filesystems.

As a workaround, you can use ``no-pristine-tree'' repositories on your
VFAT filesystems which will almost, but not quite, work around the
problem.

I'm deferring this bug for now, -- but that's only because we don't
have a WONTFIX status.  Feel free to reopen it if you have a workable
idea how to work around the issue.

                                        Juliusz
msg172 (view) Author: droundy Date: 2005-12-05.13:47:43
On Mon, Dec 05, 2005 at 12:02:17AM +0000, Isaac Jones wrote:
> >> "get"-ing a repository that contains an upper case file name fails on vfat filesystem
> >> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=325693
> >
> > This is an odd one--I've never seen a bug report like it.
> 
> David, what do you think of the attached patch in the Debian bug
> report?

I wasn't able to find the patch on the bug report, but Juliusz is our local
filesystem expert, so I generally defer to his advice on issues like this.
-- 
David Roundy
http://www.darcs.net
msg175 (view) Author: ijones Date: 2005-12-05.17:55:38
David Roundy <bugs@darcs.net> writes:

> David Roundy <droundy@darcs.net> added the comment:
>
> On Mon, Dec 05, 2005 at 12:02:17AM +0000, Isaac Jones wrote:
>> >> "get"-ing a repository that contains an upper case file name fails on vfat filesystem
>> >> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=325693
>> >
>> > This is an odd one--I've never seen a bug report like it.
>> 
>> David, what do you think of the attached patch in the Debian bug
>> report?
>
> I wasn't able to find the patch on the bug report, but Juliusz is our local
> filesystem expert, so I generally defer to his advice on issues like this.

Ah, sorry.  The patch was on the 'socket' report.

peace,

  isaac
msg243 (view) Author: droundy Date: 2005-12-18.12:28:12
I have an idea how we could work around this.  Once we have a
non-filesystem-based pristine cache (e.g. halfs), we could use that to apply the
patches first to the pristine cache when running get, and then cloneSlurpy or
something to generate the working directory.  It's just one more (of many)
reason why having some sort of database/flat-file pristine cache would be
useful.  Anything to insulate us from the vagaries of the filesystem.

David.
msg254 (view) Author: ijones Date: 2005-12-21.17:45:50
David Roundy <bugs@darcs.net> writes:

> David Roundy <droundy@darcs.net> added the comment:
>
> I have an idea how we could work around this.  Once we have a
> non-filesystem-based pristine cache (e.g. halfs), we could use that to apply the
> patches first to the pristine cache when running get, and then cloneSlurpy or
> something to generate the working directory.  It's just one more (of many)
> reason why having some sort of database/flat-file pristine cache would be
> useful.  Anything to insulate us from the vagaries of the filesystem.

I will continue to push to get Halfs released.  Maybe I can work on it
over the break (next week).

pax
msg2590 (view) Author: markstos Date: 2008-01-19.06:35:38
I believe this is resolved-in-unstable when using the new hashed or darcs-2 repo
formats.
msg2592 (view) Author: droundy Date: 2008-01-19.12:27:41
That is correct.
History
Date User Action Args
2005-12-05 00:02:17ijonescreate
2005-12-05 04:27:25jchsetstatus: unread -> unknown
nosy: + jch
messages: + msg165
2005-12-05 04:28:01jchsetnosy: - 325693
2005-12-05 13:47:43droundysetmessages: + msg172
2005-12-05 17:55:38ijonessetmessages: + msg175
2005-12-17 21:59:53jchsetpriority: wishlist -> not-our-bug
2005-12-18 12:28:13droundysetmessages: + msg243
2005-12-21 17:45:51ijonessetmessages: + msg254
2008-01-19 06:35:39markstossetstatus: unknown -> resolved-in-unstable
nosy: + markstos, kowey, beschmi
messages: + msg2590
2008-01-19 12:27:42droundysetnosy: droundy, jch, tommy, beschmi, kowey, markstos, ijones
messages: + msg2592
2008-09-04 21:27:47adminsetstatus: resolved-in-unstable -> resolved
nosy: + dagit
2009-08-06 17:48:43adminsetnosy: + jast, Serware, dmitry.kurochkin, darcs-devel, zooko, mornfall, simon, thorkilnaur, - droundy, jch, ijones
2009-08-06 20:46:57adminsetnosy: - beschmi
2009-08-10 22:03:15adminsetnosy: + ijones, jch, - darcs-devel, zooko, jast, Serware, mornfall
2009-08-11 00:00:16adminsetnosy: - dagit
2009-08-25 18:00:32adminsetnosy: + darcs-devel, - simon
2009-08-27 14:03:43adminsetnosy: jch, tommy, kowey, markstos, darcs-devel, ijones, thorkilnaur, dmitry.kurochkin