2011-11-20 60 views
2

目前我有2个分支 - 开发和发布。如何使用TFS 2010 SDK获取分支的所有未合并变更集?

是否有可能从Development到Release获取所有未合并的变更集?

目前我们使用默认的Merge Wizzard。但是它有一个很大的限制 - 它不能被用户过滤。所以我正在考虑构建一个应用程序,将所有未发布的变更集从开发版拖放到发布版,并允许我按用户过滤这些变更集。

+0

可能复制http://stackoverflow.com/questions/8121366/filtering-users-in-tfs-合并的向导 – Khh

回答

4

你可能会写出E中的小控制台应用程序,是这样的:

using System; 
using Microsoft.TeamFoundation.Client; 
using Microsoft.TeamFoundation.VersionControl.Client; 

namespace UnmergedChangesets 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://myserver:8080/collection")); 
      VersionControlServer vcs = (VersionControlServer) tpc.GetService(typeof (VersionControlServer)); 
      MergeCandidate[] mergeCandidates = vcs.GetMergeCandidates("$/Development", "$/Release", RecursionType.Full); 
     } 
    } 
} 

这样你进入mergeCandidates所缺少的Release分公司所有的变更。

如果你想针对特定用户,以进一步筛选您可以用类似的东西做到这一点:

foreach (var mergeCandidate in mergeCandidates) 
{ 
    if(mergeCandidate.Changeset.Owner == @"DOMAIN\ChuckNorris") 
    { 
    //This is an unmerged changeset commited by Chuck 
    } 
}