The SVA Externals Command

The externals command can be used to import svn:externals paths into your repository, and then later remove them, switching back to svn:externals.

This is useful for many reasons:

  • Lock at a specific revision of an external, for stability
  • Import remote externals into your repository so you don't depend on a remote repository

External Information

You can use the --info option to the externals command to get a list of locked and unlocked svn:externals:

sva ext --info vendor

Locking Externals

You can lock externals (import into your repository, and remove svn:externals property):

sva ext --lock vendor

Unlocking Externals

To remove your imported copy, and go back to a normal svn:externals:

sva ext --unlock vendor

Note: The current version of Subversion Automation will not check to see if you have modified a file in a locked external. If you modify a file, and then unlock the external, you will loose your changes (those changes will be in your repository history if you need them later, however).

Piston

Francois Beausoleil wrote a utility called Piston that can lock and unlock externals, while also merging local changes.