# 如何进行 +2 Code-Review 评审 ## 📋 什么是 +2 Code-Review? **+2 Code-Review** 是 Gerrit 中的最高评审评分,表示**批准合并**。通常需要管理员权限或具有相应权限的用户才能给出。 ## 🌐 方法一:通过 Web 界面(推荐) ### 步骤 1:打开变更页面 1. 访问变更 URL,例如: - `http://101.43.95.130:8080/c/zhini-im/+/4` - 或访问所有变更列表:`http://101.43.95.130:8080/#/q/status:open` 2. 点击要评审的变更进入详情页 ### 步骤 2:进行评审 1. **查看代码差异** - 在变更页面查看所有文件修改 - 可以点击代码行添加行内评论 2. **添加评审投票** - 滚动到页面底部,找到 **"Review"** 区域 - 在 **"Code-Review"** 下拉菜单中选择 **"+2"** - (可选)在评论框中添加评审意见 - 点击 **"POST"** 按钮提交评审 ### 步骤 3:合并变更 当变更获得 **+2 Code-Review** 后: - 如果还启用了 **Verified** 标签,需要 **+1 Verified** 才能自动合并 - 或者可以点击 **"Submit"** 按钮手动合并 ## 💻 方法二:通过 SSH 命令行 ### 使用 gerrit review 命令 ```bash # 基本语法 ssh -p 29418 renjianbo@101.43.95.130 gerrit review , --code-review +2 # 示例:给 Change 4 的第一个补丁集 +2 ssh -p 29418 renjianbo@101.43.95.130 gerrit review 4,1 --code-review +2 # 示例:给 Change 4 的最新补丁集 +2(使用 --current) ssh -p 29418 renjianbo@101.43.95.130 gerrit review 4 --code-review +2 # 同时添加评论 ssh -p 29418 renjianbo@101.43.95.130 gerrit review 4 --code-review +2 --message "LGTM, 批准合并" ``` ### 批量给多个变更 +2 ```bash # 给 Change 4-14 都 +2 for i in {4..14}; do ssh -p 29418 renjianbo@101.43.95.130 gerrit review $i --code-review +2 done ``` ## 🔐 权限要求 ### 检查是否有 +2 权限 1. **查看您的权限**: - 访问:`http://101.43.95.130:8080/#/settings` - 查看您所属的用户组 2. **检查项目权限**: - 访问:`http://101.43.95.130:8080/#/admin/projects/zhini-im,access` - 查看 "Code-Review" 权限配置 ### 如果没有 +2 权限,如何配置 如果您是管理员,可以配置权限: 1. **访问项目权限页面**: - `http://101.43.95.130:8080/#/admin/projects/zhini-im,access` 2. **添加 Code-Review +2 权限**: - 点击 **"Edit"** 按钮 - 在 **"Reference"** 中选择 `refs/heads/*` 或 `refs/for/*` - 添加权限: - **Label Code-Review**: `+2` → 分配给您的用户组(如 `Administrators` 或 `Developers`) - 保存更改 3. **或者通过 SSH 配置**: ```bash # 在服务器上执行 cd /home/renjianbo/gerrit_install/review_site # 给 Administrators 组添加 Code-Review +2 权限 ssh -p 29418 renjianbo@localhost gerrit set-access zhini-im -a refs/heads/* -g Administrators Label-Code-Review+2 # 或者给特定用户添加权限 ssh -p 29418 renjianbo@localhost gerrit set-access zhini-im -a refs/heads/* -u renjianbo Label-Code-Review+2 ``` ## 📝 完整的评审流程示例 ### 示例 1:通过 Web 界面 1. 打开变更:`http://101.43.95.130:8080/c/zhini-im/+/4` 2. 查看代码差异 3. 滚动到底部,在 "Review" 区域: - 选择 **Code-Review: +2** - 添加评论(可选):"代码质量良好,批准合并" - 点击 **"POST"** 4. 如果满足合并条件,点击 **"Submit"** 按钮合并 ### 示例 2:通过 SSH ```bash # 给 Change 4 +2 并添加评论 ssh -p 29418 renjianbo@101.43.95.130 gerrit review 4 --code-review +2 --message "代码质量良好,批准合并" # 如果需要同时给 Verified +1 ssh -p 29418 renjianbo@101.43.95.130 gerrit review 4 --code-review +2 --verified +1 --message "代码质量良好,已验证,批准合并" ``` ## 🎯 快速参考 ### 评审投票选项 - **Code-Review**: - `+2` = 批准合并(需要管理员或相应权限) - `+1` = 看起来不错,但需要其他人批准 - `0` = 无意见 - `-1` = 需要修改 - `-2` = 拒绝 - **Verified**: - `+1` = 验证通过(通常由 CI 系统或管理员给出) - `0` = 未验证 - `-1` = 验证失败 ### 常用 SSH 命令 ```bash # 查看变更详情 ssh -p 29418 renjianbo@101.43.95.130 gerrit query --format=JSON change:4 # 给变更 +2 ssh -p 29418 renjianbo@101.43.95.130 gerrit review 4 --code-review +2 # 给变更 +2 并添加评论 ssh -p 29418 renjianbo@101.43.95.130 gerrit review 4 --code-review +2 --message "LGTM" # 提交变更(合并) ssh -p 29418 renjianbo@101.43.95.130 gerrit review 4 --submit # 查看所有待合并的变更 ssh -p 29418 renjianbo@101.43.95.130 gerrit query --format=JSON status:open is:mergeable ``` ## ⚠️ 注意事项 1. **权限要求**:+2 通常需要管理员权限或项目所有者权限 2. **自评限制**:通常不能给自己的变更 +2(除非配置了相应权限) 3. **合并条件**:变更需要同时满足: - Code-Review: +2 - Verified: +1(如果启用了) 4. **提交者**:即使获得了 +2,通常也需要点击 "Submit" 按钮才能合并 ## 🔧 如果无法 +2 ### 检查权限 ```bash # 查看您的用户组 ssh -p 29418 renjianbo@101.43.95.130 gerrit ls-members --group Administrators # 查看项目权限 ssh -p 29418 renjianbo@101.43.95.130 gerrit show-access zhini-im ``` ### 临时解决方案 如果没有 +2 权限,可以: 1. 使用 **+1 Code-Review**(如果允许) 2. 或者配置项目允许直接推送(绕过评审) 3. 或者联系管理员添加权限 ## 📚 相关链接 - **Gerrit 首页**: `http://101.43.95.130:8080` - **所有变更**: `http://101.43.95.130:8080/#/q/status:open` - **项目权限**: `http://101.43.95.130:8080/#/admin/projects/zhini-im,access` - **用户设置**: `http://101.43.95.130:8080/#/settings`