前言
目前我們這邊的內(nèi)網(wǎng)代碼是通過 TortoiseSVN 進行版本管理的,平時用著也挺好的,沒碰到什么大問題。
但是,今天碰到了一個比較棘手的問題,在這里做一下記錄,以方便自己和有需要的朋友在之后碰到該類問題時有個參考。
現(xiàn)象
具體的錯誤現(xiàn)象如下圖所示:

原因
導致上述現(xiàn)象的步驟如下:
從最外層目錄點擊的更新,由于文件數(shù)量巨多,導致長時間處于檢查狀態(tài);
點擊了取消更新按鈕;
取消響應太慢,直接從任務管理器關(guān)閉 TortoiseSVN 進程;
經(jīng)過以上步驟后,再次更新就出現(xiàn)了該現(xiàn)象,不管從哪一級目錄更新都是一樣的錯誤。
嘗試一
根據(jù)錯誤現(xiàn)象中的提示信息,手動執(zhí)行清理操作,結(jié)果彈出下圖所示的錯誤:

不管從哪一級目錄開始,都是一樣的報錯,看來這條路是走不通的,只能另尋他法。
圖中報錯信息 Failed to run the WC DB work queue associate with xxx 的大意是:啟動與 xxx 相關(guān)聯(lián)的 WC DB 工作隊列失敗。
嘗試二
通過查找資料,發(fā)現(xiàn)碰到這種現(xiàn)象的人還是蠻多的,但是,現(xiàn)在網(wǎng)上找出來的資料中,絕大部分都是建議使用 sqlite3 進行數(shù)據(jù)庫清理,數(shù)據(jù)庫位于時選擇的那個本地目錄下的 .svn 文件夾中,名稱為 wc.db,如下圖這樣的:

.svn 里的內(nèi)容當時忘了截圖了,借用一下網(wǎng)上找到的:

吐槽一下,這個數(shù)據(jù)庫文件名稱 wc 讓我有了不好的聯(lián)想。
注意:.svn 文件夾一般是隱藏文件夾,需要設置顯示。
所以,我就根據(jù)網(wǎng)上的教程,在外網(wǎng)下載了 sqlite3 的安裝包,申請了導入內(nèi)網(wǎng)。
在等待導入的過程中,我突然想到,能修改數(shù)據(jù)庫文件(.db)的不僅僅只有 sqlite3,我內(nèi)網(wǎng)機上安裝的 Navicat Premium 也是能解析數(shù)據(jù)庫文件的,那為什么不試一下呢?因為之前只用它連接數(shù)據(jù)庫,一時沒反應過來。
終解
嘗試使用 Navicat Premium 打開 wc.db 文件,果然是可以正常解析的。
接下來就是按照圖上標出來的步驟:
- 找到
WORK_QUEUE表; - 右鍵該表,選擇“清空”;
- 保存
wc.db

用上面修改過的 wc.db 替換 .svn 下的 同名文件,然后再次執(zhí)行清理指令。在稍等十幾秒后,提示信息變?yōu)槿缦滤荆?/p>

最后的請理結(jié)果如下:

可以看到,最終是清理 SVN 成功。
總結(jié)
通過今天這個事,我的總結(jié)如下:
- 在 SVN 更新過程中,盡量避免點擊取消更新;
- 如果確實點了取消,那么就要耐心等待 SVN 執(zhí)行完取消操作,不要強制關(guān)閉 SVN 進程;
- 網(wǎng)上的資料一般只適合用來做參考,且同質(zhì)化太嚴重;
- 解決今天這個報錯的方法肯定不止我寫的這一種。
~
~ 本文完,感謝閱讀!
~
學習有趣的知識,結(jié)識有趣的朋友,塑造有趣的靈魂!