- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我们在 TFS 2015 中继续使用 XAML 构建定义进行门控 checkin ,因为 vNext 系统不支持它们,是否仍然可以并行运行多个门控 checkin ?
我知道build设置 UI 中有一个 Parallel 选项,但我不知道它是否也可以应用于 XAML 构建定义,以及还有哪些其他约束。
你能在同一个盒子上并行构建吗(只要它支持多个代理)?
最佳答案
相同定义的基于 XAML 的门控构建不能并行运行。我认为这是故意限制。门控构建的目的是防止“损坏的”代码被提交到存储库。
当您将门控构建排入队列时,它会使用存储库中最新版本的代码,以及一个包含您刚刚提交的更改的搁置集。如果构建成功,则搁置集被提交并成为代码的最新版本。如果构建失败,则搁置集不会提交到存储库。
如果第二个门控构建排队并同时运行,那么它无法知道第一个构建是成功还是失败,因此无法知道要构建的版本(它应该使用最新版本还是当前正在验证的搁置集)。如果第一个构建失败,那么第二个构建就可以了。但是如果第一个构建成功,那么第二个构建就不会针对正确的代码版本进行编译。更糟糕的是,第二个搁置集可能包含与第一个搁置集不兼容的更改,如果第二个构建成功,则可能会出现合并冲突或损坏的代码。这违背了门控构建的目的。
门控 checkin 很快就会构建 vNext,但我希望它们有相同的限制。
门控构建与“CI”构建。
门控 :如前所述,门控构建不能并行运行。当正确性比速度更重要时,应该使用它们。
CI :TFS 中的 CI 构建是更传统的触发构建。当开发人员 checkin 更改时,这将提交到存储库并触发构建。此时代码可能会被破坏(编译失败,导致单元测试失败等) CI 构建可以并行运行,但会增加被破坏的代码进入 repo 的风险,一个开发人员的错误可能会对团队的其他成员。
感想:
根据您的分支策略,您可以混合使用构建类型。例如,CI 构建在具有高更改周转率的开发分支上,但如果构建每天中断几分钟,那么这并不是世界末日。只有开发团队受到影响,他们可以快速解决任何问题。对营业额较低的分支机构使用 Gated 构建。例如,您的 Main 或 Release 分支可能仅在冲刺结束时更新。
意见:
原则上,门控构建听起来是个好主意,它们可以防止损坏的代码污染您的源代码控制存储库。这是一件好事。但是对我来说,快速反馈更为重要。恕我直言,门控构建更像是一种垫片,以防止“不体贴”的开发人员在提交之前不检查其代码编译或通过测试。当然,我们都可能犯错误,但两种构建都可以告诉我们这一点,并让我们有机会修复错误。
从本质上讲,我想我是在说这个。
CI : 我可以信任代码吗?
门控 : 我可以信任开发商吗?
如果您有“永远不会破坏代码”的政策,那么您将不得不忍受封闭构建的限制。如果您可以更灵活一点,并且您相信团队的其他成员不会做任何愚蠢/不体贴的事情,那么您可以使用 CI 构建并获得并行构建的好处。
更新:2020 年 9 月
构建 vNext,现在称为 Azure DevOps Pipelines。 Gated Checkins 的工作方式与基于 XAML 的构建相同,并且不能并行运行。这适用于 TFVC 用户。 Git 用户可以通过在他们的分支策略(拉请求)上使用构建验证来使用类似的功能
关于tfs - 我们可以并行构建多个门控签到吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34780595/
管理项目时,我可以在团队项目级别编辑权限。 Web 界面允许管理: 团队 TFS 组 但是,我找不到有关这些不同之处的任何指导。根据经验,我希望一个团队成为多个 TFS 组的一部分,但似乎一个团队可以
如何从 http://tfs.visualstudio.com 上托管的 TFS 迁移到本地版本的 TFS?我想用Visual Studio Team Foundation Server Expres
在 Team Foundation (TFS2017) 上,您可以连接到 TFS 实例的构建代理的最大数量是多少? 最佳答案 目前还没有任何官方文档声明 TFS 构建代理数量的限制。也没有得到任何相关
我试图了解 TFS 2008(和 2010,如果它不同)如何存储和传达变更集中一组更改的详细信息。 现在,当我提交一个 Subversion 托管项目时,客户端会将差异发送到服务器。因此,如果我添加了
基本上,我有 2 个构建定义,一个构建和部署一些数据库项目,另一个构建和部署网站。 我想做的是能够构建/部署数据库,如果没有任何错误,则构建和部署网络应用程序。 这个想法是,如果数据库部署由于某种原因
我们有一个 CI 构建服务器进行自动构建,并希望在程序集版本中包含当前的冲刺/迭代编号。是否有环境变量或简单的方法可以在构建过程中获取当前的冲刺编号? TFS On Permise 2015 更新 3
我正在探索在我们的下一个项目中使用 TFS 进行软件过程的可行性。一种需求是能够从 TFS 中的各个链接需求创建需求文档。我目前在 Agile 和 CMMI 中都有模型项目,其中有一组与父子关系相关的
我的公司有一个本地 TFS 2017 实例。我知道如何通过 Web 界面安装和更新扩展程序,但这很乏味。我想知道是否有更快的方法来使用 tfs-cli . 最佳答案 由于某种原因,我花了一段时间才弄清
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 3年前关闭。 Improve thi
似乎没有太多关于团队管理员的文档,但是如果我进入我的团队页面并在左侧添加一个用户作为管理员,这并没有让他们成为项目管理员,只是一个叫做团队管理员。有权限的团队管理员和项目管理员有什么区别? 最佳答案
我们计划从 Tfs 2012 升级到 Tfs 2013。谁能帮助我了解它们之间的流程模板差异?我们将所有三个流程模板用于不同的项目。 最佳答案 变化非常小,除了: 引入投资组合积压。 测试计划和测试套
我们已经成功构建了 TFS 2010 基础架构和第一个使用 Visual Studio 2010 的虚拟机。现在我有一个非常简单的问题。如何将解决方案从我们现有的 TFS 2008 转移到新的 201
我们公司正在使用 Team Foundation Server 2015。是否可以在每个拉取请求中自动添加一个或几个人作为审阅者?作为必需的默认审阅者? 最佳答案 是的,您可以很容易地将默认审阅者添加
通过管理员帐户导航到 TFS 2013 集合的项目页面返回此错误: http://server:8080/tfs/DMS/ProjectX Error The page you are looking
TFS 中等效的拉取请求是什么? 我特别询问跨团队协作,其中有一个团队负责产品,但其他团队可以处理自己的副本并提交“拉取请求”。 所以核心团队仍然拥有产品,但其他团队仍然可以为它做出贡献。 最佳答案
当尝试将项目的较新版本与较旧版本合并时,我得到“该项目已在目标分支中删除”,它给了我三个选项: Restore File And AutoMerge Keep Target Branch Versio
我必须将一个项目恢复到上周的版本。所以我按日期得到了一个特定的版本,但是现在如果我在文件中添加一个空格,它会 check out 并获得最新版本。 我去了工具 -> 选项 -> 源代码控制 -> VS
如何在没有 Visual Studio 的情况下将 VS 项目添加到源代码管理 (TFS)?我还获得了对 tfs 项目的 Web 访问权限,但我没有看到任何上传选项或创建子项目选项(我看到我的主项
我只是想知道是否有一种方法可以分析 TFS,以找出针对特定开发人员的代码覆盖率结果。 假设我想确定我团队中一位开发人员的代码覆盖率统计数据。 最佳答案 它不支持开箱即用。 不要认为它会在 future
我想使用尚未映射到 TFS 中的工作项的 .MPP MS Project 2007 计划,TFS 项目是空的,我的意思是根本没有工作项。我要同步 http://localhost:8080/tfs/这
我是一名优秀的程序员,十分优秀!