subversion with interface builder
subversion with interface builder
- Subject: subversion with interface builder
- From: Ryan Poling <email@hidden>
- Date: Fri, 2 Sep 2005 10:35:38 -0700
Notes about using subversion with WebObjects, Interface Builder, and
Mac OS X.
9/2/2005
The
Versions Used:
Mac OS X 10.4.2
subversion 1.2.3
Interface Builder 2.5.1 (439)
XCode 2.1
WebObjects 5.3
Appendices C and D of the Apple XCode User Guide (Using Subversion
and Configuring Your SSH Environment) were fairly helpful in getting
things set up although I would recommend installing subversion via
the download links on the main subversion web page rather than using
DarwinPorts. The binary version available via these links is easier
to install since it uses a traditional double clickable package
installer. Note that your install path will be /usr/local/bin instead
of /opt/local/bin.
I also found the book "Version Control with Subversion" by Ben
Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato to be
very helpful.
1. When creating the repository it seems preferable to use the file
system rather than the Berkeley DB. To do this, pass the --fs-type
fsfs flag to the create command.
For example: svnadmin create --fs-type fsfs /path/to/repos
2. There are at least three different ways to authenticate to the
repository. I used the svn+ssh method although I'm sure the others
would work as well.
3. If you use the ssh+svn method, it's helpful to provide a virtual
repository path so that end users don't have to type the entire path.
For example, in my authorized_keys file, my key begins with:
command="/usr/local/bin/svnserve -t -r /Users/svn/svnrep/" ssh-dss
This allows users to use a path like "svn+ssh://server-name/project-
name" rather than "svn+ssh://server-name/Users/svn/svnrep/project-name".
4. When using ssh with multiple users, in order to prevent file
permission issues, each subversion command on the server should be
wrapped by a shell script which first calls umask, ie:
$ cat /usr/local/bin/svn
#!/bin/sh
umask 002
/usr/local/bin/svn-real "$@"
So this means you should rename each command and create a shell
script wrapper which calls the actual command.
5. If you create trunk, branches, and tags directories as suggested
in the book, you should only checkout the trunk.
6. The subversion support in XCode has a few problems, and I have had
better luck using the free "svnx" which is available on the web.
http://www.lachoseinteractive.net/en/community/subversion/svnx/
features/
7. Subversion leaves ".svn" directories in each directory that it's
managing which causes problems with earlier versions of Interface
Builder and EOModeler which delete all of these directories upon
save. Make sure you're using the latest version available of each of
these tools.
8. If you're developing a Java Client program using Interface
Builder, your nib file will contain a java file buried under several
directories. Each of these directories contains an ".svn" directory
which even the newer versions of Interface Builder delete. In order
to correct this problem, you'll have to download and install the
"SubversionPalette.palette" from http://www.rtlabs.com/downloads/.
Even though this is apparently fairly old, it still seems to work
(9/2005).
That's it! Good luck and enjoy subversion.
- Ryan
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden