svnbranchsvn-externalsexternalssvn-update

How to fetch a Subversion external without fetching all other directories and subdirectories


I have a Subversion repository called 'repo'. Inside of repo are trunk/ and branches/ directories. Within branches/ there are several dozen release branches, e.g. 1.0/, 1.1/. These branches/ directories contain a relatively large application.

I want to add an external at the root of repo, called 'myExternal'. When I define the external, the only way to get SVN to create the myExternal/ directory is to run 'svn up' from the root of repo. However, this will also cause the entire contents of branches/ to be checked out, which is unacceptable (we have many developers that need to get myExternal/ added to their copy of repo, and can't have all of them checking out gigabytes of unneeded branches).

I've tried 'svn up --set-depth immediates', but that doesn't seem to get the externals. Is there any way to tell svn to fetch myExternal/ without fetching all of branches/ ?

Using SVN 1.7.


Solution

  • Yes, that is the known issue of subversion externals are not created unless depth=infinity.

    I think there is no way as to redesign your directory structure so that myExternal is attached not to the repo but to its subfolders, e.g. set on /trunk and every folder in /branches.

    Or you can create a script that at first fetches immediates of repo and then fetches externals set on repo (which it may get by reading properties of repo: svn propget svn:externals).