我需要以编程方式跟踪变更集:确定变更集当前位于哪个分支中。
更新:假设我们有一个项目的三个分支: Dev、测试和发布。每当我们准备好使用一些变更集时,我们首先将它们合并到Test中,然后在测试完成后立即发布。我需要知道给定的变更集在这个工作流中的位置(仅在Dev中,或者在Dev +中合并在Test中,或者在Dev +中合并到Test + merged中发布中)。

使用Visual“跟踪”接口已经可以做到这一点,但我需要通过编程来获得更多的自定义。我已经能够使用代码在此提供获取特定工作项的所有变更集,但我还没有找到一种方法来确定变更集目前在哪个分支中。
发布于 2016-04-14 18:08:40
我刚刚做了一个工具来做同样的事情。您需要的电话是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);
}如果merges变量不包含您要寻找的分支,那么它还没有被合并。
https://stackoverflow.com/questions/16944170
复制相似问题