当使用TortoiseSVN切换到分支/标记时,有时候会发生无法切换的情况。具体如下
switch http://192.168.1.201:81/svn/xxxx/src/trunk D:/xxxx/project -r HEAD --force
Working copy not locked; this is probably a bug, please report
svn: Directory 'D:/xxxx/project/WebRoot/WEB-INF/classes/net/.svn' containing working copy admin area is missing
网上查了下相关的问题,这情况下通常按“清理”后就能正常了。但我试了后却未果,具体如下:
cleanup D:/xxxx/project
Path is not a working copy directory
svn: 'D:/xxxx/projcet/WebRoot/WEB-INF/classes/net' is not a working copy directory
提示那个该目录不是一个工作副本,然后到根目录下查看了一下,如下图1:
确实有包括提示的文件夹在内的几个文件夹在内是非工作副本。
然后
1、删除该几个文件夹,尝试进行update操作恢复删除的那个几个文件夹的工作副本。
2、提示已锁定,又是叫我执行清理操作。
3、照着操作执行,此时已经能成功执行清理操作了。
接着
我又尝试执行切换操作,此时提示如下:
switch http://192.168.1.201:81/svn/xxxx/src/trunk D:/xxxx/project -r HEAD --force
Attempted to lock an already-locked dir
svn: Working copy 'D:/xxxx/project' locked
提示项目被锁,然后想了下,因为SVN服务器上的版本跟本地的工作副本不同步,之前删除了几个文件夹。
尝试同步回SVN服务器上的文件夹,执行update操作。最终结果如下:
现在的情况已经正常了,然后再尝试执行清理操作,此时已经正常了。再执行清理完毕后再切换就能成功切换到分支/标记上了。
在本地的工作副本中,如果出现类似的有些文件夹不能同步的情况,只能手动update解决了,虽然有点繁琐,但也不太耗时间,主要能解决就可以了。根本的原因还不怎么清楚,暂时姑且看作一个BUG吧。但能解决就可以了。