为 Visual SourceSafe 用户介绍 Team Foundation

Visual SourceSafe 是用于软件专业开发人员的源代码管理工具。有关 Visual SourceSafe 的更多信息,请参见 用于 Visual Studio 的源代码管理

Team Foundation 是为开发团队提供集成源代码管理、问题跟踪和进程管理的更改管理系统。

本主题重点描述 Visual SourceSafe 和 Team Foundation 中的源代码管理功能之间的主要区别。

备注

本主题不讨论从 Visual SourceSafe 到 Team Foundation 版本控制 环境的迁移。有关迁移的信息,请参见 迁移到 Team Foundation

Team Foundation 和 Visual SourceSafe 之间的区别

您可以利用 Visual SourceSafe 和 Team Foundation 版本控制 完成下列同样的基本任务:

  • 同时开发一个产品的多个版本

  • 对产品的已发布版本进行更改,而不影响该产品的其他版本

  • 快速检索一批相关的文件

  • 确定更改人员和更改时间

  • 比较文件的各个修订版

  • 将更改从一个版本移到另一个版本

Team Foundation 版本控制 客户端界面旨在使 Visual SourceSafe 用户所熟悉。这两种产品都提供了命令行客户端和 Microsoft Visual Studio Team System 集成。Team Foundation 版本控制没有单独的用户界面,这一点与 Visual SourceSafe 相同。

尽管它们具有许多相似之处,但 Team Foundation 和 Visual SourceSafe 基本上是不同的。本主题分两个主要部分来详细描述这些不同之处:

结构区别部分描述了 Team Foundation 和 Visual SourceSafe 之间在技术和操作上的区别。

功能区别部分列出了只存在于一种产品中的功能,描述了细微的功能更改,按产品标识了不同的默认设置,并解释了这些更改对您的团队使用 Team Foundation 更有效地进行开发有哪些帮助。

结构区别

SourceSafe 资源管理器和用于 Visual Studio 的插件读写 Visual SourceSafe 数据库,该数据库是通常存储在共享网络文件夹中的文件集合。

Team Foundation 是客户端-服务器源代码管理系统,它使用 .NET Web 服务访问存储在 SQL Server 数据库中的项。Team Foundation 源代码管理的体系结构提高了性能和可靠性。

安全和项目权限

在 Visual SourceSafe 管理器程序中设置的 Visual SourceSafe 用户权限和分配与对 Visual SourceSafe 数据库文件夹的 Windows 共享权限无关。您可以为特定的 Visual SourceSafe 项目或个别 Visual SourceSafe 用户设置权限和分配,但必须向所有 Visual SourceSafe 用户授予对 Visual SourceSafe 数据库文件夹的相同权限。因此,对于所有 Visual SourceSafe 用户,无论使用 Visual SourceSafe 管理器程序指定的其项目级别权限如何,他们都可以访问这些共享文件夹并对所有 Visual SourceSafe 数据具有完全控制权。

在 Team Foundation 中,用户特定的操作权限和项目级别访问权限受 Windows 用户帐户的限制。由 Internet Information Server 安全地执行用户身份验证。单独访问 SQL Server 数据库的权限无需赋予执行源代码管理操作的个别用户。因此,这样产生的 Team Foundation 安全结构安全、可靠并易于管理。

可靠性

由于 Visual SourceSafe 没有服务器组件,因此涉及将数据从客户端传输到数据库的操作是非事务性的。这意味着如果发生问题,操作就无法回滚。在极少数情况下,在写入操作期间确实发生像网络连接断开这样的问题,此时可能会破坏受影响文件的完整性并丢失信息。

Team Foundation 是客户端-服务器应用程序,该应用程序利用不会受到网络连接问题影响的存储过程在数据库中执行写入操作。此外,还使用事务执行某些操作,以便在这些操作出错时可以回滚。这种体系结构确保了您的源文件不会无意中遭到破坏。它还确保了包含相关更改的文件组可以作为可能测试良好的变更集同时全部提交给源代码管理服务器。

可伸缩性

Team Foundation 最多可支持 2000 名用户的团队,而 Visual SourceSafe 建议的团队人数是 20 或更少。Team Foundation 服务器包含的数据量可达到 SQL Server 数据库允许(千兆字节)且您的硬件可支持的最大数据量,而 Visual SourceSafe 数据库建议的大小限制是 4 GB。

功能差异

变更集

从概念上来说,Visual SourceSafe 数据库和 Team Foundation 源代码管理服务器的内部结构类似。这些数据库和服务器都按分层的形式进行组织。文件夹包含文件,而文件包含由编号和创建日期/时间标识的版本。

Team Foundation 引入了 一个 Visual SourceSafe 中没有的概念:变更集。变更集是一个逻辑容器,Team Foundation 使用它存储与单个签入操作相关的所有内容,例如文件和文件夹修订、指向相关工作项的链接、签入说明、签入注释以及提交更改的用户等其他信息。有关更多信息,请参见使用版本控制变更集

共享和固定

Team Foundation 没有与 Visual SourceSafe 的共享或固定功能等效的命令。在将 Visual SourceSafe 项目迁移到 Team Foundation 时,用标签替换 Visual SourceSafe 数据库中的插针。

Team Foundation 中存储历史记录的方式的不同之处

Visual SourceSafe 和 Team Foundation 以不同的方式存储下列操作的历史记录。

  • 添加和创建   在 Visual SourceSafe 中,添加一个文件或文件夹时,会创建该文件及其父级的一个版本。在父级历史记录中,该操作被记录为“添加”;而在文件历史记录中,该操作被记录为“创建”。在 Team Foundation 中,添加一个文件或文件夹时,将只用“添加”操作创建该文件或文件夹自身的一个版本。不为此操作创建父级版本。

  • 重命名、删除和撤消删除   在 Visual SourceSafe 中,这些操作创建新的父级版本。但是,在 Team Foundation 中,这些操作创建项本身的新版本。

  • 移动   在 Visual SourceSafe 中,在移动某一文件夹时,将同时创建源和目标父文件夹的新版本,并对每个父级记录将该文件夹移入或移出父级的操作。不为文件夹 F 创建版本。例如,如果将文件夹 F 从源文件夹 S 移至目标文件夹 D,则对“将 $F 移出 S”操作创建 D 的新版本,并对“已将 $F 移入 D”操作创建 S 的新版本。在 Team Foundation 中,“重命名”操作只创建 F 的新版本。

签入和签出的区别

在 Visual SourceSafe 中,只有在编辑文件时才需要执行显式签出和签入操作。在 Team Foundation 中,每个操作都需要执行显式签出和签入操作。

Team Foundation 中工作方式不同的功能

默认情况下,Team Foundation 在您签出文件时不执行静态 Get 操作。

在 Team Foundation 中,多个用户可以同时对同一项进行签出和更改。在 Visual SourceSafe 中,默认情况下以独占方式执行签出。但您可以在 Team Foundation 中锁定某一文件,以防止其他用户签出该文件或签入更改。有关更多信息,请参见了解锁定类型

分支和合并   由于 Visual SourceSafe 并不存储文件或文件夹的两个分支之间的合并历史记录,因此 Visual SourceSafe 只支持非常基本的分支和合并功能。但 Team Foundation 版本控制 确实支持合并历史记录。在 Visual SourceSafe 中,由于没有合并历史记录,进行的合并最终是无依据的。

签出时获取最新版本

在 Visual SourceSafe 中签出文件时,Visual SourceSafe 从源代码管理中检索此文件的最新版本。在 Team Foundation 版本控制中配置签出行为有两种方法。如果希望签出行为与 Visual SourceSafe 相同,则可以将签出设置配置为签出项时获取项的最新版本。有关更多信息,请参见如何:配置签出设置

还可以将签出行为配置为签出时标记文件的本地副本,而不从服务器获取最新版本。此签出行为在您执行获取操作以检索一组文件时很有用。通常,您的计算机上的源文件的配置表示 Team Foundation 版本控制上同时工作的特定文件的时点快照。因此,可以同时对它们进行生成和测试。

作为在工作区中工作的开发人员,您将被隔离,不受其他开发人员所做更改的影响。您可以根据需要执行获取操作,以控制何时接受来自其他开发人员的更改。理论上说,当您这么做时,将更新源代码的整个配置,而不仅仅是一两个文件。其原因是一个文件的更改通常取决于其他文件的相应更改。此签出行为确保您始终具有一个能够进行生成和测试的一致的源代码快照。

当签入您所做的更改时,Team Foundation 将您所做的更改与服务器版本上所做的任何更改合并。如果检测到任何冲突,将通过“解决冲突”对话框提示您。

Visual SourceSafe 中不存在的 Team Foundation 功能

Team Foundation 中不存在的 Visual SourceSafe 功能

  • 共享

  • 固定

  • 存档和还原

  • 关键字扩展

请参见

概念

演练:从 Visual SourceSafe 迁移到 Team Foundation