Checking Out A Working Copy

To obtain a working copy you need to do a checkout from a repository.

Select a directory in windows explorer where you want to place your working copy. Right click to pop up the context menu and select the command TortoiseSVNCheckout..., which brings up the following dialog box:

Figure 5.7. The Checkout dialog

The Checkout dialog


If you enter a folder name that does not yet exist, then a directory with that name is created.

Checkout Depth

You can choose the depth you want to checkout, which allows you to specify the depth of recursion into child folders. If you want just a few sections of a large tree, You can checkout the top level folder only, then update selected folders recursively.

Fully recursive

Checkout the entire tree, including all child folders and sub-folders.

Immediate children, including folders

Checkout the specified directory, including all files and child folders, but do not populate the child folders.

Only file children

Checkout the specified directory, including all files but do not checkout any child folders.

Only this item

Checkout the directory only. Do not populate it with files or child folders.

Working copy

Retain the depth specified in the working copy. This option is not used in the checkout dialog, but it is the default in all other dialogs which have a depth setting.

If you check out a sparse working copy (i.e., by choosing something other than fully recursive for the checkout depth), you can fetch additional sub-folders by using the repository browser (the section called “The Repository Browser”) or the check for modifications dialog (the section called “Local and Remote Status”).

In the repository browser, Right click on the checked out folder, then use TortoiseSVNRepo-Browser to bring up the repository browser. Find the sub-folder you would like to add to your working copy, then use Context menuUpdate item to revision... That menu will only be visible if the selected item does not exist yet in your working copy, but the parent item does exist.

In the check for modifications dialog, first click on the button Check repository. The dialog will show all the files and folders which are in the repository but which you have not checked out as remotely added. Right click on the folder(s) you would like to add to your working copy, then use Context menuUpdate.

This feature is very useful when you only want to checkout parts of a large tree, but you want the convenience of updating a single working copy. Suppose you have a large tree which has sub-folders Project01 to Project99, and you only want to checkout Project03, Project25 and Project76/SubProj. Use these steps:

  1. Checkout the parent folder with depth “Only this item” You now have an empty top level folder.

  2. Select the new folder and use TortoiseSVNRepo browser to display the repository content.

  3. Right click on Project03 and Context menuUpdate item to revision.... Keep the default settings and click on OK. You now have that folder fully populated.

    Repeat the same process for Project25.

  4. Navigate to Project76/SubProj and do the same. This time note that the Project76 folder has no content except for SubProj, which itself is fully populated. Subversion has created the intermediate folders for you without populating them.

Working copy depth cannot be reduced

Once you have checked out a working copy to a particular depth you can increase that depth later to get more content. However you cannot reduce the depth again to remove content. That feature may be added in a later version of Subversion.

Using an older server

Pre-1.5 servers do not understand the working copy depth request, so they cannot always deal with requests efficiently. The command will still work, but an older server may send all the data, leaving the client to filter out what is not required, which may mean a lot of network traffic. If possible you should upgrade your server to 1.5.

If the project contains references to external projects which you do not want checked out at the same time, use the Omit externals checkbox.

Important

If Omit externals is checked, or if you wish to increase the depth value, you will have to perform updates to your working copy using TortoiseSVNUpdate to Revision... instead of TortoiseSVNUpdate. The standard update will include all externals and keep the existing depth.

It is recommended that you check out only the trunk part of the directory tree, or lower. If you specify the parent path of the directory tree in the URL then you might end up with a full hard disk since you will get a copy of the entire repository tree including every branch and tag of your project!

Exporting

Sometimes you may want to create a local copy without any of those .svn directories, e.g. to create a zipped tarball of your source. Read the section called “Exporting a Subversion Working Copy” to find out how to do that.