优化工作区

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

如果你的团队拥有大量复杂的代码库,可优化你的工作区,从而仅包含所需的文件。 优化工作区可以提高性能、减少网络流量,并减少开发计算机上所需的磁盘空间。

注意

创建分支挂起或搁置是隔离相同代码库的不同工作量的首选方式。 但是,如果这些方法都不能满足您的需求,则可以在多个工作区中映射相同的服务器文件夹。 在大多数情况下都不需要这样做。

如果在多个工作区中映射同一个服务器文件夹,请记住您可以对每个工作区中存储的同一文件分别进行不同的挂起的更改。

优化您的文件夹名称

如果未使用分支,则应将所有代码放在服务器上一个名为 Main 的子文件夹(例如:$/TFVCTeamProject/Main/)中。 那么当你的团队扩展到足够大而需要分支来管理代码库时,你将准备就绪。 在开发计算机上,你应使用与项目结构匹配的简短且可理解的文件夹路径(例如 C:\Users\<YourName>\Source\Workspaces\TFVCTeamProject\Main\SolutionName)。

有关有效的文件夹名称的更多提示:

  • 所有文件夹、子文件夹和文件的名称保持简短以简化你的工作,并避免可能随某些类型的代码项目出现的潜在长路径问题。

  • 避免在文件和文件夹名称中使用空格,以便命令行操作执行起来更容易。

优化工作区

如果团队有大量代码库,则可通过优化工作区文件夹映射来避免浪费时间、网络带宽和本地磁盘空间。 可以使用显式、隐式、掩蔽和非递归的文件夹映射,以便轻松快速地创建可用工作区。

将文件夹映射到工作区时,请确保在代码树中选择级别足够高的文件夹以获取创建本地生成所需的全部文件,但级别也要足够低以便获得的文件数不会多于所需的文件数。 在以下示例工作区中,只需将 $/SiteApp/ 映射到 c:\code\SiteApp\。 像这样的简单工作区会将 $/SiteApp/Main/ 中的所有文件夹隐式映射到工作区,包括你所需的任何文件。

此方法的主要问题是它还会提供大量你不需要的文件,从而浪费时间和资源。 例如,如果不开发自定义生成过程,则不需要 $/SiteApp/BuildProcessTemplates/。

随着时间的推移,你希望团队代码库不断增长,并同时又不希望自动下载添加到 $/SiteApp/Main/ 的每个新代码位。 由于处理其他文件夹的团队会更改这些文件,因此从服务器获取最新文件时,会因更新你不需要的文件而导致等待时间延长。

可以优化工作区来创建更适合的文件夹映射。

  1. 在 Visual Studio 源代码管理资源管理器中,选择“工作区”旁边的下拉箭头,然后选择“工作区”。

  2. 在“管理工作区”对话框中,选择要优化的工作区,然后选择“编辑”。

  3. 在“编辑工作区”对话框中,编辑工作区映射。

    屏幕截图显示在“编辑工作区”对话框中编辑工作区。

  4. 例如,若要开发代码,需要 DinnerNow 项目的代码项目。 可以映射 $/Fabrikam TFVC/DinnerNow,而不是在解决方案中显式包括每个代码项目(例如 $/Fabrikam TFVC/DinnerNow/feature3),从而隐式映射包含所需代码项目的所有子文件夹。

  5. 不需要 $/Fabrikam TFVC/DinnerNow/feature1 或 $/Fabrikam TFVC/DinnerNow/feature2 中的文件,但由于这些文件是隐式映射的,因此可以使用两个掩蔽的映射来从其工作区中排除这些文件夹。

  6. 你的团队维护一组基本库,有时还会进行扩充。 你需要此文件夹中几乎所有当前库,并且需要团队将来添加的库,因此映射 $/Fabrikam TFVC/Main/。

  7. 只需要大文件夹 /Fabrikam TFVC/Main/ClassLibrary 的一小部分,因此将其映射为已掩蔽,然后只显式映射需要的子文件夹 $/Fabrikam TFVC/Main/ClassLibrary1。

  8. 现在需要 ClassLibrary1 中的某些文件,但是不需要其子文件夹的内容,因此对 $/Fabrikam TFVC/Main/ClassLibrary1/ 文件夹应用非递归映射。

还可以通过在源代码管理资源管理器中右键单击未映射的分支或文件夹,并选择“高级”>“映射到本地文件夹”,将文件夹映射到工作区。 或者,选择“源代码管理资源管理器”顶部的“本地文件夹”旁边的“未映射”链接。 在“映射”对话框中,选择要映射到的本地文件夹,如果要使映射跨子文件夹递归,请选中“递归”复选框。

以下屏幕截图显示了在源代码管理资源管理器中的服务器树和计算机上的本地文件上应用这些工作区优化的结果。

显示文件夹映射效果的屏幕截图。

使用工作区隔离分支

如果组织在代码库中使用分支隔离风险,则可为处理的每个分支创建单独的工作区。 你可以在继续在小团队中工作,但现在使用几个工作区就可以管理在多个分支下进行的工作。

例如:

显示多个分支的关系图。

  • 开发功能:修改默认工作区以完成在 Extranet 分支中的工作,在此分支内,你参与了面向客户的网站的开发。

  • 集成和稳定:创建两个新的工作区来完成 TestDev 分支中的工作,并且在这期间,与其他开发人员和测试人员协作以便在集成过程中使代码保持稳定。

在三个工作区中管理你的工作,其中每个工作区将服务器上分支中的文件夹映射到开发计算机上的文件夹。

显示将分支映射到文件夹的关系图。

后续步骤

选择有效的分支策略