自动 Mercurial 提交和推送构建

Automatic mercurial commit and push in build

我有一个构建过程,其中包括对文件进行更改并将它们提交给源代码管理。 我正在转向使用 mercurial,并试图弄清楚如何最好地做到这一点。 问题是该过程在开始时从主存储库中拉取并在结束时推回(大约 2 小时后)。如果有人在此期间对存储库进行了更改,推送将失败,因为它正在创建另一个头。 显而易见的解决方案是在推送之前拉和合并,但理论上即使在这么短的时间内仍然有人可以进行更改window。

处理这种情况的最佳方法是什么?

一般来说,源代码控制是针对人工输出的,而不是针对构建工件的。考虑将构建工件放入专用工件存储库或单独的存储库中。如果这不可行,也许可以将构建合并 defaultci 分支中,进行构建,然后提交到 ci。然后,您将始终在进入其中的代码之后立即从构建中提交,并且您可以从部署的 ci 分支中提取。