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