Git托管设置从开发人员那里获取,拒绝破坏提交?

Mar*_*ann 7 git version-control build-automation unit-testing

开发团队经常受到版本控制的构建暂时受损的困扰.整个团队的生产力可以在尝试从一个人破坏的构建中恢复时停止.

是否有软件可以通过不接受首先未通过测试的提交来允许托管Git以防止破坏版本控制中的版本?例如,使用场景可能如下所示:

  • 该软件在一台服务器上运行,该服务器不断从开发人员发布的Git存储库中提取修订版.
  • 对于每个撤销的修订版,如果软件通过单元测试,软件将构建修订版并进行测试.
    • 如果它通过了测试,则修订将合并到"稳定"分支中.
    • 如果它没有通过测试,它将被拒绝并且修订版本不会合并到"稳定"分支中.开发人员被迫更正修订版并重新提交.
  • 默认情况下,开发人员从"稳定"分支中拉出应该永远不会被破坏的分支 - 在测试不会失败的意义上 - 并且由于他们花费更少的时间被破坏的构建阻塞而更有效率.这种系统的有用性随着团队规模的增长而增长.

几点说明:

  • 在这种情况下,Git的预先提交钩子和类似的东西并不令人满意.解决方案应该是自动的,并在服务器端针对每次提交强制执行.
  • 寻找尽可能实现和思考的解决方案,而不是从头开始编写这样的系统.

Jon*_*Jon 1

我认为这更多的是与 Git 等 VCS 相关的构建服务器功能。TeamCity 确实支持此功能,但我还没有尝试过,所以我无法评论它实际上有多好。

http://www.jetbrains.com/teamcity/features/delayed_commit.html

Hudson 团队已经讨论了一段时间,但我还没有在版本中看到它。

http://wiki.hudson-ci.org/display/HUDSON/Designing+pre-tested+commit