赞
踩
现在我们公司使用SVN管理代码,但是在使用SVN的过程中经常会由于自己的误操作导致SVN不能正常使用,比如在 svn update过程中突然意外中断或者自己取消,这时候就需要使用svn cleanup,但有时也会将SVN直接锁住即使使用svn cleanup也会弹出以下信息:
svn: E200033: sqlite[S5]: database is locked
svn: E200042: Additional errors:
svn: E200033: sqlite[S5]: database is locked
遇到这个假如你有两份代码,这时你就可以将另外一份代码同步到与出错代码相同的SVN版本,在项目目录下进入到隐藏目录.svn中将正常目录中的.svn/wc.db拷贝到出错项目的相同路径下,这时你再进行svn cleanup就会发现代码又能正常使用了。(只要相同SVN版本的.svn/wc.db都可以;不同版本也可以,不过使用不同SVN版本修正后,你会发现windows可视化界面的svn commit不能使用,上传文件只能在linux终端使用命令上传)
如果以上操作不能解决问题或者遇到以下错误:
svn: E200033: Another process is blocking the working copy database, or the underlying filesystem does not support file locking; if the working copy is on a network filesystem, make sure file locking has been enabled on the file server
这时就需要清空数据库中的wc_lock 和 work_queue两张表,因为关于操作的cleanup和lock的信息是保存在这2个表里,具体操作如下:
1、 下载splite3.exe(下载地址:http://www.sqlite.org/download.html)
下载红框中的sqlite3数据库。
2、解压后放到一个位置,比如F盘下
主要使用sqlite3.exe
将项目目录下的.svn/wc.db拷贝到F盘该目录下:
3、打开cmd.exe,执行如下七行命令:
sqlite3 wc.db 回车
select * from work_queue; 回车
delete from work_queue; 回车
select * from work_queue; 回车
select * from wc_lock; 回车
delete from wc_lock; 回车
select * from wc_lock; 回车
注:先执行前4条命令,如果依然提示lock再执行后3条命令,后3条命令主要是解锁。
4、执行完第四步的命令后,将执行清除的wc.db文件复制到原来.svn下,替换掉以前的wc.db,然后再执行清除
到此解决完成,这样执行clean up就会出现成功的提示!!!
5、补充:如果cmd执行完,之后忘记执行第4步,直接去更新代码的话会出现 svn is already locked的提示,因此如果出现这个问题就是没有执行第4步,执行下clean up一般就可以解决该问题的。。
6、补充:如果clean up之后,svn更新文件又报出“Unable to create pristine install stream” 类似的错误,就到你要更新的项目中,找到.svn文件夹(如果没有,则是隐藏了),在该文件夹中新建一个tmp文件夹,重新更新即可。
Svn is already locked情况
如果出现locked表示该位置的.svn文件中,多出了一个lock字样的文件,找到直接删掉就行了,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。