You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gerrit变更已合并但UI状态异常,如何在后端设置状态为Merged?

操作方案

针对描述的场景,可以直接在后端修改变更状态字段为Merged,所有评审历史会完整保留,具体操作步骤如下:

前置准备

  • 停止Gerrit服务,避免操作过程中并发写入导致数据不一致
  • 完整备份Gerrit对应的MySQL数据库,操作异常时可快速回滚
  • 确认目标变更确实已合入对应Git分支:进入Gerrit仓库存储目录,执行git log <目标分支名>,确认该变更的commit SHA存在于分支提交链中

数据库修改步骤

Gerrit 2.16版本的变更状态存储在changes表的status字段,当前异常状态的存储值为S(对应SUBMITTED状态),需要修改为M(对应MERGED状态)。
登录MySQL数据库,执行以下SQL语句,注意替换<变更数字ID>为实际的Gerrit变更ID(即UI上变更链接末尾的数字):

UPDATE changes SET status = 'M' WHERE change_id = '<变更数字ID>';

该操作仅修改变更的状态字段,不会修改评论、打分、提交记录等其他关联数据,所有评审历史会完整保留。

后续验证操作

  • 启动Gerrit服务
  • 执行单变更重索引,刷新缓存:java -jar <你的gerrit.war路径> reindex --change <变更数字ID>
  • 打开Gerrit UI对应变更页面,刷新后确认状态已更新为merged,所有评审历史正常展示

注意事项

  • 该操作仅适用于变更确实已合入Git仓库的场景,如果Git分支中不存在对应提交,禁止直接修改状态,否则会出现逻辑数据不一致
  • 禁止在Gerrit服务运行状态下直接修改数据库,避免缓存不一致引发其他异常
  • 若批量出现同类异常,可先筛选出所有status = 'S'且提交已存在于对应分支的变更,批量执行UPDATE操作即可

内容的提问来源于stack exchange,提问作者user4948798

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:15:04