There are some good arguments against doing this, but I'll cover those another time.

But  anyway, using svn:externals to include external libraries is a convenient way of moving third party libraries out of your own repository.

For example, many PHP applications today, have the Zend Framework as a dependency. To include the library within your application without actually having to download the tarball and use something like phing to set it up in place, you can simply do a

svn propedit svn:externals

Then in your editor, add the following line (each externals definition goes on a new line)


Set this property on your standard application library directory, or somewhere in your include path.

When you run svn update, svn will pull down the Zend library into your defined location.

The Zend Framework, out of the box, comes with some dojo dependencies that are optionally bundled with the framework. You can use the same approach to pull in the dojo deps by setting svn:externals definitions for your javascript include dir and pointing them at (or trunk if you're brave).

Again, there are some good arguments for NOT doing this, but for me, the convenience of this approach outweighs those (which I'll cover in more detail later).