SVN 提交時提示錯誤,錯誤截圖顯示工作副本元數據損壞,典型提示為「Working copy locked」或「sqlite: database disk image is malformed」。
.svn 目錄下的 SQLite 數據庫文件(wc.db)損壞,常見誘因:
# 命令行
svn cleanup /path/to/working-copy
# TortoiseSVN:右鍵目錄 → TortoiseSVN → Clean up... → 勾選所有選項 → OK
此操作會嘗試修復 wc.db 中的鎖狀態、未完成的操作隊列。
svn checkout 或 TortoiseSVN 「SVN Checkout」svnadmin recover 修復服務端倉庫(極少數情況)若多個開發者同一倉庫同時遇到類似錯誤,可能是服務端倉庫損壞:
# 在 SVN 服務器上執行(需管理員權限)
svnadmin recover /path/to/repository
| 措施 | 說明 |
|---|---|
| 單一客戶端原則 | 同一工作副本同一時間僅用一個 SVN 客戶端操作 |
| 排除殺毒掃描 | 將工作副本目錄加入殺毒軟體白名單,避免掃描鎖定 .svn 文件 |
| 定期提交 | 減少未提交變更量,降低損壞風險與恢復成本 |
| 使用 SVN 1.7+ 版本 | 統一 .svn 目錄結構,WC-NG 格式更健壯 |
| 磁盤健康監控 | 定期檢查磁盤 SMART 狀態,預防硬件故障導致數據損壞 |
svn cleanup,不行再重新 CheckoutSVN 工作副本崩潰本質是本地元數據庫損壞,90% 以上情況通過 Cleanup 或重新 Checkout 即可解決。養成「小步提交、單一客戶端、排除殺毒掃描」習慣可大幅降低發生概率。