Files
gerrit/如何进行+2评审指南.md

194 lines
5.7 KiB
Markdown
Raw Permalink Normal View History

2025-12-22 17:12:39 +08:00
# 如何进行 +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 <Change-Number>,<Patch-Set> --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`