前言¶
在 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