info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Case insensitivity ad nauseum


From: Steve McIntyre
Subject: Re: Case insensitivity ad nauseum
Date: Wed, 5 Nov 2003 15:33:51 +0000
User-agent: Mutt/1.3.28i

On Wed, Nov 05, 2003 at 10:11:45AM -0500, Jim.Hyslop wrote:
>
>It sounds like I'm going to be the sole dissenting voice here, at least so
>far. Let me explain my reasoning; it will be rather round-about, but please
>bear with me. It will (I hope) make sense in the end.

<snip>

>A file name is a label that a human applies to a particular entity called a
>"file". As I said earlier, case distinction in labelling entities is
>irrelevant. Case-preserving, case-insensitive file systems are, in my
>opinion, the correct way to model the world. In this respect Bill Gates
>actually did something *right* with Windows (let's not go into the myriad
>ways he went wrong - that's a whole other troll^H^H^H^H^H rant).

The problem with mixing case-sensitivity in this way is that it's just
about impossible to get right. The amount of work involved to do it
completely (and correctly) is horrendous. If you want an example, look
at the work the Samba team have to do to try and present a
case-insensitive view of a case-sensitive file system. And then
consider the whole gamut of different character sets and encodings out
there. Some systems do not have a one-to-one mapping from upper to
lower case and vice versa. If you want to do case-insensitivity
properly, it needs to be done all the way down. Anything else is a
grievous hack...

>As you have probably gathered, my background is almost entirely
>Windows-based. In case-sensitive (i.e. Unix) systems, what is the generally
>accepted practise with respect to naming files: is it generally considered
>bad practise to have two files with the same name, that differ only by case,
>in the same directory? My understanding is that the common practise on Unix
>is to use all lower-case names, to avoid potential confusion. Sounds to me
>like this is a manually-operated (and therefore error-prone) convention
>imposed in order to have, effectively, a case-insensitive, case-preserving
>file naming system ;-)

No, not at all. For example, of the 111 items in my home directory
right now, 17 of them use upper-case letters in a meaningful
way. Common practice is to name some things on Unix in a mixture of
cases, e.g. Makefile, Imakefile, ChangeLog.

>Let's build software that works the way people expect. On a
>case-insensitive, case-preserving file system such as Windows or (I believe)
>Mac OS, that means making the program smart enough to realize that "cvs rlog
>myproject" also means "cvs rlog MyProject". If you put it in, you
>unfortunately won't get a lot of Windows users saying "thank you for making
>it match the case", but if you leave it out you might get a lot of Windows
>users saying "WTF? Why am I getting an error with 'cvs rlog myproject'?
>Whaddya mean it's case-sensitive?!? What a stupid program!!"

Another point I'd like to make: labels are case-sensitive
already. Live with it. Most of the Mac/Windows people who will ever
have to cope with cvs on their platform not being case-insensitive are
going to be programmers _anyway_. And you sure as hell cannot go
randomly mixing case in C/C++/Java source code! The only
non-programmers I've ever seen using CVS on Windows were using a
pretty GUI front-end which would hide all the details from them anyway
and would get the case correct by default.

>It won't be easy, and I'm sure the problem is rather complex, but I truly
>believe the end results *will* be worth the extra effort involved.

And I'd strongly recommend losing the current set of kludges that we
have that only cause confusion.

-- 
Steve McIntyre, Cambridge, UK.                                address@hidden
Is there anybody out there?

Attachment: pgpiEsDB8yDed.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]