当你处在弱网环境下,经常断网、断线,这时候下载SVN代码是个难题,网上搜到的答案也是众说纷纭,那么我就说一下我的解决办法吧:
在你确认断网导致SVN停止下载之后,直接强行关闭下载中的程序。然后再次打开它,将你下载到一半的工程直接添加到SVN工具如Cornerstone中,无需再次checkout直接update即可。
但是,由于SVN自身的原因,可能会报如下错误:
Previous operation has not finished; run ‘cleanup’ if it was interrupted
The operation could not be completed.
这会导致你对该目录无法操作,也不能cleanup。我发现的原因是,在执行下载或者上传任务过程中,任务会被记录到.svn目录下的名为【wc.db】数据库的【work_queue】,这个也是SVN的一个Bug,他认为当前面的任务没运行结束的时候,无法执行接下来的任务,但是此时你又无法停止前面的任务。
这时候的解决办法是进入工程的根目录,查看是否有在执行中的任务,执行
sqlite3 wc.db "select* from work_queue"
然后删除表中记录的旧的任务,执行
sqlite3 wc.db "delete from work_queue"
接着,再执行cleanup清除根目录,然后就可以接着上次的继续下载了。
如果你们有更好的解决办法,也欢迎回复。