前言¶
DSH 的理念是「一切皆插件」。如果在 web 側邊欄裏做日常開發,但項目仍然使用 SVN,缺少一個直接查看狀態、差異和提交歷史的入口會比較麻煩。dsh-better-sidebar-svn 是面向 dsh-better-sidebar 的插件,把 SVN 常用操作放到側邊欄中。
下面介紹它的能力、安裝方式,以及使用時需要注意的邊界。
這是什麼¶
ztyhehe/dsh-better-sidebar-svn 是一個 web 端 DSH 插件,依賴 dsh-better-sidebar >=0.12.0。它爲側邊欄新增 SVN 標籤頁,支持 status、diff、log、commit、update、revert 等常用操作。
該插件由 ztyhehe 維護,使用系統 svn 命令行工具完成實際操作。SVN 命令統一使用 --xml 輸出,並以非交互方式執行。許可證爲 MIT。
核心功能¶
- 狀態面板:變更分「已暫存 / 未暫存」兩段顯示。
- 文件 Diff:查看差異對比,支持關鍵詞搜索、路徑過濾、
n/m計數,以及 Enter / Shift+Enter 上下跳轉。 - 暫存式提交:使用 SVN changelist
dsh-commit管理待提交文件,提交時只提交已暫存文件。 - 常用維護:支持
svn update、還原單個文件修改、添加未版本控制文件。 - 忽略規則:讀寫當前目錄的
svn:ignore,規則不遞歸。 - 提交歷史:分頁加載,並顯示變更文件列表。
- 衝突解決:對沖突文件提供快速解決按鈕。
- 降級容錯:系統缺失
svn時顯示svn-missing提示;面板組件有 ErrorBoundary,渲染異常時顯示佔位而不是整面板空白。
安裝與啓用¶
先確認前置條件:
- 已安裝
dsh-better-sidebar >=0.12.0 - 系統已安裝
svn命令行工具,版本 1.7+ - Node 環境滿足
>=20
安裝命令如下:
cd ~/.dsh && dsh plugin --profile web add dsh-better-sidebar && dsh plugin --profile web add git+https://github.com/ztyhehe/dsh-better-sidebar-svn.git
這條命令分兩步:先添加 dsh-better-sidebar,再添加本插件。構建產物 lib/ 已隨倉庫提交,通過 git 直接安裝時不需要本地構建工具鏈。
安裝後硬刷新瀏覽器(Cmd/Ctrl+Shift+R),側邊欄中會出現「SVN」標籤頁。
如果之後需要移除:
cd ~/.dsh && dsh plugin --profile web remove dsh-better-sidebar-svn
典型用法¶
經過上面的步驟,可以在側邊欄中按以下方式使用:
- 打開「SVN」標籤頁,查看工作副本狀態。
- 在狀態面板裏把文件加入或移出「待提交」列表。
- 點擊文件查看 Diff;需要定位時,可用關鍵詞搜索、路徑過濾和 Enter / Shift+Enter 跳轉。
- 確認暫存列表後執行提交;提交隻影響已暫存文件。
- 需要同步遠端時使用
svn update;需要還原單個文件修改時執行還原。 - 如果某些本地文件不想加入版本控制,可在忽略規則中維護當前目錄的
svn:ignore。 - 在歷史區分頁查看提交記錄,並查看每次提交關聯的變更文件列表。
SVN 命令統一帶 --non-interactive --no-auth-cache 參數,並以 --xml 輸出結果,便於程序解析。
適用場景與注意¶
適合已經使用 DSH web 側邊欄、且項目中存在 SVN 工作副本的場景。它把常用 SVN 操作集中到側邊欄中,便於在瀏覽器裏直接查看狀態、差異、歷史和變更文件。
注意以下幾點:
svn log需要訪問倉庫服務器,可能產生網絡往返;服務端緩存 TTL 爲 1 小時。- 忽略規則僅作用於當前目錄,不遞歸到子目錄。
- 插件以當前 dsh 進程權限運行,安裝前應檢查源碼、依賴和許可證。
- DSH 社區目錄是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係,不應將其理解爲官方應用商店。
資料鏈接¶
- 目錄頁:https://www.skillhub.cn/plugins/ztyhehe/dsh-better-sidebar-svn
- GitHub:https://github.com/ztyhehe/dsh-better-sidebar-svn