2011-11-20 59 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 
    } 
}