svn“Previous operation has not finished; run 'cleanup' if it was interrupted

今天碰到了個(gè)郁悶的問題,svn執(zhí)行clean up命令時(shí)報(bào)錯(cuò)“Previous operation has not finished; run 'cleanup' if it was interrupted”。無論你到那個(gè)父層次的目錄執(zhí)行“clean up “,都是報(bào)一樣的錯(cuò)。執(zhí)行cleanup時(shí)候,提示要cleanup??磥硎沁M(jìn)入死循環(huán)了。

可能是頻繁做了一些改名,文件打開的時(shí)候更新或者提交操作,導(dǎo)致svn罷工了。這個(gè)也該算是svn的bug吧。類似的情況,其實(shí)之前也碰到過。之前都是圖省事,把整個(gè)svn checkout的主目錄都刪掉,重新checkout來解決的。但是隨著項(xiàng)目的深入開展,要更新的文件越來越多。這個(gè)問題遲早要解決的,試試看吧。問題的關(guān)鍵看來需要找到死鎖的地方,解鎖才行。網(wǎng)上查了下資料。Svn的operation是存放在“work queue’“里的。而“work queue’是在內(nèi)嵌數(shù)據(jù)庫wc.db的work_queue表中的??纯磜ork_queue表中放了些什么,再做處理。

  1. 內(nèi)嵌數(shù)據(jù)庫一般是用sqlite進(jìn)行輕量級管理的。sqlite-shell-win32-x86-3081101.zip

  2. 為了方便命令行執(zhí)行,將sqlite3.exe放到svn 項(xiàng)目的主目錄下,和.svn目錄同級下。

  3. 執(zhí)行 sqlite3 .svn/wc.db "select * from work_queue".看到有4條記錄。就是剛才我執(zhí)行的一些操作。

    226539|(sync-file-flags 93目錄名 文件名)

    226540|(file-remove 21 .svn/tmp/svn-7B43C232)

    226541|(sync-file-flags 目錄名 文件名)

    226542|(file-remove 21 .svn/tmp/svn-7B48224E)

  4. 執(zhí)行 sqlite3 .svn/wc.db "delete from work_queue". 把隊(duì)列清空。

  5. 執(zhí)行 sqlite3 .svn/wc.db "select * from work_queue". 確認(rèn)一下是否已經(jīng)清空隊(duì)列,發(fā)現(xiàn)已經(jīng)沒有記錄顯示,說明已經(jīng)清空了。

  6. 最后再試一下,看是否可以 clean up了。果然成功了。

如果你是Mac電腦,你就看這里吧!

  1. 第一步找到你的wc.db文件
屏幕快照 2016-10-21 下午2.31.50.png
  1. 使用數(shù)據(jù)庫軟件打開wc.db。

  2. 找到字段work_queue數(shù)據(jù)表,可以看到你之前的下載操作記錄。

  3. 清楚該記錄,你可能刪除不了,因?yàn)槲募侵蛔x的,修改文件權(quán)限的命令:chmod 755 wc.db。

  4. 現(xiàn)在可以放心的刪除了,這樣操作就完成了,你可以重新進(jìn)入管理svn的工具打開目錄,進(jìn)行clean了,問題解決了,是不是很方便呢?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容