"延迟提交"如何与源代码管理存储库和CI服务器一起使用?

The*_*att 7 version-control teamcity continuous-integration visual-studio-2008 visual-studio

我想知道"延迟提交"功能如何在未与源控制存储库集成的CI服务器上运行.从概念上讲,该过程的工作原理如下:

  1. 签入代码更改
  2. CI服务器构建更改
  3. 如果构建通过,则代码将提交给源代码控制存储库
  4. 如果构建失败,则代码不会提交到源代码控制存储库

大多数CI服务器通过轮询源控制存储库进行更改然后下拉代码来工作.那么在延迟提交场景中,开发人员是否将其代码检入CI服务器而不是实际的源控制存储库,然后CI服务器将代码传递给存储库?或者,如果构建失败,CI服务器是否只是回滚更改?

我正在考虑两个特别是持续集成系统.Team Foundation Server将在下一版本中提供此功能,但这是有道理的,因为TFS中的Team Build(CI系统)与源代码控制存储库集成在一起.但是,对于Team City,TC可以连接到任何源控制系统,并且不一定与源控制存储库集成甚至在同一服务器上.这是怎么回事?

编辑:打开这个问题的赏金,希望我能得到更多可能的答案.

Chr*_*Orr 2

通常,您必须使用命令行工具或 IDE 插件来将代码提交到 CI 服务器。该工具将您的更改与所有相关的项目/存储库/用户元数据捆绑在一起,启动构建,然后在一切顺利的情况下提交它。

对于 TeamCity,看起来服务器实际上向您的计算机提交了一条批准消息(从图中我可以看出),然后从那里提交消息 - 大概这样您就不需要每个用户的 SCM TC 服务器上的凭据(如果您使用 SSH 私钥等,这可能会很复杂)。

但是 CI 服务器可以与几乎任何 SCM 系统集成,无论服务器位于何处 - 您只需为其提供正确的凭据即可获得(通常是只读)访问权限。