dsh-git-graph:DSH Web 的只读 Git Graph 视图

前言

在 DSH Web 中,Chat 和 Trajectory 主要面向会话与执行轨迹。查看当前工作区的 Git 历史时,常见做法是切到终端或浏览器里打开另一个 Git 图形化工具。

WhitePlusMS/dsh-git-graph 是一个 DSH Web 插件,它在 Chat 和 Trajectory 旁提供专用的 Git Graph 入口,用于查看当前工作区的 Git 历史。刷新该视图时,不会创建会话消息或 tool trace 条目。

这是什么

dsh-git-graph 的仓库路径是 WhitePlusMS/dsh-git-graph,许可证为 MIT,当前可安装版本为 v0.0.2

它解决的问题很具体:在 DSH Web 中直接查看当前会话工作区的 Git 提交拓扑、分支引用、提交详情、文件变更和未提交变更。

当前发布版本是只读的。它不创建、删除、重命名、合并、rebase、push、pull、fetch、创建 tags、stash 或 reset Git 数据。

核心功能

提交拓扑与引用

插件在 Web 界面中显示 Git Graph,包括:

  • 提交拓扑;
  • 分支关系;
  • 合并关系;
  • 父提交关系;
  • 本地分支;
  • 远程分支;
  • 标签;
  • HEAD 引用标签。

图头会显示当前工作区状态:cleandirty

搜索、过滤与排序

插件支持对提交进行全范围搜索,搜索范围包括:

  • commit hash;
  • subject;
  • author;
  • email;
  • reference name;
  • date。

也支持以下过滤和排序能力:

  • 分支名 glob 过滤;
  • 引用类型过滤;
  • 包含所有 refs 选项;
  • date 排序;
  • author-date 排序;
  • topological 排序;
  • first-parent 模式。

结果内查找栏支持大小写、正则,以及上一项、下一项导航。

提交详情与文件 diff

选择某个提交后,可以在提交行下方内联展开详情,包括:

  • hash;
  • author;
  • committer;
  • date;
  • parents;
  • 签名状态;
  • references。

文件变更支持 treelist 视图,并显示:

  • 变更类型着色;
  • 添加或删除统计。

点击文件后,可以查看逐行 diff,包括旧行号、新行号和增删高亮。

未提交变更、比较与显示设置

插件还包含这些入口:

  • 展开 Uncommitted Changes,检查工作区文件和逐文件 diff;
  • 比较任意两个提交之间的文件变更;
  • 元数据条列出仓库 tags 和 stashes;
  • 显示设置面板,包括日期列、作者列、hash 列、日期格式和图样式,并按仓库持久化;
  • 键盘快捷键:上下箭头移动选择、Ctrl+F 查找、Ctrl+Shift+F 打开设置;
  • 按需加载更多提交,最多 500 提交。

当前目录不是 Git 仓库,或仓库没有提交时,页面显示空状态,而不是仓库错误。

安装与启用

下面介绍安装、重启和卸载步骤。

1、安装或更新

从 GitHub 安装 v0.0.2

dsh plugin --profile web add https://github.com/WhitePlusMS/dsh-git-graph/archive/refs/tags/v0.0.2.tar.gz

这条命令用于安装,也可以用于更新现有安装。

2、重启 DSH Web

安装或更新后,需要重启 dsh web,以便 Host 入口和浏览器客户端加载新版本。

3、打开 Git Graph

在 DSH Web 打开后,点击视图切换器中 Chat 和 Trajectory 旁的 Git Graph

4、卸载

如需移除,使用:

dsh plugin --profile web remove dsh-git-graph

典型用法

查看当前工作区 Git 历史

安装并重启 DSH Web 后,从视图切换器进入 Git Graph。页面读取当前会话工作区,并展示当前仓库的提交拓扑、引用和变更内容。

使用模型工具参数

插件提供模型工具参数,常用参数如下:

git_graph({
  path?: string,          // Repository directory; defaults to the current session workspace
  max_commits?: number,   // 1..500, defaults to 100
  all?: boolean,          // Include all reachable refs, defaults to true
  first_parent?: boolean, // Follow only the first parent, defaults to false
  glob?: string[],        // Branch-name glob filters
  search?: string,        // Full-range search: hash, subject, author, email, ref name, date
  sort?: string           // Commit ordering: date, author-date, or topological; defaults to date
})

参数默认值:

  • max_commits 范围为 1500,默认 100
  • all 默认 true
  • first_parent 默认 false
  • sort 默认 date

刷新与空状态

刷新当前仓库时,不会渲染为会话工具卡片,也不向 trajectory 追加刷新事件。

如果当前目录不是 Git 仓库,或仓库没有提交,页面显示空状态。

适用场景与注意

适合这类使用场景:

  • 在 DSH Web 中查看当前工作区的 Git 历史;
  • 查看提交拓扑、分支、远程分支、标签和 HEAD 引用;
  • 查看某个提交的父提交、作者、提交者、日期和签名状态;
  • 查看文件变更、逐行 diff、未提交变更和提交间差异;
  • 希望刷新 Git Graph 时不产生会话消息或 tool trace 条目。

使用注意:

  • 当前发布版本只读,不修改 Git 数据;
  • Host 通过固定 subprocess 参数读取 Git 数据,不使用 shell;
  • path 仅作为 Git 子进程工作目录,不会插入 shell 命令;
  • 文件读取请求被验证保持在仓库内;
  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证;
  • 许可证为 MIT;
  • 这里的目录页是 DSH 社区插件目录,不等同于官方应用商店。

链接

  • 目录页:https://www.skillhub.cn/plugins/WhitePlusMS/dsh-git-graph
  • GitHub:https://github.com/WhitePlusMS/dsh-git-graph
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye