首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建TFS自定义“构建”签入策略

创建TFS自定义“构建”签入策略
EN

Stack Overflow用户
提问于 2016-08-31 18:43:45
回答 1查看 1.2K关注 0票数 0

内置的TFS构建签入策略是不可配置的,它只是查看上一次构建是否失败,如果是,它将在Visual中显示策略警告。不幸的是,它认为“最后”构建是最后一个及时完成的构建,而不是最后一个用最新的变更集完成的构建。因此,即使事情被打破了,政策也有可能变得清晰。考虑一下这种情况:

Joe在Changeset 1234中提交了代码,它启动了构建“了不起的构建”,John在Changeset 1235中提交了代码,它也启动了构建“令人惊奇的构建”,但是更改集1235包含了一个中断。

因为我有多个构建代理,所以这两个构建同时运行。

现在,假设John的构建首先完成,并由于中断而失败--构建策略现在处于崩溃状态--警告您不能签入(如预期的那样)。

Joe的构建完成了第二步,并且成功了--此时的构建策略将恢复到一个清晰的状态,并且不会出现任何警告。(没有预料到,最后一个变化集仍然是坏的,需要修复)。

我知道TFS允许我通过编译实现'Microsoft.TeamFoundation.VersionControl.Client.PolicyBase'.的类来创建自己的自定义签入策略。不过,这里有一些问题:

  1. 我能找到的唯一正式文档是这里(https://msdn.microsoft.com/en-us/library/bb668980.aspx),正如页面所显示的,这个内容已经过时,不再维护了。这是否意味着有一种新的/更好/更容易实现自定义签入策略的方法?
  2. 有谁知道我在哪里可以找到与编写这些策略相关的文档,特别是用于解决上述问题的“构建”策略。我希望我的签入策略是基于最新的变更集执行,而不是最近的构建时间。

你能给予的任何帮助都是很棒的。这个策略修复将解决我的大型开发小组中的许多头痛问题。

EN

回答 1

Stack Overflow用户

发布于 2016-09-01 09:29:49

本文介绍了一种简单、更好的方法,并将其应用于较高版本,注册密钥路径是根据VS (8.0,12.0等)的版本编写的。对于64位机器,路径喜欢HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio{VisualStudioVersion}\TeamFoundation\SourceControl\Checkin策略。

在您的自定义签入策略中,您可以通过TFS (评估方法)检查最新的构建结果。例如:

代码语言:javascript
复制
TeamFoundationServer tfs = new TeamFoundationServer("http://tfsserver:8080/tfs"); 
IBuildServer buildServer = (IBuildServer) tfs.GetService(typeof(IBuildServer)); 
IBuildDetailSpec buildDetailSpec = buildServer.CreateBuildDetailSpec("Team Project", "Build Definition Name"); 
buildDetailSpec.MaxBuildsPerDefinition = 1; 
buildDetailSpec.QueryOrder = BuildQueryOrder.FinishTimeDescending; 
IBuildQueryResult results = buildServer.QueryBuilds(buildDetailSpec);

如果您只需要确保更改没有问题(构建可以成功),正如Daniel所说的,使用门控签入(TFVC)或使用分支策略(git)拉动请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39256852

复制
相关文章

相似问题

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