执行svn ci命令的时候, svn报如下错误
svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted
提示执行svn cleanup,但是仍然报错,如下:
[363] Peter@ssdserver01 verification/UT/ft $ svn cleanup
svn: E155009: Failed to run the WC DB work queue associated with '/home/Peter/proj2024/frontend/trunk/verification/UT/ft',
work item 31652 (file-install trunk/verification/UT/ft/tc/tc.list 1 0 1 1)
svn: E155017: Can't install '/home/Peter/proj2024/frontend/trunk/verification/UT/ft' from pristine store,because no
checksum is recorded for this file
知道这个ft 路径的svn 彻底坏了,于是想重新svn up ft ,将ft 重命名为ft_bak, 执行svn up ft还是报E155037
svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted
因此知道必须解决这个问题,才能继续工作了。
于是百度解决办法,查询到需要使用sqlite 删除 之前未成功的任务。
首先查询svn是否有sqlite,在工作目录输入sqlite ,用tab自动补全,发现有sqlite3可用
[364] Peter@ssdserver01 verification/UT $ sqlite
sqlite3 sqlite3_analyzer
step 1: 执行 sqlite3 wc.db ‘select * from work_queque’
必须去wc.db路径下执行该命令,否则会报如下错误
[365] Peter@ssdserver01 verification/UT $ sqlite3 wc.db 'select * from work_queque'
Error: no such table: work_queue
wc.db在 .svn路径下, .svn 在download项目的路径下,我之前通过svn co::xxxx/frontend 到/home/Peter/proj2024 路径下,于是我就去该路径的frontend 目录查看这个隐藏文件,进入目录后执行命令成功
[370] Peter@ssdserver01 proj2024/frontend $ ls -al
total 16
drwxr-xr-x 4 Peter ssd 4096 Aug 13 15:58 .
drwxr-xr-x 4 Peter ssd 4096 Jun 5 17:38 ..
drwxr-xr-x 4 Peter ssd 4096 Sep 3 17:43 .svn
drwxr-xr-x 23 Peter ssd 4096 Aug 22 11:05 trunk
[371] Peter@ssdserver01 proj2024/frontend $ cd ./svn/
entries format pristine tmp/ wc.db
[372] Peter@ssdserver01 proj2024/frontend/.svn $ sqlite3 wc.db 'select * from work_queque'
31652|(file-install trunk/verification/UT/ft/tc/tc.list 1 0 1 1)
以上显示信息表示执行成功
如果没有sqlite,可去 官网下载 https://www.sqlite.org/download.html
step2: 执行 sqlite3 wc.db ‘delete from work_queue’
注意delete 后面没有* 号否则会报错
[373] Peter@ssdserver01 proj2024/frontend/.svn $ sqlite3 wc.db 'delete * from work_queque'
Error: near "*": syntax error
[374] Peter@ssdserver01 proj2024/frontend/.svn $ sqlite3 wc.db 'delete from work_queque'
[375] Peter@ssdserver01 proj2024/frontend/.svn $
命令正确执行后没有任何提示,到此就成功啦
然后切回到工作目录进行cleanup
[378] Peter@ssdserver01 verification/UT/ft $ svn cleanup
[379] Peter@ssdserver01 verification/UT/ft $
cleanup 成功,即可执行 svn ci , svn up等操作
参考文章:
https://blog.csdn.net/zhoucheng05_13/article/details/81709921
https://zhuanlan.zhihu.com/p/144547925
附上svn st 常见status:
“A” 增加, “C” 冲突, “D” 删除, “I” 忽略, “M” 改变, “R” 替换
“X” 未纳入版本控制的目录,被外部引用的目录所创建
“~” 版本控制下的项目与其它类型的项目重名
“?” 未纳入版本控制, 需要svn add ,svn ci上库
“!” 该项目已遗失(被非 svn 命令删除)或不完整, 即svn 库上有,本地没有。一般都是本地文件被重命名了,svn 找不到。解决办法:将备份文件重命名为和svn上的一致,此时文件状态会变成R,表示被替换,我通过svn ci 本地文件上库来解决不一致问题
参考文章
https://www.cnblogs.com/pingfan1990/p/5122205.html