演练:高级版本控制功能

更新:2007 年 11 月

本演练演示如何在 Team Foundation 版本控制 中使用分支、合并和标签。

在开始进行本演练之前,您应当对分支、合并以及对版本控制项应用标签有基本的了解:

  • 分支   Team Foundation 版本控制 中的分支将 Team Foundation 服务器上的一组指定文件和文件夹复制到称为分支的新位置。实质上,分支可创建基于现有的文件夹或文件的新文件夹或文件。分支将保留您正在进行分支的文件夹和文件的历史记录,并允许将更改从旧文件合并到新文件中。分支操作可以通过源代码管理资源管理器执行,也可以从命令行使用 Branch 命令来执行。有关更多信息,请参见了解分支

  • 合并   合并是将位于不同分支中的两个不同版本的文件、文件夹或团队项目进行合并的过程。一个分支为源分支,另一个为目标分支。源分支包含您要合并到目标分支中的项。这些文件夹和文件版本可基于变更集、日期、标签工作区或最新版本。有关更多信息,请参见了解分支。可以通过源代码管理资源管理器或从命令行使用 Merge 命令执行合并。

  • 标签   标签是一种标记,您可以选择将其附加到版本控制服务器中一组原本无关的文件和文件夹中。使用标签,可以轻松地将特定项的集合检索到工作区供开发或生成使用。

本主题演示了如何执行分支操作,以及如何在得到的分支和原始分支中编辑团队成员的文件。然后将签入并合并这些编辑。合并会将冲突标识出来,您必须解决这些冲突。最后,请将标签应用到变更集。

先决条件

在完成本演练之前,您必须:

必需的权限

若要完成本演练,您必须具有“PendChange”和“Checkin”权限。

分支版本控制项

下面的过程描述如何执行分支操作。分支是一项 Team Foundation 版本控制 功能,用于创建基于现有的文件夹或文件的新文件夹或文件。有关更多信息,请参见了解分支如何:分支文件和文件夹

警告:

下面的过程假设您已完成 演练:浏览 Team Foundation 版本控制 中的步骤。

分支版本控制中的项

  1. 在“视图”菜单上单击“其他窗口”,然后单击“源代码管理资源管理器”以将其打开。

  2. 在“源代码管理资源管理器”中,打开“MyWindowsApp”文件夹(其中包含您在演练:浏览 Team Foundation 版本控制中创建的“MyWindowsApp.sln”解决方案文件),右击并选择“分支”。

  3. 在“分支”对话框中的“目标”文本框中,修改新分支的位置和名称,方法是在末尾追加“测试分支”。也可单击“浏览”查找某个位置。

    说明:

    目标分支将自动追加字符串“-branch”。

  4. 在“分支起源版本”部分中的“依据”[By]下拉列表中,选择“最新版本”。

  5. 单击“确定”。

    Team Foundation 版本控制 将创建新的分支,并将其显示在源代码管理资源管理器中。

  6. 双击名为“MyWindowsApp Test Branch”的新的分支文件夹。

    注意在“挂起的更改”列下,新分支中的每一项的状态都为“分支”。

  7. 由于分支是挂起的更改,因此您必须执行签入才能应用该分支。右击“MyWindowsApp Test Branch”文件夹并选择“签入挂起的更改”。

  8. 在“签入”对话框中的注释文本框内,键入 Test branch,然后单击“签入”。

    说明:

    如果您的团队项目具有生效的签入策略,则在继续之前,您可能需要关联工作项或签入说明。有关更多信息,请参见如何:将工作项与变更集相关联如何:将签入说明与变更集相关联

    源代码管理资源管理器中的“挂起的更改”列将显示空白项。这表示新分支已签入。

现在您已成功创建了新分支并将其签入;下一步过程将对原始分支和新分支中的文件进行更改。

对分支应用某些更改

下一步,您将对两个分支中的同一文件单独进行相互冲突的更改。然后,您将合并两个分支,并解决合并冲突。下面的过程将逐步向您演示如何签出并编辑两个分支中的文件。

签出并编辑版本控制分支中的某些文件

  1. 在前一步骤中创建的新的分支中,展开“MyWindowsApp Test Branch”文件夹。在右窗格中,查找您在演练:浏览 Team Foundation 版本控制中创建的 Class1.cs 文件,右击该文件,然后选择“签出以进行编辑”。

  2. 在“签出”对话框中,单击“签出”。

    在源代码管理资源管理器中,文件的“挂起的更改”状态将显示为“编辑”。

  3. 双击 Class1.cs 文件将其打开以进行编辑。

  4. 在 Class1.cs 文件中,添加以下突出显示的代码:

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace MyWindowsApp
    {
          class Class1
          {
                string SourceControlMerge = "New branch";
          }
    } 
    
  5. 从“文件”菜单中单击“保存 Class1.cs”。

  6. 在源代码管理资源管理器中,右击 Class1.cs 文件,然后选择“签入挂起的更改”。

  7. 在“签入”对话框中的注释文本框内,键入 New branch changes,然后单击“签入”。

    说明:

    如果您的团队项目具有生效的签入策略,则在继续之前,您可能需要关联工作项或签入说明。有关更多信息,请参见如何:将工作项与变更集相关联如何:将签入说明与变更集相关联

    Class1.cs 文件在源代码管理资源管理器中的“挂起的更改”列将显示空白项。这表示已将您的编辑签入。

    现在,您将要对原始分支进行更改。其步骤与您刚完成的步骤基本相同。

  8. 在源代码管理资源管理器中,打开包含原始分支的名为“MyWindowsApp”的文件夹。

  9. 在原始分支中,展开“MyWindowsApp”文件夹,并在右窗格中找到您在演练:浏览 Team Foundation 版本控制中创建的 Class1.cs 文件,右击该文件并选择“签出以进行编辑”。

  10. 在“签出”对话框中,单击“签出”。

    在源代码管理资源管理器中,文件的“挂起的更改”状态将显示为“编辑”。

  11. 双击 Class1.cs 文件将其打开以进行编辑。

  12. 在 Class1.cs 文件中,添加以下突出显示的代码:

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace MyWindowsApp
    {
          class Class1
          {
                string SourceControlMerge = "Original branch";
          }
    } 
    
  13. 从“文件”菜单中单击“保存 Class1.cs”。

  14. 在源代码管理资源管理器中,右击 Class1.cs 文件,然后选择“签入挂起的更改”。

  15. 在“签入”对话框中的注释文本框内,键入“原始分支更改”,然后单击“签入”。

    说明:

    如果您的团队项目具有生效的签入策略,则在继续之前,您可能需要关联工作项或签入说明。有关更多信息,请参见如何:将工作项与变更集相关联如何:将签入说明与变更集相关联

    Class1.cs 文件在源代码管理资源管理器中的“挂起的更改”列将显示空白项。这表示已将您的编辑签入。

现在您已成功创建了分支,并对原始分支和新分支进行了更改,接下来的过程将演示如何合并两个分支中的更改。

合并版本控制项

在对分支中的文件进行更改之后,可以进行合并。下面的过程演示如何使用源代码管理资源管理器进行合并。有关更多信息,请参见 了解合并如何:合并文件和文件夹

合并版本控制中的分支

  1. 在源代码管理资源管理器中,右击“MyWindowsApp Test Branch”文件夹,并选择“合并”。

    在“源代码管理合并向导”中的“源分支”文本框中,出现 MyWindowsApp Test Branch 文件夹的路径和名称。

  2. 在“目标分支”下拉列表中,选择 MyWindowsApp 文件夹。

  3. 在“选择要合并的源分支更改”中,选择“对特定版本的所有更改”,并单击“下一步”。

  4. 在“选择源项的版本”步骤的“版本类型”下拉列表框中,选择“最新版本”,然后单击“下一步”。

  5. 在“执行合并操作”步骤中,单击“完成”。

    由于源分支和目标分支之间存在区别,因此将出现“解决冲突”对话框。若要解决冲突,请执行下面过程中的步骤。如果没有冲突,则不会出现“解决版本冲突”对话框。

解决合并冲突

由于两个分支中的文件之间存在差异,您将得到提示采取操作以解决两个分支之间的冲突。有关更多信息,请参见 如何:解决两个文件之间的冲突。若要解决合并冲突,请执行这些步骤。

解决合并冲突

  1. 在“解决冲突”对话框中,单击“解决”。

    随即出现“解决版本冲突”对话框。

  2. 在“解决版本冲突”对话框的“解决方法选项”中,选择“在合并工具中合并更改”,然后单击“确定”。

  3. 在合并工具中,单击“下一个更改”查找两个文件中存在的冲突。系统将并排显示这些文件。它们将显示您在上一个过程中输入的两个字符串(“原始分支”和“新分支”)。

  4. 单击包含字符串“新分支”的代码。

    合并工具将显示底部窗格中的更改。

  5. 单击“确定”。

  6. 在“Microsoft Visual Studio”对话框中,选择“是”保存文件。

  7. 系统将提示您接受合并的结果。单击“是”保留合并的文件。

  8. 在“解决冲突”对话框中,单击“关闭”。

  9. 在源代码管理资源管理器中,右击“MyWindowsApp”文件夹,然后选择“签入挂起的更改”。

    此时将出现“签入”对话框。

  10. 在“签入”对话框中,单击“签入”。

    说明:

    如果您的团队项目具有生效的签入策略,则在继续之前,您可能需要关联工作项或签入说明。有关更多信息,请参见如何:将工作项与变更集相关联如何:将签入说明与变更集相关联

现在您已成功创建了分支,对原始分支和新分支进行了更改,合并了两者,并解决了冲突。接下来的过程将演示如何在 Team Foundation 版本控制 中使用标签。

标记版本控制项

在 Team Foundation 版本控制 中,标签是应用于特定修订集的名称。通常称之为快照版本。标签只能应用于文件的一个修订。标签是一种用修订组织一组文件的简单方法。有关更多信息,请参见使用标签如何:应用标签

将标签应用于版本控制

  1. 在源代码管理资源管理器中,打开在前面的过程中创建的“MyWindowsApp Test Branch”文件夹,右击该文件夹并选择“应用标签”。

  2. 在“选择项目版本”对话框中,选择“MyWindowsApp Test Branch”文件夹。

  3. 将“项类型”框设置为“所有文件(*.*)”,然后单击“确定”。

  4. 在“应用标签”对话框中的“名称”文本框内,键入 MyWindowsApp label test。

  5. 在“注释”文本框中键入“MyWindowsApp 生成版本的所有文件”[All files for building version of MyWindowsApp]。

  6. 在“项”下,单击“添加”。

  7. 在“选择项版本”对话框中,确保“查找范围”列表中包含您正在处理的团队项目。

  8. 在“MyWindowsApp Test Branch”文件夹中浏览,查找 Class1.cs 文件并将其选中。

  9. 在“版本”列表中,选择“最新版本”。

  10. 单击“确定”。

    Team Foundation 版本控制 将显示含有已填充的项的“应用标签”对话框。

  11. 单击“确定”。

请参见

概念

使用标签

使用版本控制变更集

参考

Branch 命令

Branches 命令

Merge 命令

Merges 命令

Label 命令(Team Foundation 版本控制)

Labels 命令

“挂起签入”窗口

其他资源

Team Foundation 版本控制演练

对 Team Foundation 版本控制进行分支和合并