List all svn:externals recursively?

How can I get a list of all svn:externals (recursively) in a directory? Is there any utility for this?

(I'm using Windows (and tortoise))

I have a bunch of svn:externals linking to different shared parts of my project and I when I branch it's usually quite error prone to find all externals and changed them so that the link to paths within the new branch.


Do the following in the root of your working copy:

svn propget svn:externals -R

As discussed in the comments below, this does not list externals in externals.

Note for TortoiseSVN users: there is an option in the TortoiseSVN installer to also install the SVN command line client. This option is not enabled by default.


Manually changing all of those external properties sounds tedious. Have you looked at the new functionality for externals added in Subversion 1.5?

Subversion 1.5 takes a huge step in relieving these frustrations. As mentioned earlier, the URLs used in the new externals definition format can be relative, and Subversion provides syntax magic for specifying multiple flavors of URL relativity.

../

    Relative to the URL of the directory on which the svn:externals property is set

^/

    Relative to the root of the repository in which the svn:externals property is versioned

//

    Relative to the scheme of the URL of the directory on which the svn:externals property is set

/

    Relative to the root URL of the server on which the svn:externals property is versioned

Maybe one of those would help? I guess it depends on exactly how you are branching and what your repository structure looks like.