什么是 Team Foundation 版本控制?
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
不管软件项目是大还是小,都应尽快使用版本控制。 版本控制系统由软件组成,该软件有助于跟踪你一段时间内在代码中所作的更改。 编辑代码时,告知版本控制系统生成文件快照。 版本控制系统会永久保存此文件快照,以便用户稍后能够根据需要进行查阅。
Azure DevOps Services 和 TFS 提供两种版本控制模型:Git(分布式版本控制)和 Team Foundation 版本控制 (TFVC)(集中式版本控制)。 本文提供了使用 TFVC 的概述和起点。 若要决定使用哪种类型的 Azure DevOps Services/TFS 版本控制,请参阅为项目选择正确的版本控制。
为何使用版本控制?
如果没有版本控制,你很容易在计算机上保留多个代码副本。 这很危险,因为很容易在错误的代码副本中更改或删除文件,可能会丢失工作。 版本控制系统通过管理所有代码版本,但一次只提供一个版本来解决此问题。
版本控制系统具有以下优势:
- 创建工作流 - 版本控制工作流可防止每个人通过不同且不兼容的工具使用其开发过程时出现混乱。 版本控制系统提供流程执行和权限,使每个人都保持一致。
- 使用版本 - 每个版本都对版本中所做的更改予以说明,例如修复 bug 或添加功能。 这些说明可帮助你根据版本而非单个文件更改来跟踪代码中的更改。 可根据需要随时通过版本控制查看和还原存储在各版本中的代码。 这使新工作可很容易地建立在任何版本的代码基础之上。
- 协同编码 - 版本控制同步各版本,并确保所做的更改不会与团队的其他更改冲突。 团队依赖于版本控制来帮助解决和防止冲突(即使用户同时进行更改)。
- 保留历史记录 - 当团队保存新版本的代码时,版本控制会保留更改的历史记录。 可查看此历史记录,了解更改者、更改原因和更改时间。 历史记录让你可以放心进行试验,因为你随时都可以回滚到以前的良好版本。 借助历史记录,可使工作建立在任何版本的代码基础之上,例如修复先前版本中的 bug。
- 自动执行任务 - 版本控制自动化功能可节省团队时间并生成一致的结果。 将新版本保存到版本控制时,可以自动执行测试、代码分析和部署。
有很多事情会占用开发人员的时间:重现 bug、学习新工具以及添加新功能或内容。 随着用户需求的增加,版本控制有助于团队协同工作并按时交付。
Team Foundation 版本控制
TFVC 是一种集中式版本控制系统。 通常,团队成员的开发计算机上的每个文件只有一个版本。 历史数据仅在服务器上维护。 分支是基于路径的,并且在服务器上创建。
借助 TFVC,你可以应用粒度权限并将访问限制到文件级别。 由于团队将其所有工作签入 Azure DevOps Server,因此你可以轻松审核更改并确定签入变更集的用户。 通过使用比较和批注,可以确定他们所做的具体更改。
快速入门
首先创建项目、配置工作区以及评审和共享代码。 可以使用以下任一客户端或 IDE:
分步教程
通过以下教程了解在 TFVC 中工作的基础知识,该教程介绍使用 Visual Studio 和 TFVC 的 DevOps 开发人员的一天。
你希望做什么?
-
花几分钟设置开发计算机,以利用版本控制代码库的所有优势。
-
服务器工作区 - 在进行更改之前,团队成员公开签出文件。 大多数操作都要求开发人员连接到服务器。 该系统有助于锁定工作流。 采用这种工作方式的其他系统包括 Visual Source Safe、Perforce 和 CVS。 使用服务器工作区,可以纵向扩展为非常大的代码库,其每个分支有数百万个文件并包含大型二进制文件。
本地工作区 - 每个团队成员都具有最新版本的代码库副本,可按需脱机工作。 开发人员签入其更改并在必要时解决冲突。 采用这种工作方式的另一个系统是 Subversion。
-
在大多数情况下,不必考虑版本控制。 当您需要管理和了解自己的更改时,系统会支持您。
-
有时,您需要搁置您正在进行的部分或全部工作。 您的版本控制系统可以消除一些烦恼并减少中断浪费的时间。
-
签入更改,使团队可以基于你创建的值进行生成,并测试和发布该值。
-
使用分支和锁隔离由不同的团队完成的工作所导致的风险。
-
版本控制系统的优点之一是您可以回头查看有关对文件做过的更改的详细信息。
-
您可以对服务器文件夹和本地文件夹进行比较,并查看每个文件夹在内容方面的差异。
-
使用版本控制的最大优点是使多个人员可以同时处理一个文件。 有一个缺点是您有时必须解决冲突。 尽管遇到冲突会令人沮丧,但系统提供了帮助您了解和解决冲突的信息和工具。
-
如果需要阻止文件或文件夹遭到签出和修改,您可以将其锁定。
只能通过 tf 命令行执行的操作
下表列出了只能在命令提示符下使用 tf
命令行工具执行的 TFVC 任务。
任务 | 命令 |
---|---|
删除其他用户的工作区。 | 带有 /delete 选项的 workspace |
撤消其他用户的签出。 | undo |
移除其他用户的锁定。 | lock |
定义标签范围。 | label |
执行无基合并。 | merge |
永久销毁内容。 | destroy |
回滚一个或多个变更集的效果。 | rollback |