【问题标题】:Check in changeset is merged programmatically签入变更集以编程方式合并
【发布时间】:2018-11-07 21:20:00
【问题描述】:

我正在检索与 WorkItem 相关的 tfvc 变更集。我的下一步是检查它们是否合并到特定分支。我没有找到任何关于如何在 c# 中执行此操作的信息。

今天我拥有的是这样的:

using (var changeSetClient =
                new TfvcHttpClient(_uri, _credentials))
            {

                foreach (var relation in wi.Relations.Where(r => r.Url.Contains("Changeset")))
                {
                    var changeset = changeSetClient.GetChangesetAsync("Welfare_Research_2009", relation.Attributes["id"]).Result;
                    changeset.

                }
            }
            return null;
}

我还可以获得正确的 TfvcBranch,我想知道它是否已合并。

但是我如何检查它是否已合并?很像 Visual Studio 中的“跟踪变更集”功能。

【问题讨论】:

    标签: c# tfs tfvc


    【解决方案1】:

    根据您的描述,VersionControlServer.TrackMerges() 是您要使用的 API。

    TrackMerges(array<Int32[], ItemIdentifier, array<ItemIdentifier[], ItemSpec)
    

    获取从源项到一组目标项的合并,以获得源变更集 ID 列表。

    在sourceItem参数中,传递你想要的分支的根 跟踪变化。在 targetItems 参数中,传递根 要将变更集跟踪到的分支。注意,这将 仅适用于具有合并关系的分支根。最好的 确保这是真的方法是查看分支层次结构并制作 分支直接相关或通过某种途径相关。

    假设您想跟踪从 $/Proj/Main 到 $/Proj/Feature2 在这样的分支层次结构中:

    $/Proj/Main
        $/Proj/Dev
           $/Proj/Feature2
    

    然后你会想要传递 $/Proj/Main 作为你的 sourceItem 和 $/Proj/Dev 和 $/Proj/Feature2 作为 targetItems。

    更详细的代码和示例请参考这篇博客:TFS API - TRACK CHANGESET MERGE IN BRANCHES

    【讨论】:

    • 感谢您的回答。不过最后的博文已经死了。
    【解决方案2】:

    可能有更有效的方法可以做到这一点,但您可以使用以下方式查询相应分支的历史记录:

    // pseudo code
    var parameter = new QueryHistoryParameters();
    parameter.RecursionType = RecursionType.Full;
    parameter.IncludeChanges = true;
    // set other members to potentially filter out unneeded stuff
    // especially, say, "VersionStart" / "VersionEnd".
    
    var result = workspace.VersionControlServer.QueryHistory(parameter);
    
    foreach (var entry in result)
    {
         // Compare "entry.ChangesetId" with the ID of the changeset you're looking for.
    }
    

    请注意,可以通过不同方式收集对 VersionControlServer 接口的引用。上面我假设你已经有工作区参考。

    【讨论】:

      猜你喜欢
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      相关资源
      最近更新 更多