You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Eric Lemes <er...@gmail.com> on 2006/10/05 21:37:56 UTC
Windows case-sensitive filesystem issues
Wow.. that's great.
svnadmin create c:\svn\test
svn checkout http://localhost:8080/svn/test test1
copy c:\test.txt .\test.txt
svn add test.txt
svn commit -m "Test"
del .\test.txt
copy c:\test.txt .\TEST.TXT
svn add test.txt
svn commit -m "Test"
svn checkout http://localhost:8080/svn/test test2
A test2\TEST.TXT
A test2\test.txt
svn: In directory 'test2'
svn: Can't copy 'test2\_svn\tmp\text-base\test.txt.svn-base' to
'test2\_svn\tmp\
test.txt.tmp.tmp': The system cannot find the file specified.
In the server side, I got two files, test.txt and TEST.TXT. Windows client
cannot checkout both in the same dir.
Is there any way to workaround this? Can I consider this a bug?
Thanks,
Eric
Re: Windows case-sensitive filesystem issues
Posted by Ryan Schmidt <su...@ryandesign.com>.
On Oct 5, 2006, at 17:17, Vineet Kumar wrote:
> Ryan Schmidt wrote:
>
>> On Oct 5, 2006, at 16:37, Eric Lemes wrote:
>>
>>> svnadmin create c:\svn\test
>>>
>>> svn checkout http://localhost:8080/svn/test test1
>>> copy c:\test.txt .\test.txt
>>> svn add test.txt
>>> svn commit -m "Test"
>>>
>>> del .\test.txt
>>> copy c:\test.txt .\TEST.TXT
>>> svn add test.txt
>>> svn commit -m "Test"
>>>
>>> svn checkout http://localhost:8080/svn/test test2
>>> A test2\TEST.TXT
>>> A test2\test.txt
>>> svn: In directory 'test2'
>>> svn: Can't copy 'test2\_svn\tmp\text-base\test.txt.svn-base' to
>>> 'test2\_svn\tmp\
>>> test.txt.tmp.tmp': The system cannot find the file specified.
>
>> The fact that you can have a local file called TEST.TXT, do "svn add
>> test.txt", and Subversion adds it to the repository as test.txt
>> instead of as TEST.TXT, is IMHO a bug.
>
> Is there a bug here? It looks like the second time, Eric typed
> "svn add test.txt", but the file was named TEST.TXT, and subversion
> added it as TEST.TXT. I agree that if subversion added it as test.txt
> that would be a bug, but I don't see any evidence that that's what
> subversion is doing.
$ cd /tmp
$ svnadmin create testrepo
$ svn co file:///tmp/testrepo testwc
Checked out revision 0.
$ cd testwc
$ touch FOO.TXT
$ svn add foo.txt
A foo.txt
$ svn ci -m ""
Adding foo.txt
Transmitting file data .
Committed revision 1.
$ ls
FOO.TXT
$ svn ls file:///tmp/testrepo
foo.txt
$
Working copy contains FOO.TXT but repository ends up containing
foo.txt == potential unpleasantness.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: Windows case-sensitive filesystem issues
Posted by Vineet Kumar <vi...@doorstop.net>.
* Ryan Schmidt (subversion-2006d@ryandesign.com) [061005 14:43]:
> On Oct 5, 2006, at 16:37, Eric Lemes wrote:
>
> >svnadmin create c:\svn\test
> >
> >svn checkout http://localhost:8080/svn/test test1
> >copy c:\test.txt .\test.txt
> >svn add test.txt
> >svn commit -m "Test"
> >
> >del .\test.txt
> >copy c:\test.txt .\TEST.TXT
> >svn add test.txt
> >svn commit -m "Test"
> >
> >svn checkout http://localhost:8080/svn/test test2
> >A test2\TEST.TXT
> >A test2\test.txt
> >svn: In directory 'test2'
> >svn: Can't copy 'test2\_svn\tmp\text-base\test.txt.svn-base' to
> >'test2\_svn\tmp\
> >test.txt.tmp.tmp': The system cannot find the file specified.
> The fact that you can have a local file called TEST.TXT, do "svn add
> test.txt", and Subversion adds it to the repository as test.txt
> instead of as TEST.TXT, is IMHO a bug.
Is there a bug here? It looks like the second time, Eric typed
"svn add test.txt", but the file was named TEST.TXT, and subversion
added it as TEST.TXT. I agree that if subversion added it as test.txt
that would be a bug, but I don't see any evidence that that's what
subversion is doing.
good times,
Vineet
--
http://www.doorstop.net/
--
#include<stdio.h>
int main() {
puts("Reader! Think not that \n"
"technical information \n"
"ought not be called speech;");
return 0;
}
Re: Windows case-sensitive filesystem issues
Posted by Duncan Murdoch <mu...@stats.uwo.ca>.
On 10/6/2006 1:32 PM, Eric Lemes wrote:
> 2006/10/6, Ted Dennison <de...@ssd.fsi.com>:
>>
>>
>>
>> If it were up to me, I'd want Win32 builds of SVN client tools to be
>> case-insensitive. I realize that would probably cause problems for
>> others though.
>>
>
> I think this must be some kind of configuration in the repository, this is
> why I don't think a hook script approach isn't wrong.
>
> I can have a SVN windows server, with repos for applications built under
> linux and vice-versa.
I think that's a different issue: the files in the repos are never
named as files in the host file system, just as database records (BDB)
or numeric filenames (FSFS). Internally the svn server maintains a
case-sensitive internal file system regardless of where it is hosted.
Duncan Murdoch
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: Windows case-sensitive filesystem issues
Posted by Eric Lemes <er...@gmail.com>.
2006/10/6, Ted Dennison <de...@ssd.fsi.com>:
>
>
>
> If it were up to me, I'd want Win32 builds of SVN client tools to be
> case-insensitive. I realize that would probably cause problems for
> others though.
>
I think this must be some kind of configuration in the repository, this is
why I don't think a hook script approach isn't wrong.
I can have a SVN windows server, with repos for applications built under
linux and vice-versa.
Eric
Re: Windows case-sensitive filesystem issues
Posted by Ted Dennison <de...@ssd.fsi.com>.
Ed Price wrote:
> I'd like to agree but I'm not so sure...
> Should it always use the "real" case of the file (whatever that means).
> Or should it always use the name *specified by the user*?
> Maybe you're right, I don't know...
The worst problem I've had with this was in trying to develop a SCC
implementation. VisualStudio doesn't necessarily provide the
capitalization for files and directories that actually exists on the
filesystem. The SVN API seems to require the capitalization that is used
in the repository, or bad things happen. I could work around that by
compiling a big list of the proper filenames for everything and
searching for the proper match for every file VS gives me, but that's
really slow, and doesn't work for new files.
If it were up to me, I'd want Win32 builds of SVN client tools to be
case-insensitive. I realize that would probably cause problems for
others though.
--
T.E.D. Work - mailto:dennison@ssd.fsi.com
Home - mailto:dennison@telepath.com (Yahoo: Ted_Dennison)
Homepage - http://www.telepath.com/~dennison/Ted/TED.html
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: Windows case-sensitive filesystem issues
Posted by Ed Price <ed...@gmail.com>.
> > The fact that you can have a local file called TEST.TXT, do "svn add
> > test.txt", and Subversion adds it to the repository as test.txt
> > instead of as TEST.TXT, is IMHO a bug.
>
> IMO, it's a bug.
I'd like to agree but I'm not so sure...
Should it always use the "real" case of the file (whatever that means).
Or should it always use the name *specified by the user*?
Maybe you're right, I don't know...
I *do* think that the horrendous error message is a bug:
> svn: Can't copy 'test2\_svn\tmp\text-base\test.txt.svn-base' to 'test2\_svn\tmp\
> test.txt.tmp.tmp': The system cannot find the file specified.
I've been bitten by this issue in the past and what really bothered
me more than the inability to check out was that it took such an
annoyingly long time before I figured out what the problem was.
It would be nice if svn client could give a more helpful error message.
There does appear to be an issue for this:
http://subversion.tigris.org/issues/show_bug.cgi?id=2010
See also:
http://subversion.tigris.org/issues/show_bug.cgi?id=667
-ed
[PS resent to list, sorry to Eric for the dupe...]
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: Windows case-sensitive filesystem issues
Posted by Eric Lemes <er...@gmail.com>.
2006/10/5, Ryan Schmidt subversion-2006d@ryandesign.com:
>
>
> The Subversion repository is case-sensitive, so it has no problem
> storing files whose names differ only in case. The usual Windows and
> Mac OS X filesystems do have problems with this because they are case-
> insensitive (but case-preserving).
>
> You can install a pre-commit hook to prevent someone from committing
> a file whose name differs only in case from that of an existing file
> in the repository. But you would have to write the script, or find
> one that someone else has already written.
>
> The fact that you can have a local file called TEST.TXT, do "svn add
> test.txt", and Subversion adds it to the repository as test.txt
> instead of as TEST.TXT, is IMHO a bug.
IMO, it's a bug.
I think if SVN is multi-platform, It may handle these kind of issues easily.
Somethink like a repository creation option, switch, configuration, not a
hook script.
But I think the pre-commit hook will solve my problem. One more
administrative issue for someone handle.
Eric
Re: Windows case-sensitive filesystem issues
Posted by Nathan Kidd <na...@spicycrypto.ca>.
Ryan Schmidt wrote:
> On Oct 5, 2006, at 16:37, Eric Lemes wrote:
>> In the server side, I got two files, test.txt and TEST.TXT. Windows
>> client cannot checkout both in the same dir.
>
> You can install a pre-commit hook to prevent someone from committing a
> file whose name differs only in case from that of an existing file in
> the repository. But you would have to write the script, or find one that
> someone else has already written.
Such as those in:
http://svn.collab.net/viewvc/svn/tags/1.4.0/contrib/hook-scripts/
I personally like case-insensitive.py
http://svn.collab.net/viewvc/svn/tags/1.4.0/contrib/hook-scripts/case-insensitive.py?revision=19524&view=markup
-Nathan
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: Windows case-sensitive filesystem issues
Posted by Ryan Schmidt <su...@ryandesign.com>.
On Oct 5, 2006, at 16:37, Eric Lemes wrote:
> svnadmin create c:\svn\test
>
> svn checkout http://localhost:8080/svn/test test1
> copy c:\test.txt .\test.txt
> svn add test.txt
> svn commit -m "Test"
>
> del .\test.txt
> copy c:\test.txt .\TEST.TXT
> svn add test.txt
> svn commit -m "Test"
>
> svn checkout http://localhost:8080/svn/test test2
> A test2\TEST.TXT
> A test2\test.txt
> svn: In directory 'test2'
> svn: Can't copy 'test2\_svn\tmp\text-base\test.txt.svn-base' to
> 'test2\_svn\tmp\
> test.txt.tmp.tmp': The system cannot find the file specified.
>
> In the server side, I got two files, test.txt and TEST.TXT. Windows
> client cannot checkout both in the same dir.
>
> Is there any way to workaround this? Can I consider this a bug?
The Subversion repository is case-sensitive, so it has no problem
storing files whose names differ only in case. The usual Windows and
Mac OS X filesystems do have problems with this because they are case-
insensitive (but case-preserving).
You can install a pre-commit hook to prevent someone from committing
a file whose name differs only in case from that of an existing file
in the repository. But you would have to write the script, or find
one that someone else has already written.
The fact that you can have a local file called TEST.TXT, do "svn add
test.txt", and Subversion adds it to the repository as test.txt
instead of as TEST.TXT, is IMHO a bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: Windows case-sensitive filesystem issues
Posted by Duncan Murdoch <mu...@stats.uwo.ca>.
On 10/5/2006 5:37 PM, Eric Lemes wrote:
> Wow.. that's great.
>
> svnadmin create c:\svn\test
>
> svn checkout http://localhost:8080/svn/test test1
> copy c:\test.txt .\test.txt
> svn add test.txt
> svn commit -m "Test"
>
> del .\test.txt
> copy c:\test.txt .\TEST.TXT
> svn add test.txt
> svn commit -m "Test"
>
> svn checkout http://localhost:8080/svn/test test2
> A test2\TEST.TXT
> A test2\test.txt
> svn: In directory 'test2'
> svn: Can't copy 'test2\_svn\tmp\text-base\test.txt.svn-base' to
> 'test2\_svn\tmp\
> test.txt.tmp.tmp': The system cannot find the file specified.
>
> In the server side, I got two files, test.txt and TEST.TXT. Windows client
> cannot checkout both in the same dir.
>
> Is there any way to workaround this? Can I consider this a bug?
There's an FAQ item on this issue:
http://subversion.tigris.org/faq.html#case-change
The workarounds are to use a different filesystem, or to do a server
side move of one of the files to a name that doesn't conflict, etc.
Duncan Murdoch
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org