目前我有2個分支 - 開發和發佈。如何使用TFS 2010 SDK獲取分支的所有未合併變更集?
是否有可能從Development到Release獲取所有未合併的變更集?
目前我們使用默認的Merge Wizzard。但是它有一個很大的限制 - 它不能被用戶過濾。所以我正在考慮構建一個應用程序,將所有未發佈的變更集從開發版拖放到發佈版,並允許我按用戶過濾這些變更集。
目前我有2個分支 - 開發和發佈。如何使用TFS 2010 SDK獲取分支的所有未合併變更集?
是否有可能從Development到Release獲取所有未合併的變更集?
目前我們使用默認的Merge Wizzard。但是它有一個很大的限制 - 它不能被用戶過濾。所以我正在考慮構建一個應用程序,將所有未發佈的變更集從開發版拖放到發佈版,並允許我按用戶過濾這些變更集。
如果您的標準窗口不符合您的需求,請查看codeproject。
有人曾做過這樣一個類型的應用程序,所以你可以看看它是如何工作
TFS 2010 SDK: Smart Merge - Programmatically Create your own Merge Tool
編輯
我忘了,我在這個項目模板工作了VS2010
你可能會寫出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
}
}
可能複製http://stackoverflow.com/questions/8121366/filtering-users-in-tfs-合併的嚮導 – Khh