Kalle-Alms-MacBook-Pro:trunk me$ svn st ? build ? universe.orig ? scratchpad.rtf M asynchro.xcodeproj/user.perspectivev3 M asynchro.xcodeproj/project.pbxproj M asynchro.xcodeproj/user.pbxuser ? Classes/multilineTableViewController.h ? Classes/multilineTableViewController.m M Classes/gridreaderViewController.h M Classes/gridreaderViewController.m M Classes/mgXMLWorld.h M Classes/mgXMLWorld.m ! Classes/MultilineTableViewController.h ! Classes/MultilineTableViewController.m ? tavern/world.xml ? universe/uni.jpg-files M asynchro-Info.plist ? examples/stiles
Oh, right, I renamed that “MultilineTableViewController” to “multilineTableViewController” (lowercase M) because everything else has lower-case-initial-letter.
Kalle-Alms-MacBook-Pro:trunk me$ svn rm Classes/MultilineTableViewController.h D Classes/MultilineTableViewController.h Kalle-Alms-MacBook-Pro:trunk me$ svn rm Classes/MultilineTableViewController.m D Classes/MultilineTableViewController.m
Great! Let’s add the new lower-case one to SVN now while at it…
Kalle-Alms-MacBook-Pro:trunk me$ svn add Classes/mult*tab**tab**tab**beep**beep*
Hm?
Kalle-Alms-MacBook-Pro:trunk me$ svn add Classes/*tab**tab* .DS_Store gridreaderViewController.h mgImageSourceRequest.m mgScrollView.m muddyGrid.m .svn/ gridreaderViewController.m mgImageView.h mgWindow.h tile.h UIImage+Scaling.h gridreaderViewController.xib mgImageView.m mgWindow.m tile.m UIImage+Scaling.m mg2DTileSet.h mgMinimap.h mgXMLParser.h worldViewController.h fileIO.h mg2DTileSet.m mgMinimap.m mgXMLParser.m worldViewController.m fileIO.m mgImageSource.h mgMinimapButton.h mgXMLWorld.h gridreaderAppDelegate.h mgImageSource.m mgMinimapButton.m mgXMLWorld.m gridreaderAppDelegate.m mgImageSourceRequest.h mgScrollView.h muddyGrid.h
Wait.
Where’s my class…?
Turns out SVN fucktardedly presumed “oh im shure he ment delt da fl thats lcase here insted lolstfucoksknmfur”. Luckily I had the files in memory.
The wonderful adventure continues.
svn: Failed to add file 'foo/Doc-credits.png': an unversioned file of the same name already exists Kalle-Alms-MacBook-Pro:iphone me$ rm foo/Doc-Credits.png Kalle-Alms-MacBook-Pro:iphone me$ svn up Restored 'foo/Doc-Credits.png' svn: Failed to add file 'foo/Doc-credits.png': an unversioned file of the same name already exists Kalle-Alms-MacBook-Pro:iphone me$ masturbate furiously -bash: masturbate: command not found
This time, the file Doc-Credits.png exists and the file Doc-credits.png needs to be added.
For the record, Mac OS X is at fault here — Apple decided to “be compatible” with Windows and not allow filenames of the same size with different capitalization, which *NIX does allow.
That doesn’t make SVN any less retarded though. After all, it’s running on the OS, so it should know the OS.
I have to tell ya kb, “delt da fl thats lcase here insted lolstfucoksknmfur” took me a while to decipher, and I’m still only sure of about half of it, but it’s an amusing post… glad to see you sharing again
LOL! Yeah I see what you mean. I sort of presumed noone would pull it off, to be honest.
Kalle, touk me liek 15 sec to die-zypher teh mess-age. Purrhapz I has hanged round with LOLcatz 2 much.
I R B/tard
Haha, well, okay, I DID expect you to pull it off, but noone else.
Ahem…
http://svnbook.red-bean.com/en/1.5/svn.ref.svn.c.delete.html says:
“The command will not remove any unversioned or modified items”
Ergo: if you’d saved the file you were editing, you would probably have gotten an error message from svn.
All scm:s does the same… actually bazaar even allows you to delete files outside the scm, and then notes it as deleted on the next commit… unsure what hq and git does in the same situation… svn complains…
Oh, and no, I don’t get the “lostfuckmumblemumblewhatever…*#!” ;o)
/E
P.s. sorry… yeah, and since the file was freshly committed (in svn’s eyes) you just have to restore it… D.s.
P.p.s. didn’t svn mv work? perhaps you have to rename the new file outside svn, rename the old with svn, and then copy over the old with the new… if you get me…
ok, like such:
mv MultilineTableViewController.h MultilineTableViewController-my_new.h
svn mv MultilineTableViewController.h multilineTableViewController.h
svn co
mv MultilineTableViewController-my_new.h multilineTableViewController.h
etc. D.d.s.
P.p.p.s. oh, and sorry for being a total Messerschmidt
.d.d.s.
Erik: yeah, that’s the problem.
I had a file called “Monkey” which I renamed to “monkey”. SVN then claimed “Monkey does not exist, and I have no idea what monkey is.” so I told SVN to remove the (now non-existent) “Monkey” and then to add the (new) “monkey”. When I told it to remove the former, it happily deleted the latter.
The inconsistency is what gets to me. SVN should either agree that “Monkey” and “monkey” are the same file or it should agree that they’re not. It can’t do both. Hence, retarded.
Eh, now IC…
Didn’t see that M-case thing… However, if the OS is case insensitive, then… svn should be too… which it’s apparently not, in this case… it shouldn’t have complained about the renamed file not existing… I get it.
Since it’s open source you could supply a patch ;o) or at least report the bug… perhaps there’s a new version out there waiting to be downloaded?
Otherwise, stay clear of operative systems that does that… ;o) I mean, OSX must be one step worse than Windows… After all, Windows never looked at case in the first place while OSX actually bastardized BSD that does care about case…. And apparently it’s not about the terminal being case sensitive either… or svn wouldn’t have deleted the wrong file… Curious…
Seems either OSX or svn is at fault here… probably svn…
/E
Nah, it’s the Mac, in the end. They rewrote the file system to NOT support case sensitivity, and consequently SVN is screwed up because of it.. and yeah, SVN should be case insensitive, but I guess that gets complex quickly. If SVN is case sensitive on Macs but NOT case sensitive on linux boxes, how will they interact when a linux user adds two files with the same name or, as in my case, changes the case for one?
Today I actually spent like an hour+ refactoring classes. I literally had to rip the entire trunk out, build it again with the new filenames, then commit again, because SVN goes wackoo when someone else tries to svn up a dir where files were renamed (it goes into a loop where it restores a deleted file in one case then claims that the file (in the other case) is already versioned, ad infinitum).
Fun stuff.