【问题标题】:Create TFS Source Branch using Visual Studio Online / TFS 2015 Api使用 Visual Studio Online / TFS 2015 Api 创建 TFS 源分支
【发布时间】:2016-04-09 06:09:30
【问题描述】:

有谁知道如何使用 VSO Api 创建分支。 Branches 的文档不包含“创建”。

我一直在尝试通过ChangeSet Api 来做这件事,但没有取得多大成功。

这是 TFVC,不是 Git。

【问题讨论】:

    标签: tfs-2015 azure-devops tfvc


    【解决方案1】:

    正如您在“分支”页面中看到的那样,没有任何方法可以使用 Rest API 创建分支。大多数情况下,您现在只能使用版本控制 API 读取/获取信息。

    如果您想以编程方式管理版本控制,我建议您使用Client Object Model Reference 。要创建分支,请使用Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer 类中的“CreateBranch()”方法。

    【讨论】:

    • 感谢您的信息。我没有意识到我可以在 TFS 2015 中使用旧的客户端对象模型。
    • @EddieChen-MSFT +1 感谢您提供信息。我可以先获得任何样品/演示吗?任何链接将不胜感激
    【解决方案2】:

    REST API 显然允许创建分支。 令人困惑的是,人们认为这将是对the Branches endpoint 的某种PUT 操作。 不是。

    在 REST API 中,分支只是作为变更集的一部分签入的另一种变更。

    我自己花了很长时间才发现这一点;我使用旧的 SOAP API 是因为我相信其他所有人都认为这不是 REST API 的一部分。 当然,使用 SOAP API 禁止使用 .NET 5,因为程序集仅适用于 .NET Framework。 放弃软件运行时上的放弃软件 API 不是与源代码控制对话的令人满意的方式。 ☺

    可怕Azure DevOps 文档没有提供任何线索,除了隐藏在一个小类中的 1 个模糊的 not-even-a-complete-sentence:@987654322 @ 唯一的其他线索是 JSON 中出现的内容,来自 get changeset changes,它描述了已创建分支的变更集。 Azure DevOps sample code(也被放弃了)甚至不包含删除项目的示例,更不用说分支了。

    变更集通过the changeset creation endpoint 签入。 单个更改是更改集更改列表中的 TfvcChange,其中:

    • 版本控制类型(这是一组标志)包含the branch flag;和
    • 更改的merge source 指定源项和更改集编号的范围。

    分支整个树似乎是分支目录目录中所有文件和目录的问题。

    在 C♯ 或 PowerShell 中,这是一个带有 VersionControlChangeTypeBranchTfvcChange,在 TfvcChangeset 中传递给 TfvcHttpClientBase.CreateChangesetAsync()

    【讨论】:

    • 我不记得我到底为什么要问这个问题,但答案真是太棒了。完全有道理。我希望有人会觉得它有用。
    猜你喜欢
    • 2015-12-29
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多