要获取工作副本,您需要从存储库中进行 检出。
在 Windows 资源管理器中选择您要放置工作副本的目录。 右键单击 以弹出上下文菜单,然后选择命令 → ,这将弹出以下对话框
如果您输入一个尚不存在的文件夹名称,则会创建一个具有该名称的目录。
在默认设置中,检出菜单项不在 TortoiseSVN 子菜单中,而是在顶部资源管理器菜单中显示。 不在子菜单中的 TortoiseSVN 命令会在前面加上 SVN
:
如果项目包含对您 不 想要同时检出的外部项目的引用,请使用 忽略外部 复选框。
如果选中了 忽略外部,或者您希望增加深度值,则必须使用 → 而不是 → 来更新您的工作副本。 标准更新将包括所有外部项目并保持现有深度。
建议您只检出目录树的 trunk
部分或更低部分。 如果您在 URL 中指定目录树的父路径,那么您最终可能会得到一个完整的硬盘,因为您将获得整个存储库树的副本,包括项目的每个分支和标签!
有时您可能希望创建一个没有那些 .svn
目录的本地副本,例如,要创建源代码的压缩 tarball。 阅读 名为“导出 Subversion 工作副本”的部分,了解如何执行此操作。
您可以选择要检出的深度,这允许您指定递归进入子文件夹的深度。如果您只需要大型树的几个部分,您可以只检出顶层文件夹,然后递归更新选定的文件夹。
检出整个树,包括所有子文件夹和子文件夹。
检出指定的目录,包括所有文件和子文件夹,但不填充子文件夹。
检出指定的目录,包括所有文件,但不检出任何子文件夹。
仅检出目录。不要用文件或子文件夹填充它。
保留工作副本中指定的深度。此选项不用于检出对话框,但它是所有其他具有深度设置的对话框的默认选项。
用于在文件夹已填充后减少工作副本深度。此选项仅在更新到修订版对话框中可用。
要轻松地仅选择要检出的项目并强制生成的工件副本仅保留这些项目,请单击稀疏检出
。此类工件副本的更新不会获取丢失的文件和文件夹,而只会更新您工作副本中已有的内容。
如果您检出一个稀疏工作副本(即,在检出深度中选择除完全递归
之外的其他内容),您可以稍后使用以下方法之一轻松添加或删除子文件夹。
右键单击已检出的文件夹,然后使用 → 并选择 。这将打开与原始检出中可用的相同对话框,并允许您选择或取消选择要包含在检出中的项目。此方法非常灵活,但可能很慢,因为文件夹中的每个项目都会单独更新。
在修改检查对话框中,首先Shift 点击 按钮。对话框将显示仓库中所有您尚未检出的文件和文件夹,这些文件和文件夹将显示为远程添加
。 右键点击您要添加到工作副本的文件夹,然后使用 → 。
当您只想检出大型树的一部分,但又希望更新单个工作副本的便利性时,此功能非常有用。假设您有一个大型树,其中包含Project01
到Project99
的子文件夹,您只想检出Project03
、Project25
和Project76/SubProj
。请按照以下步骤操作:
检出父文件夹,深度为“仅此项”。现在您将拥有一个空的顶级文件夹。
选择新文件夹并使用
→ 显示仓库内容。
右键点击Project03
并使用 → 。保留默认设置并点击 。现在您将拥有一个完全填充的文件夹。
对Project25
重复相同的操作。
导航到Project76/SubProj
并执行相同的操作。这次请注意,Project76
文件夹除了SubProj
之外没有任何内容,而SubProj
本身是完全填充的。Subversion 为您创建了中间文件夹,但没有填充它们。
检出工作副本到特定深度后,您可以使用使深度粘性复选框。
→ 来更改深度,以获取更多或更少的内容。在该对话框中,请务必选中1.5 之前的服务器不理解工作副本深度请求,因此它们无法始终有效地处理请求。命令仍然可以工作,但旧服务器可能会发送所有数据,让客户端过滤掉不需要的数据,这可能意味着大量的网络流量。如果可能,您应该将服务器升级到至少 1.5 版本。
默认情况下,复选框 在工作副本中存储原始副本 被选中。启用此选项后,Subversion 会在工作副本中缓存每个文件的 BASE
版本(即 原始副本
)。这样,diff 和 revert 等操作就可以离线进行,并且提交只需将文件的修改部分发送到仓库服务器,而不是整个文件。这种设计优化了这些操作的速度和可用性,假设与仓库的网络连接可能是瓶颈,而本地存储很便宜。在 1.15 之前的版本中,这是 Subversion 的唯一工作方式。
从 Subversion 1.15 开始,您可以避免在工作副本中存储每个文件的副本。Subversion 仅在需要时(“按需
”)下载原始副本。如果您要处理非常大的文件或有很多很少更改的二进制文件,这将非常有用。
要避免为所有文件存储原始副本,请取消选中复选框 在工作副本中存储原始副本。
如果 在工作副本中存储原始副本 未选中,则生成的版本库将无法被 1.15 之前的 Subversion 客户端使用。