65.9K
CodeProject 正在变化。 阅读更多。
Home

VSTS 2008 中的版本控制

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (5投票s)

2009年8月25日

CPOL

5分钟阅读

viewsIcon

27195

Team Foundation Server 2008 的版本控制功能

引言

版本控制是软件开发中最重要的组成部分。我们都在以某种形式使用版本控制系统。作为我关于 VSTS 2008 的系列文章的一部分,在这篇文章中我将分享 VSTS 2008 中提供的版本控制功能。版本控制是 Team Foundation Server 的一个组成部分,除了工作项跟踪、项目管理、生成自动化和报告之外。

与 VSS (Visual Source Safe) 的比较

VSS 是 TFS 版本控制的前身。然而,TFS-版本控制并不是 VSS 的一个版本。TFS-版本控制是构建起来的。在深入探讨 TFS 的版本控制功能之前,我将对 VSS 和 TFS-版本控制进行简要比较。

以下是 VSS 中没有,但在 TFS-版本控制系统中可用的版本控制功能

  • Workspaces
  • 更改集
  • 暂挂集
  • XML 差异/合并工具
  • 内容合并,命名空间合并(分支)
  • 审计
  • Locking

VSS 使用文件系统作为存储,而 TFS-版本控制使用 SQL Server 2005 / 2008 作为存储。但是,可以将源安全从 VSS 迁移到 TFS-版本控制。此外,TFS-版本控制与 Active Directory 绑定以进行安全管理。

特点

TFS-版本控制的关键功能如下

Workspaces

工作区是服务器存储库中签出的源的客户端副本,归一个用户在一台机器上所有。工作区也可以在用户的终端中称为工作文件夹。工作区中的任何更改都会在服务器上创建“待定更改”。

工作区中的更改会产生“待定更改”。

更改集

更改集可以被视为与签入相关的数据的逻辑容器。通过签入,除了要签入的文件之外,还有大量数据会传输到服务器。
更改集包含

  • 文件和分支信息
  • 与工作项的链接
  • 签入注释
  • 注释
  • 策略合规性
  • 元数据(日期、时间、用户)

更改集由数字唯一标识,并且随着每次向服务器的签入而递增。从客户端向服务器的任何签入都将包含上述列出的项目,具体取决于 TFS 中项目的设置/配置。

Locking

锁定是 TFS-版本控制系统中的一项功能,可以应用于文件或文件夹。有以下几种锁定类型

  • 签出锁定:防止其他用户/贡献者签出分支或文件的锁定。
  • 签入锁定:允许签出,但不允许签入。允许其他人处理文件,但不能签入。

每个文件或文件夹只允许一个锁定。

Labels

这是一个有趣的功能,允许用户为不同分支中的选定文件设置标签。
例如:将 Beta2 等里程碑应用于一组文件/文件夹。

分支

分支是使用源控件创建版本的最重要功能之一。很多时候,我们可能需要为发布提取应用程序的一个版本,并维护该发布版本作为单独的副本。在这种情况下,我们可以从源控件中分支出来并单独存储。

合并

合并与分支协同工作。使用此功能,我们可以将一个分支合并或同步到另一个分支。

暂存

暂存是 TFS-版本控制系统中提供的一项最重要且有趣的功能。很多时候,我们需要将我们的工作单独保存,而无需通过签入更新服务器上的版本。通过暂存,我们实际上可以将更改存储在服务器上,而无需在服务器上签入更改。例如,一个团队成员正在处理一组文件,但无法成功编译这些文件,而且她要去休假了。她必须将文件签回到服务器,但由于是中间更改,她无法签入,并且如果她执行“撤销签出”,她的工作将丢失。在这种情况下,暂存是一个解决方案,她可以将文件暂存到服务器,并对初始版本执行签入,然后稍后从服务器取回暂存的版本并完成她的任务。

暂挂集是暂存的结果。

  • 存储在服务器上作为临时工作区的更改集的一个特殊版本
  • 一组“待定更改”的签入,用于稍后使用
  • 可由创建者和/或团队其他成员稍后检索

使用场景

  • 与另一位团队成员共享进行中的工作
  • 在完成当前任务之前进行代码审查
  • 将未完成的工作放在服务器上备份
  • 由于出现更高优先级的任务而搁置一项工作

并行开发

使用 TFS-版本控制,我们可以通过以下方式进行并行开发:

  • 多个发布,通过分支(创建一组文件的副本以供单独工作)和合并(将一个分支中的更改合并到另一个分支)
  • 多重签出,文件可以由多个开发人员签出,之后,可以合并更改。

签入策略

在 TFS 中,我们可以为任何项目定义签入策略。通过签入策略,我们可以实现以下目标,这些目标通常与组织流程相关联:

  • 强制生成 - 要求每次签入都有无错误生成
  • 单元测试 - 要求每次签入都使用单元测试
  • 静态分析 - 要求使用代码分析工具对正在签入的代码文件进行干净运行
  • 工作项 - 要求每次签入都关联工作项
  • 多重签出 - 文件可以由多个用户签出

结论

我试图涵盖 TFS-版本控制系统中最有趣的功能。但是,这并不包括所有功能。您只能通过实际操作版本控制系统来深入了解,希望您在操作 TFS-版本控制时也能从中获得乐趣。您会发现项目中的许多配置管理问题都得到了解决。

历史

  • 2009 年 8 月 24 日:初始发布
© . All rights reserved.