An Apache Subversion working copy can be created quite simply by running the ‘svn checkout’ command. However, sometimes you’ll want to have more control over the contents of your working copy; for example, when you’re working on a large project and only need to checkout a single directory.
In this post, we share two ways to get greater control over your checkout commands.
1. Checkout a particular revision
By default, Subversion performs a checkout of the HEAD revision, but in some instances you may wish to checkout a previous revision, for example when you’re recovering a file or directory that has been deleted in the HEAD revision.
To specify a revision other than HEAD, add the -r switch when performing your checkout:
svn checkout (URL) -r(revision number) (Location)
In this example, we are performing a checkout of the project as it existed at revision 10.
2. Performing Shallow Checkouts
A standard Subversion checkout copies the entire directory, including every folder and file. This can be too time-consuming if you’re working on a large project, or too complicated if your project contains many different branches, tags and directories. If you don’t require a copy of your entire project, a ‘shallow checkout’ restricts the depth of the checkout by preventing Subversion from descending recursively through the repository.
To perform a shallow checkout, run the ‘svn checkout’ command with one of the following switches:
–depth immediates: checkout the target and any of its immediate file or children. This is useful if you don’t require any of the children’s contents.
–depth files: checkout the target and any of its immediate file children.
–depth empty: checkout the target only, without any of the files or children. This is useful when you’re working with a large project, but only require the contents of a single directory.
In this example we are performing a shallow checkout on a ‘bug fix branch’ located within the branches folder, and specifying that only the immediate file children should be included (–depth files):
Looking for a cross-platform Subversion client? Get a free trial of SmartSVN Professional at www.smartsvn.com/download