... checkout a few directories from a large project and still get atomic commits?

Sometimes you want to checkout a working copy from a large project, but you are only interested in a few of the sub-folders. This method requires SVN/TSVN 1.4.0 or later.

This method uses a tiny local repository to define external references which pull in the sub-folders you are interested in.

  1. Create a local repository
  2. In that repository create a new folder to represent your working environment.
  3. Create a working folder and checkout the newly created folder from your local repository.
  4. Add an svn:externals property to the working folder which references the elements of the real project that you are interested in.
  5. Commit the property and update.

The external references will pull in the folders you want, and you can commit atomically from the top level folder. Note that svn:externals does not support file references, so you can only reference whole folders.

When Subversion 1.5.0 is released, support for partial checkout and update will be greatly improved.