svn使用中出现的问题
一、操作TortoiseSVN时,报如下错误:
Command Update
Repository UUID 'xxxxxxxx' doesn't match expected //称为xxxxxxxx(1)
UUID 'xxxxxxxx' //称为xxxxxxxx(2)
Finished!
可以看到,原来Repository创建者的UUID是前者,而现在所操作的是后者的UUID。因此,目前的解决办法是:使用相关命令更新Repository的UUID。
具体办法如下:
1、首先查看项目的所有者的UUID
# svnlook uuid /var/svn/repos
xxxxxxx //显示为xxxxxxxx(1)
2、更新项目的UUID
# svnadmin setuuid /var/svn/repos xxxxxxx //设置为xxxxxxxx(2)
3、查看一下更新后的UUID
# svnlook uuid /var/svn/repos
附:
UUID是repository创建时自动生成的一个随机数, SVN Client利用UUID判断是否为同一个resp。一般遇到UUID不同时,需要重新checkout。
二、在win7(我的主机)下同步备份svn,报错如下:
svnsync:E000022, Couldn't get lock on destination repos after 10 attempts
用以下语句解决:svn propdel svn:sync-lock --revprop -r0 https://192......./svn/cyb
然后执行同步备份语句:svnsync sync file:///D:/Repositories/cyb
还是报错如下:
Failed to get lock on destination repos, currently held by '我的主机名:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
最后用,svn propdel svn:sync-lock --revprop -r0 file:///D:/Repositories/cyb
再次执行同步备份语句,成功。
三、svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法
Svn的operation是存放在“work queue’“里的。而“work queue’是在内嵌数据库wc.db的work_queue表中的。看看work_queue表中放了些什么,再做处理。
1. 内嵌数据库一般是用sqlite进行轻量级管理的。网上可以下到sqlite-shell-win32-x86: sqlite3.exe
2. 为了方便命令行执行,将sqlite3.exe放到svn 项目的主目录下,和.svn目录同级下。
3. 执行 sqlite3 .svn/wc.db "select * from work_queue".看到有2条记录。就是刚才我执行的一些操作。
226539|(sync-file-flags 93目录名 文件名)
226540|(file-remove 21 .svn/tmp/svn-7B43C232)
4. 执行 sqlite .svn/wc.db “delete from work_queue”. 把队列清空。
5. 执行 sqlite .svn/wc.db “select * from work_queue”. 确认一下是否已经清空队列,发现已经没有记录显示,说明已经清空了。
6. 最后再试一下,看是否可以 clean up了。果然成功了。
四、SVN commit/import报错:405 Method Not Allowed
用SVN 在commit、mkdir或import时报错:svn: 对“%$s”的方法 %$s 失败: 405 Method Not Allowed
原因:说明svn库中已存在同名目录,检查要导入的目录名是否已存在。
解决:不用操作,或者找到该目录、删除、再导入。

浙公网安备 33010602011771号