Skip to content

[r2cn] 定位并解决tag 浏览代码报错的问题 #1588

@benjamin-747

Description

@benjamin-747

[任务] 定位并解决tag 浏览代码报错的问题

[任务分值] 10 分

[背景描述]

在 Mega 系统 中,用户可以通过 Web UI 浏览代码内容。目前代码浏览功能主要基于Tag 实现,底层逻辑是通过指定分支对应的 ref 或 commit_id 从存储层加载文件树(Tree)与文件内容(Blob)。

近期在新增 按 Tag 浏览代码 的功能后,部分用户在通过 tag 访问代码时出现以下问题:
• 部分 tag 能正确加载代码,而部分 tag 直接报错;

[需求描述]

初步排查显示,问题可能与:
1. Tag 的解析逻辑(refs/tags/<tag_name>)未正确解析为对应 commit;
2. 对于 annotated tag(带 message 和签名)未正确处理;
3. 文件树加载时未正确 fallback 到 commit 对应的 tree;
4. 缓存层(refs 缓存或 tree 缓存)未正确区分分支与 tag。

[代码标准]

  1. 所有 PR 提交必须签署 Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide
  2. 所有 PR 提交必须通过 GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
  3. 代码注释均需要使用英文;

[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;

[开发指导]

  1. 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;

[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。

  1. Quanyi Ma [email protected]
  2. Tianxing Ye [email protected]

[备注]

  1. 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务r2cn 开源实习计划 - 学生注册与审核

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions