Files
gerrit/如何进行+2评审指南.md
2025-12-22 17:12:39 +08:00

194 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 如何进行 +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`