Tuesday, March 09, 2010

SVN and xcode

XCode is the OSX IDE. If you want to create an iPhone application, it has to be in Objective-C, it will probably use the COCOA frameworks and therefore you will be using XCode. There are no alternatives.
I don't usually work with IDEs so using XCode didn't require much of a paradigm shift for me. XCode does however advertise SVN support, which is true in part. By completing a quick series of steps I was able to connect to our Google-Code repository.  And this is where all the fun began.

First of, you just can't commit through XCode. At least not while using SVN and Google Code. You get certificate errors, and nothing goes through. You can check out, yes, even import, but no commits.

Then there's the human factor. It's a group project, right? That means other people, that means mistakes.
Someone imported entire folders, and soon enough we had a repository full of redundant folders that resulted in checkouts of 280 files instead of 15. There were also folders within folders of the same thing that kept cycling through revisions because people didn't delete them.


The XCode SVN support isn't very useful so I tried to use commands from terminal, because after all, OSX is UNIX. That seemed to work, but I still couldn't figure out how to commit, or rather, how to get through the Google Code security certificates.
Finally, I found an SVN client that works on a mac, and isn't too difficult to use. Like all mac/linux applications it's buggy. But who cares, it works.

svnX is the new messiah.
I deleted all the unnecessary folders from the repository and imported the latest version.
Revision 86 is finally something we can work with.
I still get certificate errors every time I login, but it seems to get through anyway, either because I checked out once through the terminal and accepted the certificate or because it "just works". (you can't accept the certificates through the svnX GUI, because it's not supported. You get the message, but you don't get to answer it).

More gripes about this project work:

I spent about 2 hours last night deleting global counter variables, and using meaningfully named constants such as "type = CORRECT_ANSWER" insted of type = 0.
This after I spent about an hour just trying to make sense of the mess, delegating code that was in the controller class to separate objects and pulling out my own hair.

The 2 computer science students in my project don't like coding, and the 2 engineers seem to have picked up their coding standards from assembly and fortran.

Oh i do love group projects.

No comments:

Post a Comment