TFS API - 获取合并的变更集

Pau*_*els 4 c# tfs tfs-sdk

我有一个程序,它读取最新的构建并从中获取所有变更集.然后可以确定我拥有它的变量是否实际上是合并,以及它来自何处.

这就是我所拥有的:

List<IChangesetSummary> changeSets = InformationNodeConverters.GetAssociatedChangesets(build);
IEnumerable<Changeset> changesetDetails = changeSets.Select(x => versionControlServer.GetChangeset(x.ChangesetId));

// Determine is the first changeset was a merge
changesetDetails.First().IsMerge // How to check is the changeset is part of a merge?
Run Code Online (Sandbox Code Playgroud)

更新:

到目前为止,我已经更新了答案

foreach (var cs in changesetDetails)
{
    foreach (Change change in cs.Changes)
    {
        if ((change.ChangeType & ChangeType.Merge) == 0)
            continue;

        foreach(var m in change.MergeSources)
Run Code Online (Sandbox Code Playgroud)

MergeSources总是空的.

And*_*amb 7

请改用该VersionControlServer.GetChangesForChangeset方法.最后一个参数表示应包含合并源信息.

List<IChangesetSummary> changeSets = InformationNodeConverters.GetAssociatedChangesets(build);
IEnumerable<Change> changes = changeSets.SelectMany(x => versionControlServer.GetChangesForChangeset(x.ChangesetId, false, Int32.MaxValue, null, null, true));

foreach (Change change in changes)
{
    if ((change.ChangeType & ChangeType.Merge) == 0) continue;                  
    foreach (var m in change.MergeSources)
    {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)


MrH*_*ood 0

您需要询问当前看到的文件操作是否为“合并”。