Fraser Speirs Cocoa and Photos

Posted
24 July 2007 @ 7pm

Tagged
Programming

Add:     

Codeville Writeup

I can’t find the actual name of the author, but there’s Matt Chisholm wrote a nice writeup of Codeville, referencing my writeup of Git on glyphobet.theory.org.

A couple of points on the author’s points:

I always forget that `rsync` exists. Even for the obvious applications of sync. Stupid me.

The reason that merging NIB files is difficult is that they have binary files, not that they’re bundles. If you change a connection in one branch, and add a widget in another, it’s impossible to merge those changes.


3 Comments

Posted by
dave glasser
24 July 2007 @ 8pm

Out of curiosity, how would you want your ideal version control system to deal with NIB files (or any other binary file)? Do any current version control systems deal well with this?

Subversion at least has the optional locking and svn:needs-lock property, although this doesn’t have anything to do with cross-branch merging.


Posted by
fraserspeirs
24 July 2007 @ 9pm

@dave

No, there’s no good SCM solution. Apple needs to make NIBs easier to read and safer to merge.


Posted by
pat
25 July 2007 @ 10am

One possible solution that is working now would be to use the Rennaisance framework from GNUStep. It specifies Cocoa application interfaces in XML files which can be managed more easily with VCSs.

http://www.gnustep.it/Renaissance/index.html

I’ve never used it, but there are a number of advantages listed on the website, and a few disadvantages I can think of. Since youir widgets are laid out dynamically at runtime you most likely can’t do pixel acccurate layout. There currently is no Interface Builder style layout tool, you must specify by editing an XML file.

I agree that the ideal solution would be for Apple to fix NIBs, but I’m not holding my breath.