0

我有一个用于使用 Cruise Control.NET 进行持续集成的 Web 应用程序的 Kiln/Mercurial 代码存储库。通常,我们在本地提交我们的代码,当我们准备好测试时,我们推送到我们的中央 Kiln 服务器。Cruise Control 会定期检查该服务器上的存储库是否有新修订,当它找到它时,它会构建它并将生成的文件复制到适当的 Web 服务器。如果它通过测试,然后我们手动强制构建到我们的主生产服务器,一切都很好。

然而,最近,我们遇到了一个小问题。我们在上个月推出生产的版本中发现了一个错误,需要修复。从那时起已经有 50 次左右的提交,而这 50 次提交中引入的代码还远未准备好投入生产。我们知道我们可以在本地回滚(更新)到已发布到生产环境的版本并修复代码,但我们无法将其推送到 Kiln 并将其发布到 Cruise Control —— Kiln 服务器上的 Mercurial 抱怨多个头。解决这个问题的最佳方法是什么?

我们搜索了一下,发现了对分支和标签的引用。我们最终在 Kiln 服务器的存储库中创建了一个新分支。那个分支有我们的主存储库减去那 50 个提交。然后我们进行了错误修复并编辑了 Cruise Control 配置以查看那里而不是主存储库。经过一些构建后,我们在生产服务器上修复了我们的错误。回滚、修复并将其推送到 Web 服务器似乎需要大量工作。

由于我们是一家小商店,我们通常有自己的项目要处理。没有故意的分支(直到现在),甚至最小的合并,所以虽然我们对版本控制并不陌生,但这个概念有一些共同的方面我们还没有处理过。

4

1 回答 1

0

你说你的代码有问题,然后你做了大约 50 次提交。因此,您创建了一个包含当前代码的分支 - 50 次提交。

所以我的建议是它不应该是你的分支,而应该只是主干。分支代码应该只包含重大更改的代码,即您在该代码中工作了很长时间,同时可能有机会在主干中执行一些代码并且可以转移到生产环境中。

因此,在创建 CI 时,我的建议是为 Trunk 和 Branch 分别设置 CI,以便您进行测试。

也只能从主干转移到生产。

于 2013-02-14T11:58:19.963 回答