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

Interesting case-insesitivity on Win32

From: Dan Nawrocki <dnawrocki_at_prologic-inc.com>
Date: 2004-10-28 17:08:26 CEST

I have found an interesting side effect of win32 case-insesitivity that
might be a bug, or at least put into the documentation as a "don't do
that". I didn't see anything when I read the book (but it's been a few
months, so it could be there now). Here is the recipe:
 
 
D:\test_project>echo > test.txt <-- exactly the same as "touch"
 
D:\test_project>svn st
A test.txt
 
D:\test_project>del test.txt <-- delete the file without
letting svn know
 
D:\test_project>echo > Test.txt
 
D:\test_project>svn st <-- makes sense, svn isn't case
sensitive
? Test.txt
A test.txt
 
D:\test_project>svn add Test.txt <-- this shouldn't work on win32 -
"test.txt" has already been added
A Test.txt
 
D:\test_project>svn st <-- uh-oh
A test.txt
A Test.txt
 
D:\test_project>svn ci -m ""
Adding Test.txt
Adding test.txt
Transmitting file data ..
Committed revision 121.
 
D:\test_project>svn st
 
D:\test_project>echo asdf > Test.txt <-- add some text to
"Test.txt" so we can commit it
 
D:\test_project>svn st <-- odd, both files come up as modified
even though "test.txt" technically doesn't exist
M test.txt
M Test.txt
 
D:\test_project>svn ci -m ""
Sending Test.txt
Sending test.txt
Transmitting file data ..svn: Commit failed (details follow):
svn:
Base checksum mismatch on '/test_project/test.txt':
   expected: d41d8cd98f00b204e9800998ecf8427e
     actual: 8be122a18070559c43baa038bae94be3
 
 
Here is what I think went on during the commit: "Test.txt" was commited
successfully, but when svn attempted to commit "test.txt", it found the
checksums have changed. The "actual checksum" for "test.txt" is the
same as the new checksum for "Test.txt"; the "expected checksum"
corresponds to the checksum in the previous revision (as it should).
 
 
To fix this, I had to create a *new* working copy of the directory, "svn
del test.txt", commit, then manually merge changes I made in the
original "Test.txt" into the new working copy, then commit again.
 
 
I am using svn 1.1.0 (r11180), installed from the win32 binary package.
Server is running on my machine under apache 2.0.50 with the same
installation of svn.
 
 
Dan
Received on Thu Oct 28 17:10:02 2004

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.