[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Re[2]: CaSe insensetive OS not handled well

From: Christopher Ness <chris_at_nesser.org>
Date: 2005-08-22 22:09:02 CEST

On Mon, 2005-08-22 at 21:52 +0300, Flex wrote:
> > Not to be rude, but SVN allows you to reject mixed case commits with a
> > hook script, but it will _never_ modify the transactions you create for
> > commits.
> Yeah, it only rejects them, while the truth for the NCS system is that
> it has to accept both without damaging anything. I have said how, he has
> said it too.

You have said a comparison should happen, very well, but where? The
server cannot modify a transaction so all that is left is the clients.

Even if you are able to get the client to munge the transaction before
sending it to the server how do you know that 'FiLe.c' is not really
'File.c'? You could force all lower case names in the client with your
suggested switch, but there are infinitely many clients available as
well as language bindings.

How do you propose to handle all the possible clients and force them to
be consistent based on the servers abilities?
An absurd parallel would be to ask a web server to trust all web
browsers to send a valid request. Which is idealistic, and leads to
security problems.

It wouldn't be difficult to write a rogue client to break the
all-lower-case assumption and possibly corrupt the repository.

AFAIK this is why the rejection of the transaction on the server is the
best solution so far.

> Poor development tools? If a development tool in a CS system generates
> different case files then it is poor, but when the system is not it's
> not a dev tool fault, it's not anybody's fault. Now, svn is written

How can it not be anybodies fault? Someone/thing must have changed the
case of the file in the process of modifying it. As Ralph Wiggum would
say "That is unpossible!" ;)

Non-deterministic behaviour is a broad definition of an error for highly
reliable systems.

> [Now, svn is written]
> with *nix in mind and not handling windows or macos well. So consider

That is untrue. Many SVN developers and users use Windows and Macs.
Also note that it _is_ possible to use a case insensitive file system in
Unix or Mac (FAT). It just isn't the general case.
Could the same also be said about Windows? Surely someone must have
written a case sensitive file system for Windows.

> changing sides - if someone has written svn with windows in mind and
> it has no support for case at all - then should someone say "don't
> touch it, it's fine, they have to realize that file.c and File.c are
> the same? This is stupid, there are *no* crappy dev tools, crappy

Patches are reviewed, critiqued and then accepted!

Invitations like above are often the result of these conversations. But
for whatever reason, no one seems to have the skills or ability to
architect and implement a clear and consistent solution. That is -- not
just a cheap hack to put in a client switch.

That last sentence is a carrot to motivate people to do something about

These discussions tend to become religious flames, so I'll read any
replies, but doubt I'll post my opinion on list again.


Wireless Group
McMaster University
15:10:09 up 32 days, 1:03, 4 users, load average: 0.35, 0.15, 0.17
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Mon Aug 22 22:11:46 2005

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.