Following up on the discussion a while back about the use of svn:external, I thought this was a piece of useful advice. But it might be entirely obvious to you, in which case, please ignore this message :)
Thanks, Ward.
----- Forwarded message from David Kramer -----
Date: Fri, 18 May 2007 11:13:34 -0400 (EDT) From: David Kramer
Bringing shared components into a project is one of the most popular uses for svn:external.
Let me give you a piece of advice we learned the hard way in my company: Do not have the external point to the trunk of the shared component. Make a release/X.Y directory, and point it at that directory. As you release new versions of the shared component, you can test each app with the new version, and change the svn external to point to the newer version.
If you don't do it this way, when you update the shared component for one application, all the others will be forced to work with the new version. If there's an API change, you're sunk. But if you create releases of the shared component and link to them from the applications, the work for one application can't break another.