svn --out of date,clean up,working copy locked等问题

来源:互联网 发布:手机禁止使用移动网络 编辑:程序博客网 时间:2024/05/08 00:40

今天想把项目代码备份到svn上,因为刚开始用,所以难免会遇见很多小问题。今天遇见的问题就是:

out of date

svn: File ‘F:\Workspaces_new\SmartME\src\main\java\com\szair\smartme\productlogsys\service\QuartzJob.java’ is out of date
Item already exists in filesystem
svn: File ‘service/QuartzJob.java’ already exists

网上找的解决方案是:

遇到这个错误原因是本地的资源文件版本不是服务器上面最新的版本,因此修改本地文件再提交时候,就会报Out of date错误。
解决办法,修改文件时候一定要首先保证和服务器一致,再做修改;而此时 需要先将本地文件还原(记着备份哦),再更新和服务器一致后再做修改。

clean up

但是执行update的时候又提示:

Previous operation has not finished; run ‘cleanup’ if it was interrupted

那我就先cleanup呗。但是问题又来了:
svn1

然后就去网上找解决方案(第二步就行不通,所以大家知道就可以了):

问题的关键看来需要找到死锁的地方,解锁才行。网上查了下资料。Svn的operation是存放在“work queue’“里的。而“work queue’是在内嵌数据库wc.db的work_queue表中的。看看work_queue表中放了些什么,再做处理。
1. 先去下载一个 sqlite3.exe;
2.将下载好的 sqlite3.exe文件放到.svn的同级目录下;
3.然后启动cmd命令执行找到你的 sqlite3.exe 接下来执行 sqlite3 .svn/wc.db “select * from work_queue”; 回车操作
4.然后会显示看到很多的记录,接下来执行 sqlite3 .svn/wc.db “delete from work_queue”; 【把队列清空】 回车操作
5.现在一切执行ok了,再回到项目的根目录,去执行clean up操作 ,哈哈,操作ok 。

其实在上面的解决方法中从第二步开始就执行不了,因为你按照这个步骤执行的话,sqlite命令行会报错:near “sqlite3”:syntax error。

后来我在网上搜索了很多关于sqlite.exe怎么使用的,终于在百度经验里找到了。见:sqlite3使用方法

总结一下就是:将你的项目下的.svn目录下的wc.db文件复制到与sqlite3.exe一个文件夹下。然后运用下面的小技巧,进入dos界面,输入: sqlite3 wc.db 之后回车键。后面的就根据下图中输入就行了。
这里有个小技巧,就是可以直接在你需要的文件夹下按住shift键然后鼠标单击右键,选择“在此处打开命令窗口”就可以了。不用输入cmd,然后一步一步的进入到需要的路径下。
之后的输入如图:
svn2

最后将这个文件夹下的wc.db复制到项目.svn文件夹下覆盖之前的wc.db文件,然后再执行clean up就行了。

svn working copy locked

产生这种情况大多是因为上次svn命令执行失败且被锁定了。
如果cleanup没有效果的话只好手动删除锁定文件。
cd 到svn项目目录下,然后执行如下命令
del lock /q/s
就把锁删掉了

由于我的这里执行上面del语句没有找到lock的文件,所以命令行并没有上面结果。附一张别人的图,以免不知道怎么执行:
svn3

经本人实际检验,发现这个方法根本就没什么卵用,每次都是提示找不到文件。网上还有其他的方法说是进入.svn文件夹下删除lock文件,也许是我比较愚笨,反正是没找着有这个文件。
其实我一直犯了一个错误,我电脑上是有安装svn客户端的,然后eclipse也是有装插件的。当在客户端中执行clean up时报错,一级一级的目录执行这个操作依然报错,那么我们为什么不去eclipse里clean up 一下呢。按照这个想法,在eclipse中执行clean up,问题就这么解决了。
大家以后一定要注意,当你使用svn执行命令还未执行完时,千万不要去终止它,那样就容易被锁。比如svn执行提交命令时,首先会将那个文件标示为lock状态,防止在提交过程中文件被修改,如果在这个过程中你打断了的话,后面就无法提交,就会提示”Attempted to lock an already-locked dir”的问题,请大家多注意。

0 0
原创粉丝点击