目前我有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