-
Notifications
You must be signed in to change notification settings - Fork 0
Issue 36
- 类型:优化
- 状态:已实现,等待 PR 合并
- Issue:https://github.com/ShaoClean/Alune/issues/36
- PR:https://github.com/ShaoClean/Alune/pull/37
- 更新:2026-09-16
- 实现提交:17f9d0a21f338de6e5279ecdf1e7dd5ee86d5b61
- 基线:development / ed104a84544046effd2aee0762bee9b19bdc306f
原历史默认只读取当前分支,装饰性单线无法表示分叉与合并;加载下一页会替换已有记录。原历史列表位于右侧窄栏,也不足以展示多列信息。
本次展示仓库现有引用可达的提交,包括本地分支、远程跟踪分支、标签及游离 HEAD。浏览历史不自动 fetch,不包含远端尚未获取的对象或仅在 reflog 中可达的提交。
采用用户确认的“上方提交图、下方详情”,保留蓝色主题和独立左侧工作区。多列依次展示拓扑、提交信息、分支/标签、作者、时间和短哈希;引用超过两项时显示数量提示,悬停或选择提交可查看完整引用。
未选择时提交图占满内容区;选择后默认占上方 60%,下方显示元数据、文件列表和 Diff。分隔线支持拖动、方向键、Shift 加速及 Home / End。支持全部文件与单文件 Diff、统一/分栏模式;合并提交默认与第一父提交比较。
900px 以下窗口进入提交详情后可通过“返回列表”恢复原滚动位置与键盘焦点;320px 下表格内部横向滚动,不扩大整个页面。历史页独立管理详情,原右侧面板开关在历史页禁用,不修改改动页的面板偏好。
图列表采用固定 36px 行高和虚拟渲染,键盘方向键、Home / End 移动焦点,Enter / Space 选择提交。表头固定,长信息可悬停查看。
GET /repositories/:id/log 由数组调整为分页对象,网页和内置后端需同时升级;保留 branch、file、author、search 查询参数,但本次 UI 不新增筛选入口。
- GraphCommit 扩展 CommitInfo:parents 为完整父提交哈希列表;references 包含完整引用名、显示名、类型及当前分支标记。原 refs 字符串仍保留。
- LogPage:commits、hasMore、nextSkip、revision、shallow。
- count 默认 50,范围 1–200;skip 为非负整数,加载后续页面必须带 revision。
- 默认按拓扑顺序读取全部引用和有效 HEAD,查询时多读取一条判断末尾。空仓库成功返回空页。
- 命令使用既有跨平台参数封装,父提交及元数据按 NUL 分隔,引用从结构化 for-each-ref 读取;支持任意远程名称、带逗号标签和嵌套附注标签。
- revision 是引用、HEAD、浅克隆边界及查询条件的摘要。读取前后均校验;发生变化返回 HTTP 409 / HISTORY_CHANGED,客户端保留已有历史并提示刷新。
- 请求失败保留列表并支持重试;刷新成功替换历史,选中提交仍在新列表中则保留,否则关闭详情。追加按服务端位置继续并按哈希防御性去重,重复点击及迟到请求不会覆盖新状态。
独立纯函数维护尚未到达的父提交轨道。新分支分配空轨道,第一父提交延续当前轨道,其他父提交分配或连接既有轨道。根提交终止连线,未加载父提交的轨道继续向下延伸。每行仅依赖此前轨道及本行父提交,因此分页不改变已有节点位置或颜色。
浅克隆显示明确提示,以 Git 实际可见的边界结束;加深导致边界变化时同样要求刷新。
- 其他本地分支、远程分支及标签独有提交可见,分叉和合并按真实父子关系连接。
- 提交信息、作者、时间、短哈希及引用按多列展示。
- 超过 50 条时连续加载至末尾,无遗漏、重复或覆盖。
- 提交选择、文件变更、统一/分栏 Diff 保持正常。
- 加载失败、引用变化、快速切换仓库及窄窗口返回有对应验证。
详细结果及前后截图见 验收记录。
没有数据库迁移或新持久化设置。API 返回形状变化要求前后端同步部署。Windows / Linux 原生运行本次未验证;服务端全量检查存在 4 个基线测试依赖注入失败,详见验收记录。代码可回退实现提交;Wiki 是独立仓库,需单独回退对应修订。
设计文档首页 · Alune 品牌说明 · 维护约定 · 代码仓库