Repository navigation
GitMate 1.11.1
不是仓库时,顶上的按钮该禁的禁、该留的留。
修的问题
面板明明显示「这里还不是 Git 仓库」,上面的分支图表(历史)按钮却还能点 —— 点进去只有一个空视图。
同步按钮早就有 || !status?.isRepo 的守卫,历史按钮漏了。
改动
| 按钮 | 不是仓库时 |
|---|---|
| 同步 | 禁用(原本就对) |
| 历史(分支图表) | 现在禁用 |
| 设置 | 刻意保持可点 |
设置不加守卫是有意的:面板不按预期工作时,人第一个想去的就是设置 —— 把它一起禁掉,等于在最需要的时候锁门。
顺带:仓库在面板开着时消失(切换了文件夹、.git 被删掉)会让视图退回改动列表,而不是让历史按钮亮着一个显示不出来的页面。
验证
node test/smoke.mjs # 601 项断言新增 3 项断言:历史按钮的 disabled 必须包含 status?.isRepo、设置按钮的 disabled 必须仍是那个单纯的 busy 判断(这条是防回归的关键 —— 它保证后人不会"顺手统一"把设置也禁掉)、以及退回逻辑存在。
渲染守卫新增两条路径:「不是仓库 + 请求历史视图」和「不是仓库 + 请求设置视图」——前者正是这个 bug 的状态。