分支命令 (Team Foundation 版本控制)

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

Visual Studio 2019 |Visual Studio 2022

TFVC branch 命令将一个或多个项(包括元数据和版本控制历史记录)从 Azure DevOps 服务器和本地工作区中的一个位置复制到另一个位置。

注意

在执行签入操作之前,此命令的结果不会反映在 Azure DevOps 服务器中。 有关详细信息,请参阅 签入团队的代码库

先决条件

类别 要求
权限 源项的读取权限,以及目标文件夹设置为“允许的签出合并权限。

有关详细信息,请参阅 默认 TFVC 权限

语法

tf branch olditem newitem [/version:versionspec] [/noget] [/lock:(none|checkin|checkout)] [/noprompt] [/silent] [/checkin] [/comment:("comment"|@commentfile)] [/author:authorname] [/login:username, [password]] [/recursive]

参数

论点

参数 说明
<olditem> 指定正在分支的源文件或文件夹的名称。 <olditem> 还可以包含格式为 item;version的版本信息。
<newitem> 指定目标文件或文件夹或目标父文件夹的名称。 如果 <*newitem> 已存在并且是 Azure DevOps Server 文件夹,TFVC 会在其中创建分支项。 否则,<newitem> 指定目标文件或文件夹的名称。 如果目标已存在,则签入期间可能会发生冲突。
<versionspec> 提供 /version 选项的值。 有关 TFVC 如何分析版本规范以确定其范围内哪些项的详细信息,请参阅 使用 Team Foundation 版本控制命令
<comment> 提供有关分支的注释。
@<commentfile> 指定包含用于分支的注释的文件的路径。
<authorname> /author 选项的用户提供的值。
<username> /login 选项提供值。 可以将用户名值指定为 DOMAIN\username<username>

选择

选项

说明

/version

要在其中创建分支的项的版本。 可以通过以下方式指定版本:

  • 日期/时间 (2005/D10/20)
  • 更改集编号 (C1256)
  • 标签 (Lmylabel)
  • 最新版本(T)
  • 工作区(Wworkspacename)

如果未提供版本,TFVC 使用以下逻辑来确定要复制到新分支的项版本:

  • 如果指定了 Azure DevOps Server 路径,则 TFVC 会将该项分支到最新的 Azure DevOps Server 版本。 例如,tf branch $/projects/help.cs 使用服务器版本。
  • 如果为源指定了本地路径,TFVC 将使用本地工作区版本来创建新分支。 例如,tf branch C:\314.cs 使用本地工作区版本。

如果对工作区版本早于 Azure DevOps 服务器中最新版本的文件进行分支,则该文件将分支到旧版本。

/lock

防止其他用户签入或签出项目,直到签入挂起的分支和相关更改。 有关详细信息,请参阅 了解锁类型

锁定选项:

  • none
    违约。 未应用锁。 如果要为其创建分支的文件上存在锁,此选项将删除它。
  • checkin
    其他用户可以签出指定的项,但在通过执行签入释放锁定之前,他们无法签入锁定文件的修订。 如果任何其他用户锁定了任一指定项,则锁定操作将失败。
  • checkout
    防止其他用户签入或签出任何一个指定项目,直到通过执行签入来释放锁。 如果任何其他用户锁定了任一指定项,则锁定操作将失败。

/noget

如果指定此选项,则不会在本地工作区中创建新分支中的文件和文件夹的本地副本。 但是,下次执行递归获取操作时,本地副本将检索到工作区中。

注意

在递归获取和获取工作区文件夹期间,可以阻止项(如 /images 文件夹的内容)检索到工作区,并通过隐藏工作区文件夹获取最新操作。 有关详细信息,请参阅 Workfold 命令

/noprompt

禁止显示输入的任何提示。

/silent

表示 /noget,并指定创建分支时不会将输出写入命令提示符窗口。

/checkin

在一个操作中创建分支并将其签入到服务器。 此选项不会在本地工作区中创建任何挂起的更改。

/comment

向新分支添加注释。 此选项仅用于 /checkin 选项。

/author

标识新分支的作者。 此选项仅用于 /checkin 选项。

/recursive

对于文件夹,也对内部的所有文件进行分支。

言论

如果指定本地路径(如 c:\00101 但不指定 <versionspec>),TFVC 将使用本地工作区版本作为创建新分支的基础。

但是,如果指定服务器路径(如 $/00101/*.cs),但未指定 <versionspec>,TFVC 将最新的 Azure DevOps Server 版本用作创建新分支的基础。

有关如何使用 tf 命令行实用工具的详细信息,请参阅 使用 Team Foundation 版本控制命令

例子

以下示例假定 c:\projects 映射到工作区中的主文件夹。

以下示例创建一个分支文件,其中包含最新工作区版本的 314.cs,将其命名为 314_branch,并将其保存到磁盘上的当前目录,以及保存到映射到的 Azure DevOps Server 文件夹。

c:\projects>tf branch 314.cs 314_branch

以下示例将工作区版本 314.cs 的所有文件从当前 Azure DevOps Server 文件夹复制到 testdata Azure DevOps Server 文件夹,并将当前目录中的所有文件复制到映射到 testdata Azure DevOps Server 文件夹的工作文件夹中。

c:\projects>tf branch C:\314.cs $/testdata

以下示例将当前工作区版本的 testfiles 文件夹中的所有文件及其包含的所有项的文件复制到 testfiles_branch Azure DevOps Server 文件夹中,并将 c:\testfiles 映射到 testfiles_branch Azure DevOps Server 文件夹的本地文件夹中复制所有文件。

c:\projects>tf branch C:\testfiles $/testfiles_branch

以下示例创建 314.cs 分支,因为它存在于文件的 changeset #4 中。 在磁盘上的工作文件夹中,与在 Azure DevOps 服务器中一样,将创建标题为 csharp_branch 的分支文件。

c:\projects>tf branch C:\314.cs;C4 csharp_branch

以下示例在 12/12/03 上创建 314.cs 的新分支。 在磁盘上的工作文件夹中,创建标题为 314\branch 的分支文件 314\branch。

c:\projects>tf branch 314.cs;D12/12/03 314_branch

以下示例将应用 标签 Beta1 版本分支,将其命名 为 beta1branch,并将其保存到磁盘上的当前目录,以及当前目录映射到的 Azure DevOps Server 文件夹。

c:\projects>tf branch 314.cs;LBeta1 314_Beta1branch