- 
                Notifications
    
You must be signed in to change notification settings  - Fork 105
 
Open
Description
[任务] 放开 CL 只能有一个 commit 的限制,添加 CL 与 commit 的关联表
[任务分值] 30 分
[背景描述]
在当前 Mega 系统中,一个 CL(Change List) 对应一个唯一的 commit。
这种设计在早期阶段足够简单,方便对单一变更进行审查、合并和回滚,但随着项目需求变动,目前需要对接Buckal 在一个CL 中多次commit
因此,需要解除 CL 与 commit 的一对一绑定,改为一对多关系,并修改相关模块的逻辑以适配。
[需求描述]
- 
新增 CL 与 Commit 的关联表
 - 
修改 CL 创建/更新逻辑
• 允许通过 API 或 Git push 上传多个 commit。
• 当检测到多个 commit 时,自动插入多条 cl_commits 关联记录。 - 
修改 Diff / Compare 逻辑
• Diff 比较应能处理多个 commit 的合并结果。
• “CL Diff” 页面展示时应显示所有 commit 的变更(可以按 commit 分组)。 - 
修改状态与合并逻辑
• 合并时需合并所有关联的 commit。
• 状态(如“已提交”、“已关闭”)在所有 commit 均成功合并后更新。
• 支持撤销或 cherry-pick 多个 commit。 - 
修改前端展示
• CL 页面需支持显示多个 commit 列表。
• 可在 UI 中查看每个 commit 的 hash、author、message。 
[代码标准]
- 所有 PR 提交必须签署 
Signed-off-by和 使用GPG签名,即提交代码时(使用git commit命令时)至少使用-s -S两个参数,参考 Contributing Guide; - 所有 PR 提交必须通过 
GitHub Actions自动化测试,提交 PR 后请关注GitHub Actions结果; - 代码注释均需要使用英文;/
 
[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;
[开发指导]
- 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;
 
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。
- Quanyi Ma [email protected]
 - Tianxing Ye [email protected]
 
[备注]
- 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 和 r2cn 开源实习计划 - 学生注册与审核