tfs 2015 门控签入失败

tfs 2015 gated check in failed

我在 tfs 2015.3 中创建了一个 ci 版本。在触发器选项卡上,我设置了门控签入。
有没有办法让开发人员现在就知道构建失败了。目前没有办法,我不想用alerts,我想在vs
留言 另外,当构建失败时,文件在构建服务器上签出,我该如何取消这种行为,这需要一个tfs admin来释放文件。

在 TFS 2013 中,曾经有一个名为 Team Foundation Build Notification 的工具随 Visual Studio 2013 一起提供。但是现在不再是这样了。

如果您不想使用电子邮件通知,您可以在托盘中 运行 第三方应用程序来接收构建通知。我已将 catlight myself recently for the exact same problem. If you are using a chat application like Slack you can also integrate build notifications 用于您团队的 Slack 频道,以便在构建失败时收到通知。

要回答问题的第二部分,请务必了解门控签到的确切作用。

当您签入并触发门控签入时,您的文件未签入但 TFS 创建了一个 shelveset instead. TFS will then perform a private build using the latest version of the sources in combination with the shelveset it just created. Only when the this private build passes the pending changes in your shelveset will be checked in by the build on behalf of the user who triggerd the gated check-in. This will create a new changeset

签入后所有锁都将被释放,因此当构建服务器代表您签入您的更改时,所有具有 check-in or check-out lock 的文件都将被释放。

当构建失败时,搁置集中的更改(在触发门控签入构建时创建)将不会被构建服务器签入,因此不会释放锁。在源代码管理资源管理器中,文件仍将有待定更改(并被签出),因为您的工作区中的更改尚未签入。这是预期的行为,不会给您带来任何问题,除非您已禁用 multiple check-out 并且您通过签出这些文件阻止其他开发人员进行更改。

我不建议您在不允许多次签出的情况下使用门禁签入。此外,如果可以通过任何方式避免,我不建议禁止多次签出。

门控签入旨在保护存储库免受会破坏应用程序(它不再编译或单元测试失败)或降低质量低于您的标准的签入。然而,这也意味着在构建过程中的所有规则和验证都通过之前,您无法签入,因此意味着其他开发人员将被锁定,直到您能够通过 "gate".