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 引用標籤。

圖頭會顯示當前工作區狀態:clean 或 dirty。

搜索、過濾與排序

插件支持對提交進行全範圍搜索,搜索範圍包括:

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

也支持以下過濾和排序能力:

  • 分支名 glob 過濾;
  • 引用類型過濾;
  • 包含所有 refs 選項;
  • date 排序;
  • author-date 排序;
  • topological 排序;
  • first-parent 模式。

結果內查找欄支持大小寫、正則,以及上一項、下一項導航。

提交詳情與文件 diff

選擇某個提交後,可以在提交行下方內聯展開詳情,包括:

  • hash;
  • author;
  • committer;
  • date;
  • parents;
  • 簽名狀態;
  • references。

文件變更支持 tree 或 list 視圖,並顯示:

  • 變更類型着色;
  • 添加或刪除統計。

點擊文件後,可以查看逐行 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 範圍爲 1 到 500,默認 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
羽毛球分组比赛记分
小程序二维码

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

小夜