[任务] 重构 Libra 模块实现的 Diff 功能,可以给Mono 复用
[任务分值] 20 分
[背景描述]
当前 Mono 模块中需要获取两个版本之间的差异(diff),但目前的实现方式是直接通过命令行调用 libra 的二进制文件来完成 diff 操作。这种方式带来了一些问题:
• 缺乏类型安全,接口不清晰;
• 不易进行单元测试或集成测试;
• 进程调用带来额外性能开销;
• 难以在多个模块之间复用 diff 逻辑。
[需求描述]
将 libra 中的 diff 实现逻辑进行模块化重构,拆分出核心的 diff 逻辑为一个独立的新模块,并暴露清晰的 API,使得:
• Mono 可直接通过函数调用方式使用 diff 功能;
• 保留原有 CLI 接口,但其实现依赖于新抽离出的核心逻辑;
• 提高整体可维护性和代码复用性。
• 当单个文件diff 输出超过1000行时,需要显示文件内容过大不予显示。
• 分批次将文件输出给前端
[代码标准]
- 所有 PR 提交必须签署
Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide;
- 所有 PR 提交必须通过
GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
- 代码注释均需要使用英文;
[PR 提交地址] 提交到 mega 仓库的 main 分支 mono 目录;
[开发指导]
- 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。
- Quanyi Ma genedna@gmail.com
- Tianxing Ye yetianxing2014@gmail.com
[备注]
- 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 和 r2cn 开源实习计划 - 学生注册与审核
[任务] 重构 Libra 模块实现的 Diff 功能,可以给Mono 复用
[任务分值] 20 分
[背景描述]
当前 Mono 模块中需要获取两个版本之间的差异(diff),但目前的实现方式是直接通过命令行调用 libra 的二进制文件来完成 diff 操作。这种方式带来了一些问题:
• 缺乏类型安全,接口不清晰;
• 不易进行单元测试或集成测试;
• 进程调用带来额外性能开销;
• 难以在多个模块之间复用 diff 逻辑。
[需求描述]
将 libra 中的 diff 实现逻辑进行模块化重构,拆分出核心的 diff 逻辑为一个独立的新模块,并暴露清晰的 API,使得:
• Mono 可直接通过函数调用方式使用 diff 功能;
• 保留原有 CLI 接口,但其实现依赖于新抽离出的核心逻辑;
• 提高整体可维护性和代码复用性。
• 当单个文件diff 输出超过1000行时,需要显示文件内容过大不予显示。
• 分批次将文件输出给前端
[代码标准]
Signed-off-by和 使用GPG签名,即提交代码时(使用git commit命令时)至少使用-s -S两个参数,参考 Contributing Guide;GitHub Actions自动化测试,提交 PR 后请关注GitHub Actions结果;[PR 提交地址] 提交到 mega 仓库的
main分支mono目录;[开发指导]
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在
#p-meta频道和导师交流。[备注]