演练:通过命令行使用 Team Foundation 版本控制

更新:2007 年 11 月

本演练描述如何使用 Visual Studio Team System Team Foundation Server 命令行客户端 tf.exe 执行版本控制操作。

在本演练中,您将完成下列任务:

  • 创建工作区,您的版本控制服务器文件的个人副本将位于该工作区中,随后将从服务器获取源文件的副本。

  • 将文件添加到服务器,然后从服务器签出该文件并在工作区中对其进行编辑。

  • 签入挂起的更改,并创建变更集。

  • 从服务器检索在创建特定变更集的时刻存在的源代码,以此将工作区返回到特定时间点。

先决条件

如果您可以建立与 Team Foundation Server 的连接,并且拥有相应的权限,则可以通过命令提示、批处理文件或脚本文件执行版本控制命令。为此,您必须使用“Visual Studio 2008 命令提示”实用工具,或者通过使用下面的示例中所述的 vsvars32 在您当前的命令提示中设置多个环境变量。有关加入团队项目的更多信息,请参见演练:加入团队项目

打开 Visual Studio 2008 命令提示

  • 单击“开始”,单击“所有程序”,指向“Microsoft Visual Studio 2008”,指向“Visual Studio Tools”,然后单击“Visual Studio 2008 命令提示”。

或者,运行 Visual Studio 安装路径(通常为驱动器盘符:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools)中的 vsvars32

必需的权限

要完成本演练,您必须具有 CreateWorkspace、Checkin 和 PendChange 权限。

创建工作区

若要开始使用版本控制,则必须建立一个工作区。工作区是服务器上的文件和文件夹的本地副本。当您添加、编辑、删除、移动、重命名或以其他方式更改受版本控制的任何项时,您的更改将隔离在您的工作区中,您可以在工作区中安全地生成和测试更改。当您执行签入时,这些更改将提交到服务器,并且可在工作区外使用。

工作区由一系列映射组成。每个映射会将服务器中的一个文件夹与磁盘上的一个本地文件夹相关联。若要获得服务器文件的本地副本,请创建一个新的工作区,指定该工作区的映射。然后使用 get 命令将源文件填入工作区。

您必须首先创建工作区,然后才能在计算机上执行 Team Foundation 版本控制 命令。工作区中将持久保存这些操作的输出,您可通过对这些输出进行签入将其提交到服务器。

创建工作区以管理受版本控制的文件

  1. 单击“开始”,单击“所有程序”,指向“Microsoft Visual Studio 2008”,指向“Visual Studio Tools”,然后单击“Visual Studio 2008 命令提示”。

  2. 键入 mkdir c:\projects

  3. 键入 cd c:\projects

  4. 键入 tf workspace /new /s:servername,其中 servername 为 Team Foundation Server 的名称(例如,tf workspace /new /s:/team1server),然后按 Enter。

    说明:

    如果这是您首次连接到服务器,则必须指定完整的 URL。例如,可以指定为“http://team1server:8080”。

  5. 在“创建工作区”对话框中,键入新工作区的名称,例如“cmdwalkthrough”。

  6. 在“源代码管理文件夹”列下的服务器中选择团队项目。

    您可以单击省略号 (…) 浏览服务器文件夹。

    您选择的文件夹将映射到“本地文件夹”列下面列出的“c:\projects”文件夹。

  7. 单击“确定”。

在命令提示符处键入 tf workspaces 可看到当前计算机上已创建的所有工作区。有关更多信息,请参见 Workspaces 命令

当您创建工作区时,系统会维护该工作区的工作区定义。Team Foundation Server 存储工作区定义,它还列出了该工作区中的所有文件、每个文件所基于的版本以及其当前状态。由于服务器上存储着工作区定义,因此拥有正确权限的任何用户可以在他/她的计算机上完全复制您的工作环境,但不包括任何挂起的更改。有关如何执行该操作的更多信息,请参见 Get 命令

添加和编辑文件

创建工作区后,您可以指定希望添加到版本控制的文件。然后即可对其进行编辑,并签入更改。

准备要添加到版本控制中的文件

  1. 在命令提示符处,键入 notepad 314.cs,然后按 Enter。

  2. 当记事本提示“要创建新文件吗?”时,请单击“是”。

  3. 在记事本中,键入 using System.IO;,保存更改,然后关闭记事本。

  4. 在命令提示符处,键入 tf add 314.cs 将该文件添加到挂起的更改列表中。

  5. 键入 tf status 确认添加 314.cs 的操作正挂起。

    可使用此命令查看当前工作区中所有挂起的更改。

在 Team Foundation 中,不可只使用一个步骤就将某项添加到版本控制服务器中。首先,将文件添加到工作区的挂起的更改中。然后将所有挂起的更改作为单个单元提交到版本控制服务器。

Team Foundation 强制执行这一两步骤的文件添加过程,以确保您可以在上下文中测试并编译您的代码,然后再将代码签入服务器。这还意味着,如果出于某种原因,Team Foundation 无法将更改中的任何一项提交到服务器,则所有更改都不会提交。

签入挂起的更改

当签入挂起的更改集时,Team Foundation 将创建一个变更集

签入工作区中所有挂起的更改

  1. 在命令提示符处,键入 tf checkin

  2. 在“签入”对话框中的“注释”框内键入描述更改性质的注释,然后单击“签入”。

变更集是逻辑容器,Team Foundation 将与单次签入操作相关的所有内容都集中到其中。与此处提供的简单示例相比,大多数签入都更为复杂。通常,一次签入涉及对多个文件和文件夹的更改。因此,变更集表示可作为单个单元进入工作区中的一整套工作。

一个变更集包括:

  • 源文件和文件夹修订,如添加、重命名、编辑、删除和移动。

  • 相关工作项,如 Bug。

  • 系统元数据,如变更集编号、作者、日期/时间等等。

  • 签入说明和注释。

随后,您将创建 314.cs 文件的第二个版本,以检查版本控制服务器上存储有多少个不同版本的文件。

在版本控制中创建一个文件的新版本

  1. 在命令提示符处,键入 tf checkout 314.cs

  2. 键入 notepad 314.cs

  3. 在记事本中,在 using System.IO; 后面添加一个新行,然后键入 using System.Windows;。

    说明:

    此步骤有意引入一个错误。在后面的步骤中,将向您演示如何回滚到该文件无错误的版本。

  4. 保存所做的更改并关闭记事本。

  5. 在命令提示符处,键入 tf checkin

  6. 在“签入”对话框的“注释”框中,键入注释,然后单击“签入”。

    文件 314.cs 中的挂起的更改将作为新的变更集签入到服务器。这还将在版本控制服务器上创建 314.cs 的第 2 个版本。

将文件返回前一个版本

软件开发人员经常被要求将其工作环境返回到两个月前的状态,并对特定版本进行目标修正。变更集编号有助于确定随时间签入的特定变更集。

变更集编号是一组相关文件和文件夹修订的唯一标识符。变更集编号也是整个版本控制服务器在特定日期和时间的版本号。

因此,您可以将工作区返回到您签入有问题的代码行 using System.Windows; 时的确切服务器状态。

将工作区与变更集同步

  • 在命令提示符处,键入 tf get /version:C<##>,其中 <##> 是包含 314.cs 原始版本的变更集的编号。

    说明:

    对 314.cs 文件使用 history 命令可获得正确的变更集,例如,从命令行键入 tf history 314.cs

“Get”命令将所有映射的文件和子文件夹的工作副本从服务器检索到本地工作区。文件的检索时间为创建变更集 <##> 的时间。如果现在在记事本中打开 314.cs,您将看到只有一行出现,即“using System.IO;”。

请参见

任务

演练:浏览 Team Foundation 版本控制

演练:搁置版本控制项

如何:搁置和取消搁置挂起的更改

参考

Add 命令

Workspace 命令

Unshelve 命令

其他资源

Team Foundation 版本控制演练

Team Foundation 版本控制命令行参考