Hans-Christoph Steiner wrote:
I made the "beta-test" comment, I just wanted to know whether it was tried and true before committing to it. I don't really get the advantage of using it. Can you maintain patches against the code that is linked in using svn:externals? A big reason to import the external code is so that you can maintain changes, and to add importing new external releases into those changes. How does that work with svn:externals?
Think of an svn:external as a symbolic link to another repository. So, if you have write access to the repository that you have linked to, then you can do whatever you want. You can not have any changes to that code in your local repository.
The advantage is simply not having multiple copies of the code, so there is less work involved with keeping things in sync. This is best used if you don't maintain any changes to the code in question. If you want to maintain your own changes, then you would either import the code, or have your own branch in the same svn repository where the code lives. Both options involve more work for keeping changes in sync. However, if you have a branch in the same repository, keep your changes there, and link to it via svn:externals, then it is actually very easy to keep the branch in sync with its parent. (I can elaborate if anyone is interested ...)
While svn:externals is certainly handy, it's something to only use where it makes sense. If a certain set of externals is primarily developed elsewhere, then it probably does make sense to use it. But, it comes down to depending on one of two factors:
1) You don't maintain any changes that aren't made in the upstream repository.
or
2) You are able to have your own branch in the upstream repository to maintain your changes.
If neither 1 or 2 is true, then svn:externals does not make sense.
-- Russell Bryant