SVN目录的CleanUp问题

来源:互联网 发布:小学语文课文造假知乎 编辑:程序博客网 时间:2024/05/24 22:43
    今天在使用SVN更新代码的时候,android studio 报错,错误是:


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

  百度了好久才找到了解决方法,现解决方式如下:

  类似的情况,其实之前也碰到过。之前都是图省事,把整个svn checkout的主目录都删掉,重新checkout来解决的。但是随着项目的深入开展,要更新的文件越来越多。这个问题迟早要解决的,试试看吧。问题的关键看来需要找到死锁的地方,解锁才行。网上查了下资料。Svnoperation是存放在“work queue’“里的。而“work queue’是在内嵌数据库wc.dbwork_queue表中的。看看work_queue表中放了些什么,再做处理。

  1.内嵌数据库一般是用sqlite进行轻量级管理的。网上可以下到sqlite-shell-win32-x86: sqlite3.exe

  2.为了方便命令行执行,将sqlite3.exe放到svn 项目的主目录下,和.svn目录同级下。

打开CMD,进入.svn所在的目录。

  3.执行  sqlite3 .svn/wc.db "select * from work_queue".看到有4条记录。就是刚才我执行的一些操作。

  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.执行  sqlite3 .svn/wc.db "delete from work_queue". 把队列清空。

  5.执行 sqlite3 .svn/wc.db "select * from work_queue". 确认一下是否已经清空队列,发现已经没有记录显示,说明已经 清空了。

  6.执行 sqlite3 .svn/wc.db "delete from wc_lock"

  7.执行 sqlite3 .svn/wc.db "select * from wc_lock". 

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

  注释:最早只是清空了work_queue问题没有解决,提示lock,于是就有了第6,第7这两步操作。可以先执行第4步和第5步操作,没问题的话就证明成功了。如果提示lock的话再执行第6和7步操作。

 sqlite下载链接




  

0 0
原创粉丝点击