用于创建 TFVC 分支的 VSTS REST API
VSTS REST API for creating TFVC Branch
我正在尝试自动化一些与构建相关的任务,其中包括为每个版本创建新的发布分支和构建定义。我使用 VSTS TFVC 进行版本管理。当我尝试使用 TFS REST API 执行此操作时,我找不到任何 API 用于创建分支 (microsoft documentation)。
我可以看到 .NET API 可以执行此操作;无法找到 REST API.
正如您在 "Branches" 页面中看到的那样,没有任何方法可以使用 Rest API 创建分支。大多数情况下,您现在只能 read/get 使用版本控制 API 的信息。
如果您不想使用 C#,可以使用 Powerhshell 自动执行此过程:
param(
)
begin
{
# load the required dll's
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.VersionControl.Client")
}
process
{
$server = New-Object Microsoft.TeamFoundation.Client.TeamFoundationServer("http://tfsserver:8080/tfs/DefaultCollection")
$vcServer = $server.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer]);
$changesetId = $vcServer.CreateBranch('$/Demo/Code/Main', '$/Demo/Code/Dev/Branch', [Microsoft.TeamFoundation.VersionControl.Client.VersionSpec]::Latest, $null, "New branch from script", $null, $null, $null)
"Branch created with ChangesetID: $changesetId"
}
暂时没有这样的 REST API 来创建分支,我已经提交了一个 user voice here 来建议该功能,你可以去投票支持它以实现它。
作为解决方法,您可以尝试以下方法在代码或脚本中创建分支:
- 正如@Shayki 提到的,您可以使用 Client 对象模型参考
如果您想以编程方式管理版本控制。
只需使用“
CreateBranch()
”方法
Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer
class 创建分支。
- 此外,您还可以使用Branch Command创建分支。
tf branch olditem newitem [/version:versionspec] [/noget] [/lock:(none|checkin|checkout)] [/noprompt] [/silent] [/checkin] [/comment:("comment"|@commentfile)] [/author:authorname] [/login:username, [password]] [/recursive]
我正在尝试自动化一些与构建相关的任务,其中包括为每个版本创建新的发布分支和构建定义。我使用 VSTS TFVC 进行版本管理。当我尝试使用 TFS REST API 执行此操作时,我找不到任何 API 用于创建分支 (microsoft documentation)。
我可以看到 .NET API 可以执行此操作;无法找到 REST API.
正如您在 "Branches" 页面中看到的那样,没有任何方法可以使用 Rest API 创建分支。大多数情况下,您现在只能 read/get 使用版本控制 API 的信息。
如果您不想使用 C#,可以使用 Powerhshell 自动执行此过程:
param(
)
begin
{
# load the required dll's
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.VersionControl.Client")
}
process
{
$server = New-Object Microsoft.TeamFoundation.Client.TeamFoundationServer("http://tfsserver:8080/tfs/DefaultCollection")
$vcServer = $server.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer]);
$changesetId = $vcServer.CreateBranch('$/Demo/Code/Main', '$/Demo/Code/Dev/Branch', [Microsoft.TeamFoundation.VersionControl.Client.VersionSpec]::Latest, $null, "New branch from script", $null, $null, $null)
"Branch created with ChangesetID: $changesetId"
}
暂时没有这样的 REST API 来创建分支,我已经提交了一个 user voice here 来建议该功能,你可以去投票支持它以实现它。
作为解决方法,您可以尝试以下方法在代码或脚本中创建分支:
- 正如@Shayki 提到的,您可以使用 Client 对象模型参考
如果您想以编程方式管理版本控制。
只需使用“
CreateBranch()
”方法 Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer class 创建分支。 - 此外,您还可以使用Branch Command创建分支。
tf branch olditem newitem [/version:versionspec] [/noget] [/lock:(none|checkin|checkout)] [/noprompt] [/silent] [/checkin] [/comment:("comment"|@commentfile)] [/author:authorname] [/login:username, [password]] [/recursive]