Fuchsia 的 Gerrit 代码审核网站支持自动提交更改功能。已选择启用的任何更改在获得批准并通过提交前检查后,都会自动提交。
用法
使用 REPLY 对话框在 Gerrit 界面中添加审核者时,请为 Fuchsia-Auto-Submit 标签选择 +1。
在您的更改满足所有提交要求(通常是所有受影响文件的代码审核 +2 投票和所有者批准)后,自动提交聊天机器人将添加提交队列 +2 标签。所有提交前检查均通过后,您的更改会自动提交。
如果您希望更改在获得批准后尽快生效,建议您在将更改送审之前(或同时)设置 Commit-Queue +1。如果自动提交功能应用 Commit-Queue +2 标签,则会跳过重新运行在过去 24 小时内已通过的任何检查,因此提交通常不需要等待重新运行检查。
常见问题解答
自动提交需要多长时间才能提交更改?
自动提交功能通常会在您的更改获得批准后 30 秒内对其应用提交队列 +2,但最多可能需要 2 分钟时间。
自动提交功能是作为一项作业实现的,该作业每 30 秒轮询 Gerrit 一次是否有可提交的更改,但作业重启时可能会偶尔出现延迟。
如何判断某项更改是否已启用自动提交功能?
如果更改的作者已选择自动提交,则 Gerrit 界面左侧列中的 Trigger Votes(触发投票)下方会显示一个 Fuchsia-Auto-Submit +1 图块。
我的更改已损坏,但自动提交不断重试提交前。为什么?
自动提交功能会故意忽略之前运行提交前的结果。它假设任何失败都是由于 HEAD 的潜在不稳定或暂时性破坏而导致的错误拒绝。这样一来,自动提交能够应对虚假拒绝,但代价是偶尔会针对严重遭到损坏且无期望通过提交前检查的 CL 重试提交前检查。
只要没有人对更改执行操作,自动提交功能就会在四次尝试后停止重试。重试计数器会在任何人执行任何人工操作(上传新的补丁集、添加评论等)后重置。
如果您担心重试会不正确,请确保在将更改送审之前通过预提交试运行,或者不要使用自动提交。或者,如果您担心不稳定,请使用 Multiply
指令。
我是一位审核者,负责审核已启用自动提交功能的更改。我可以不提交就直接批准吗?
如果您在授予 Code-Review +2 时留下未解决的评论,则在解决所有评论之前,自动提交聊天机器人不会提交更改。
但是,更改者仍然可以手动设置 Commit-Queue +2 来提交更改。如果您认为不应提交某项更改,那么建议您保留 Code-Review +2;如果其他审核者已批准这项更改,则设置 Code-Review -2。