天天看點

svn clearup 失敗後的解決辦法Can't install '*' from pristine store, because no checksum is recorded for this file。

最近工作中建立了一個svn伺服器,使用的同僚不多,其中有一個同僚在update檔案夾之後照其他人少了兩個檔案。發現之後她直接從repo-browser中 save 了這兩個檔案,編輯之後commit。

結果直接報錯,提示需要clean up。

運作clean up之後會出現如下提示:

Can't install '*' from pristine store, because no checksum is recorded for this file。

解決的思路就是

1,備份svn根路徑下的.svn檔案夾中的wc.db檔案,

2,通過sqlite檢視work queue 和 lock 資訊

機關網絡通路有限制,本來想在csdn查找sqlite的下載下傳連結,發現全部需要資源分,手中拮據,直接在sqlite的官網下載下傳,

下載下傳頁面如下:

https://www.sqlite.org/download.html

目前的最新版本:

https://www.sqlite.org/2020/sqlite-tools-win32-x86-3310100.zip

svn clearup 失敗後的解決辦法Can't install '*' from pristine store, because no checksum is recorded for this file。

.table指令可以檢視資料庫中所有的表名。

select指令可以檢視表中的資料。

wc_lock表儲存的是目前鎖定的操作。

work_queue表儲存的是目前工作隊列中未完成的工作。

3,檢查是否有操作被鎖定,

一般下面兩個指令都會出現lock資訊,和要操作的檔案。

select * from wc_lock;

select * from work_queue;

4,删除lock資訊和queue資訊,

svn clearup 失敗後的解決辦法Can't install '*' from pristine store, because no checksum is recorded for this file。

delete from wc_lock;

delete from work_queue;

5,把整理後的wc.db檔案還原到svn根路徑下的.svn檔案夾中,

6,重新執行clean up指令,恢複正常。

注:

其實sqlite的語句和sql server ,oracle等的基本語句通用,大家應該很容易操作。

但是要注意語句後面必須要加;,否則的話語句無法執行成功。

如下圖所示,select * from work_queue 語句後面沒有;,導緻顯示結果為:...>

svn clearup 失敗後的解決辦法Can't install '*' from pristine store, because no checksum is recorded for this file。