检出工作副本

为了得到一个工作副本,需要进行从版本库检出的操作。

在Windows资源管理器里选择一个存放工作副本的目录。右键点击弹出右键菜单,选择TortoiseSVN检出…命令。然后就会看到下面的对话框:

图 4.7. 检出对话框

检出对话框


如果输入一个并不存在的目录名,那么这个名字的目录就会被创建出来。

检出深度

你可以选择要检出的深度,它允许你指定子目录递归的深度。如果你只需要大目录中的几个子条目,你可以只检出最高层目录,然后递归的更新选择的目录。

全递归

检出完整的目录树,包含所有的文件或子目录。

直接节点,包含目录。

检出目录,包含其中的文件或子目录,但是不递归展开子目录。

文件子节电

检出指定目录,包含所有文件,但是不检出任何子目录。

仅此项。

只检出目录。不包含其中的文件或子目录。

工作副本

保持工作副本指定的深度。此选项不用于检出对话框,但它是其它所有含有深度配置对话框的默认配置。

排除

对于已经创建好的工作副本,可以使用此选项来缩减文件夹的深度。这个选项只在更新至版本对话框中可用。

如果你检出了一个稀疏的工作副本(例如,在签出时选择的签出深度不是全递归),你可以使用版本库浏览器(“版本库浏览器”一节)或检查修改对话框(“本地与远程状态”一节)来获得其它子文件夹。

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.

在检查修改对话框中,首先点击检查版本库按钮。对话框会将你未检出,但是位于版本库中的文件和文件夹显示为远程加入右键单击你需要加入工作副本的文件夹,选择右键菜单更新

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. 检出父文件夹时检出深度使用“仅此项”。现在,你获得一个空的顶级文件夹。

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

  3. 右键单击 Project03 然后选择右键菜单更新项目至版本...。保持默认设置并单击 确定。现在这个文件夹就位于你的工作副本中了。

    Project25 重复相同的操作。

  4. 定位至 Project76/SubProj 并且进行相同的操作。这次需要注意,Project76 文件夹中除了新增的 SubProj 没有其它内容。Subversion 创建了相关的文件夹并没有拿出其全部内容。

改变工作副本深度

一旦你检出一个特定深度的工作副本,你可以使用右键菜单更新项目至版本...更改深度获得更多和更少的内容。

使用旧版本服务器

1.5 版之前的服务器不支持设置工作副本深度的请求,所以它们不能有效的处理请求。不过该命令仍然可以工作,但是旧版的服务器会发送全部数据,由客户端过滤掉不需要的内容,这意味着会产生很多的网络数据流量。如果可能,应该升级服务器到 1.5 版

如果项目含有外部项目的引用,而这些引用你希望同时检出,请选中忽略外部项目复选框。

重要

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.

强烈建议你只检出 trunk 或更低层的目录树。如果你在 URL 中指定了根路径,你的硬盘有可能被塞满,因为你将会得到整个版本库树的副本,包括项目所有的分支和标签(tag)!

关于导出

有时你可能想要建立一个没有.svn目录的本地的副本,比如建立一个源代码压缩包。要达到这个目的,请参考“导出一个Subversion工作副本”一节