[任务] Pack Encode:实现完备的 .pack 生成功能
[任务分值] 80 分
[背景描述]
现有 PackEncoder 能产出 .pack,但缺少同步索引构建;编码阶段天然拥有对象顺序、偏移与哈希信息,适合直接生成 .idx。
[需求描述]
- 在编码过程记录对象 hash、offset、CRC32。
- 编码完成(写入 pack trailer hash)后调用索引写入:构造 fan-out、排序哈希、CRC32、offset、大偏移区、pack hash、idx 尾部 hash。
- 为 PackEncoder 增加可选 idx 输出路径配置。
- 提供测试:无 delta 与有 delta(窗口>0)场景都能生成可用 idx,并可被解码侧使用快速定位。
- 失败(IO 等)需报告错误但不破坏已写 pack。
[代码标准]
- 所有 PR 提交必须签署
Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide;
- 所有 PR 提交必须通过
GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
- 代码注释均需要使用英文;
[PR 提交地址] 提交到 git-internal 仓库的 main 分支 src 目录;
[开发指导]
- 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-mega 频道和导师交流。
- Quanyi Ma genedna@qq.com
- Tianxing Ye yetianxing2014@gmail.com
[备注]
- 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 和 r2cn 开源实习计划 - 学生注册与审核
[任务] Pack Encode:实现完备的 .pack 生成功能
[任务分值] 80 分
[背景描述]
现有 PackEncoder 能产出 .pack,但缺少同步索引构建;编码阶段天然拥有对象顺序、偏移与哈希信息,适合直接生成 .idx。
[需求描述]
[代码标准]
Signed-off-by和 使用GPG签名,即提交代码时(使用git commit命令时)至少使用-s -S两个参数,参考 Contributing Guide;GitHub Actions自动化测试,提交 PR 后请关注GitHub Actions结果;[PR 提交地址] 提交到 git-internal 仓库的
main分支src目录;[开发指导]
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在
#p-mega频道和导师交流。[备注]