Gerrit 自动提交

Fuchsia 的 Gerrit 代码审核网站支持自动提交更改功能。选择启用后,所有更改在获得批准并通过提交前检查后都会自动提交。

用法

在 Gerrit 界面中使用 REPLY 对话框添加审核者时,请为 Fuchsia-Auto-Submit 标签选择 +1

演示如何在 Gerrit 中设置 Fuchsia-Auto-Submit +1

当您的更改满足所有提交要求(通常是所有受影响文件获得 Code-Review +2 投票和所有者批准)后,自动提交聊天机器人将应用 Commit-Queue +2 标签。所有提交前检查通过后,系统会自动提交您的更改。

如果您希望更改在获得批准后尽快发布,建议您在提交更改以供审核之前(或同时)设置 Commit-Queue +1。自动提交应用 Commit-Queue +2 标签后,系统会跳过重新运行过去 24 小时内已通过的所有检查,因此提交通常无需等待检查重新运行。

常见问题解答

自动提交功能需要多长时间才能提交更改?

自动提交功能通常会在您的更改获得批准后的 30 秒内对其应用 Commit-Queue +2,但最长可能需要 2 分钟。

自动提交功能会以作业的形式实现,该作业会每 30 秒轮询一次 Gerrit 以查看是否有可提交的更改,但在作业重启时可能会偶尔出现延迟。

如何判断更改是否已启用自动提交功能?

如果更改的作者已选择启用自动提交功能,Gerrit 界面左侧列中的 Trigger Votes 下方会显示 Fuchsia-Auto-Submit +1 功能块。

Fuchsia-Auto-Submit +1 功能块

我的更改已损坏,但自动提交功能会不断重试提交前操作。为什么?

自动提交会使用指数退避算法重试四次预提交。它会故意假定任何失败都是由于 HEAD 存在潜在的故障或暂时性故障而导致的误拒。这使得自动提交功能能够对误拒做出弹性处理,但代价是,系统会偶尔针对确实损坏且无法通过提交前检查的 CL 重试提交前检查。

如果自动提交功能的提交前尝试连续失败四次,自动提交功能将停止重试,并从 CL 中移除 Fuchsia-Auto-Submit +1 标签。如需继续重试,您可以手动将 Fuchsia-Auto-Submit +1 重新添加到 CL,系统会再重试四次预提交。

如果您担心重试不正确,请先确保提交前的模拟运行通过,然后再将更改送审,或者请勿使用自动提交功能。或者,如果您担心不稳定性,请使用 Multiply 指令

我是一个启用了自动提交功能的更改的审核者。我可以不提交就批准吗?

如果您在授予 Code-Review +2 评分时留下未解决的评论,则自动提交聊天机器人将不会提交更改,直到所有评论都得到解决。

我还需要查看 FYI 构建器结果。红色的“仅供参考”构建器会阻止我自动提交吗?

通过选择 Tryjob 菜单添加的 FYI 构建器不会阻止自动提交。请谨慎使用 FYI 构建器。