dsh-svn-plugin: DeepSeek Harness 的 SVN 版本控制面板

前言

在 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 切換到不同的分支。

注意事項

  1. 擱置功能限制:插件啓動時會檢測 svn help 是否包含 shelve 子命令。TortoiseSVN 自帶的 svn.exe(版本 ≤ 1.14.x)不包含該命令,此時“擱置”面板會顯示提示並禁用相關按鈕。改用上游 Apache Subversion 官方二進制(含 shelve)後可恢復正常。
  2. 宿主依賴:必須先安裝並啓用 dsh-better-sidebar 宿主插件才能運行此插件。
  3. 權限與安全:插件以當前 dsh 進程的權限運行,安裝前請檢查源碼與許可證(MIT)。
羽毛球分组比赛记分
小程序二维码

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

小夜