SVN目录的cleanup问题和lock问题

现在我们公司使用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字样的文件,找到直接删掉就行了,

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值