确定在哪个分支在本变更集

问题描述 投票:3回答:1

我需要以编程方式跟踪的变更:确定在哪个分支中的变更当前所在。

更新:比方说,我们得到了一个项目的三个分支:开发,测试和发布。每当我们已经准备好去住了一些变更,我们首先将它们合并到测试,然后尽快测试完成后释放。我需要知道一个给定的变更就设在这个工作流程(仅在开发或开发+合并在测试或开发+在测试+合并合并在Release)。

它已经可以做到这一点使用Visual Studio的“跟踪”的界面,但我需要做的编程在它获得更多的自定义设置。我已经能够得到所有的变更使用代码provided here具体的工作项目,但我还没有找到一种方法来确定在哪个分支存在的变更。

tfs tfs2012 tfs-sdk
1个回答
3
投票

我只是做了一个工具,它做同样的事情。你需要电话是TrackMerges。好消息是,你可以在一个调用查询多个分支。这里有一个代码片段:

var tfsCollection = new TfsTeamProjectCollection(new Uri(server), new NetworkCredential(username, password, userDomain));
tfsCollection.EnsureAuthenticated();
VersionControlServer versionControlServer = tfsCollection.GetService<VersionControlServer>();

ExtendedMerge[] merges = versionControlServer.TrackMerges(
                                  new[] {changesetIdYouAreChecking}, 
                                  new ItemIdentifier("$/Proj/Dev"), 
                                  new [] {new ItemIdentifier("$/Proj/Test"), new ItemIdentifier("$/Proj/Release")}, 
                                  null);

foreach (ExtendedMerge extendedMerge in merges)
{
    Console.WriteLine("Branch --> " + extendedMerge.TargetItem.Item);
    Console.WriteLine("Changeset --> " + extendedMerge.TargetChangeset.ChangesetId);
}

如果合并变量不包含你正在寻找的分支,那么它并没有被合并。

© www.soinside.com 2019 - 2024. All rights reserved.