194 lines
5.7 KiB
Markdown
194 lines
5.7 KiB
Markdown
|
|
# 如何进行 +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`
|
|||
|
|
|
|||
|
|
|