首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TFS 2010 -合并变更集

TFS 2010 -合并变更集
EN

Stack Overflow用户
提问于 2012-01-19 16:33:45
回答 1查看 642关注 0票数 1

在TFS2010中,场景是通过tf命令行合并选定的变更集。假设有20个变更集要从分支合并到主文件夹。我正在使用tf命令行合并所有20个变更集。如果任何变更集中存在冲突,则应向签入变更集的人员触发电子邮件。有没有办法向签入变更集的人发送电子邮件?

EN

回答 1

Stack Overflow用户

发布于 2012-01-19 21:32:41

我认为您唯一的办法是编写一个应用程序,该应用程序将sourceBranch和targetBranch作为输入,并尝试以编程方式将两者中的最新项合并到另一项中。然后,它将查询冲突,找到它们所属的变更集,最后将电子邮件发送给变更集所有者。

下面的内容主要基于Eugene Zakhareyev发现的here

代码语言:javascript
复制
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;

namespace DetectConflicts
{
    class Program
    {
        static void Main()
        {
            TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://TFS:8080/tfs/{Collection}"));
            var versionControl = teamProjectCollection.GetService<VersionControlServer>();

            const string sourceBranch = "$/PathToFROMBranch";
            const string targetBranch = "$/PathToTOBranch";

            Workspace myWorkspace = versionControl.GetWorkspace("WorkspaceName", "{DOMAIN}\\YourName");
            GetStatus getStatus = myWorkspace.Merge(sourceBranch,
                        targetBranch,
                        null,
                        null,
                        LockLevel.None,
                        RecursionType.Full,
                        MergeOptions.None);

            Conflict[] conflicts = myWorkspace.QueryConflicts(new[] {targetBranch}, true);
            foreach (var conflict in conflicts)
            {
                string owner = versionControl.GetChangeset(conflict.TheirVersion).Owner;
                //
                //send an email to "owner"
                //
                ...
            }
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8923084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档