Issue1203

Title Problems with Uppercase Directory when cloning onto FAT32 USB stick and cloning onward to ext3
Priority bug Status done-cbb
Superseder Nosy List ArneBab, abuehl, gavenkoa, mpm
Assigned To Topics casefolding

Created on 2008-06-26.15:06:08 by ArneBab, last changed 2008-10-18.19:38:33 by mpm.

Messages
msg7523 (view) Author: mpm Date: 2008-10-18.19:38:33
Marking this done-cbb - we're unlikely to be able to fix this in hg and a
workaround exists.
msg6477 (view) Author: gavenkoa Date: 2008-07-06.20:00:38
HG has has problem on vfat with filenames (not only dirnames) which fit into 8.3
characters.
By default (as say msg6420 ) uppercase name translated in lowercase, for example
`README' file look like `readme' and as in Linux hg do not manage it.

To resolve this use mount -t vfat -o shortname=winnt.
I think this enough.

Also who use fat32 on Linux get issue1172 .
msg6424 (view) Author: mpm Date: 2008-06-26.17:59:22
See http://www.selenic.com/mercurial/wiki/index.cgi/UpgradeNotes

In 0.9.2, we introduced a new repository layout that's used by all new repos and
all clones that don't use hardlinks. If your repo contains a .hg/store
directory, it's using the new format. In that directory, there are no files with
uppercase letters because they're all escaped with '_'.

If instead you have a .hg/data directory, you're using the old layout still, and
file names in the repository may be mixed-case and thus potentially damaged by
Linux's default VFAT mount options.

In either case, the filenames in the -working directory- may also be potentially
damaged by Linux's default VFAT mount options, where names that fit in 8.3 are
always converted to lowercase.
msg6423 (view) Author: ArneBab Date: 2008-06-26.17:41:07
I just checked it, and it might well be an old version bug. 

The original clone was done with Mercurial 1.0 while the second clone was done 
with Mercurial 0.9.4 (that's the version available on the OLPC XO). 

Do later versions fix this? 

Many thanks for checking! 

Arne
msg6421 (view) Author: abuehl Date: 2008-06-26.16:07:18
I successfully cloned http://edrikor.dyndns.org:8007/ using 626cb86a6523 to
Windows (NTFS), so no reserved names.
For the list of 3 letter reserved names see:
http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
But these are reserved by Windows, not by FAT32 (I think).
msg6420 (view) Author: mpm Date: 2008-06-26.15:52:34
If the affected directories are in the store, you may be using an old version of
Mercurial.

If the affected directories are in the working dir, this is probably a Linux
kernel bug. From mount(8)'s section on mount options:

       shortname=[lower|win95|winnt|mixed]

              Defines the behaviour for  creation  and  display  of  filenames
              which fit into 8.3 characters. If a long name for a file exists,
              it will always be preferred display. There are four modes:

              lower  Force the short name to lower case upon display; store  a
                     long name when the short name is not all upper case.

              win95  Force  the short name to upper case upon display; store a
                     long name when the short name is not all upper case.

              winnt  Display the shortname as is; store a long name  when  the
                     short name is not all lower case or all upper case.

              mixed  Display  the short name as is; store a long name when the
                     short name is not all upper case.

       The default is "lower".
msg6419 (view) Author: ArneBab Date: 2008-06-26.15:06:06
Hi, 

I tried cloning a Mercurial repository which contained a 3 letter all-uppercase 
directory onto a USB stick and cloning from that onto an ext3 file system. 

It cloned quite well, but it didn't update the workdir. 

When looking into the store I found that two uppercase directories had turned 
to lowercase directories on FAT32, and had stayed lowercase when I cloned them 
onto ext3. 

I got it working by manually renaming the two directories to be all uppercase 
again. 

Other mixed case directories stayed mixed case. 

Both directories had been 3 letter directories, so this might also have to do 
with reserved names somehow, but I don't know enough about that to be sure. 

All machines were Linux machines (Gentoo (amd64 desktop) and Fedora (OLPC-XO)). 

Steps to reproduce: 
- hg clone http://edrikor.dyndns.org:8007/ USB_STICK/game_rpg
- hg clone USB_STICK/game_rpg  EXT3_DISK/game_rpg

Can you verify the problem?
History
Date User Action Args
2008-10-18 19:38:33mpmsetstatus: chatting -> done-cbb
nosy: mpm, ArneBab, abuehl, gavenkoa
messages: + msg7523
2008-07-06 20:00:38gavenkoasetnosy: + gavenkoa
messages: + msg6477
2008-06-26 17:59:23mpmsetnosy: mpm, ArneBab, abuehl
messages: + msg6424
2008-06-26 17:41:07ArneBabsetstatus: unread -> chatting
nosy: mpm, ArneBab, abuehl
messages: + msg6423
2008-06-26 16:07:19abuehlsetstatus: chatting -> unread
nosy: + abuehl
messages: + msg6421
2008-06-26 15:52:35mpmsetstatus: unread -> chatting
nosy: + mpm
messages: + msg6420
2008-06-26 15:06:08ArneBabcreate