前言¶
在 Web 端開發時,如果項目仍在使用 SVN 進行版本管理,通常需要在終端執行 svn 命令。DeepSeek Harness 提供了基於瀏覽器的集成開發環境,但缺乏原生的 SVN 管理面板。dsh-svn-plugin 插件通過在 dsh-better-sidebar 右側邊欄注入獨立 Tab,將 Git 面板同款的交互體驗帶到 SVN 工作副本上,覆蓋從狀態查看到分支管理的核心流程。
插件定位¶
這是一個面向 DeepSeek Harness Web GUI 的 SVN 管理插件,由 JinRyu-online 維護。它以獨立 Tab 的形式嵌入 dsh-better-sidebar 右側邊欄,旨在解決 Web 環境下 SVN 操作不便的問題,並提供與 Git 面板一致的視覺風格和交互體驗。
核心功能¶
插件實現了 SVN 的基礎操作與高級功能,主要通過以下面板實現:
- 本地修改面板:基於
svn status --xml生成狀態樹。界面採用 Git 面板風格,將文件分爲“更改”、“未版本化”、“已忽略”三個分組。支持字母徽章(M/A/D/C 等)與圖標操作,支持分組與目錄摺疊。 - 提交與更新:底部提供提交欄,支持通過
Ctrl+Enter提交,選擇文件後未版本化文件會自動執行svn add。支持svn update、svn revert和svn cleanup。 - 代碼對比:支持工作副本與 BASE(基準版本)或指定版本區間的差異對比,使用彩色 unified 渲染格式。
- 歷史記錄:基於
svn log --xml -v,以 Git 風格展示歷史行。選中提交後,詳情區懸浮固定在底部,列表獨立滾動。點擊變更文件可展開該文件的單文件 Diff(支持 A/M/D 變更類型,紅色高亮刪除,綠色高亮新增)。 - 擱置(Shelve):支持
svn shelve、unshelve、shelve-delete和shelve --list。此功能用於在提交前暫存未完成的修改。 - 衝突解決:支持
svn resolve --accept working等命令,用於解決版本衝突。 - 代碼標註:支持
svn blame,逐行標註版本號與作者信息。 - 分支與標籤:支持
svn copy創建分支、svn switch切換分支、svn merge -r a:b URL進行合併。 - 倉庫瀏覽:支持
svn list瀏覽遠程目錄樹,並提供檢出功能。 - 屬性與分組:支持查看和修改
svn:ignore等屬性,支持 ChangeList 分組提交以及文件的lock/unlock操作。 - Agent 工具:插件向 Agent 注入了可直接調用的工具,包括
svn_status、svn_log、svn_diff、svn_commit、svn_update、svn_revert、svn_add、svn_shelve、svn_unshelve、svn_shelve_list和svn_blame。
依賴條件¶
運行此插件需要滿足以下環境要求:
| 依賴項 | 版本要求/說明 |
|---|---|
| DeepSeek Harness (DSH) | 0.1.0-rc.8+ |
| dsh-better-sidebar | ≥ 0.14.0(必須安裝,提供宿主服務) |
| 系統 SVN 客戶端 | 任意版本(含 1.14.x) |
| Node.js | 與 DSH 宿主一致(僅開發構建時需要) |
UI 風格說明:與 dsh-better-sidebar 的“源代碼管理”面板共用同一套 DSW 設計 token(顏色、字體)與圖標。
安裝與啓用¶
通過 DeepSeek Harness 的插件命令行安裝:
# 安裝插件
dsh plugin --profile web add dsh-svn-plugin
安裝完成後,重啓 dsh web 宿主進程,並在瀏覽器中執行硬刷新(Ctrl+Shift+R),側邊欄中會出現“SVN”Tab。
典型用法¶
- 查看狀態:點擊 SVN Tab,查看本地工作副本的更改狀態樹。
- 管理忽略規則:在“本地修改”面板中,未版本化文件會自動根據工作目錄下的
.gitignore規則歸入“已忽略”分組。 - 暫存修改:在“擱置”面板中暫存當前修改,待完成後再恢復。
- Agent 操作:在 Agent 對話中,可以直接調用
svn_status獲取狀態,或調用svn_log查看歷史。 - 分支切換:在“分支”面板中執行
svn switch切換到不同的分支。
注意事項¶
- 擱置功能限制:插件啓動時會檢測
svn help是否包含shelve子命令。TortoiseSVN 自帶的svn.exe(版本 ≤ 1.14.x)不包含該命令,此時“擱置”面板會顯示提示並禁用相關按鈕。改用上游 Apache Subversion 官方二進制(含 shelve)後可恢復正常。 - 宿主依賴:必須先安裝並啓用
dsh-better-sidebar宿主插件才能運行此插件。 - 權限與安全:插件以當前
dsh進程的權限運行,安裝前請檢查源碼與許可證(MIT)。