前言
SVN在使用的过程中会遇到各种各样的问题,小黑在最近的使用中,遇到如下的两个问题,这里贴出来供大家参考
问题记录
SVN在源码仓库中不存在,导致无法删除和上传
问题提示:
Working copy path 'SubVIs/ControlMake.vi' does not exist in repository解决方法:
右键,打开SVN的浏览器,在浏览器中删除该文件夹下的所有东西,然后重新上传一次
SVN上锁后无法上传文件
问题现象:
问题分析:
观察发现,出现问题的VI位于.. 512@Toolbar ConfigTest POP UPPOP UP Demo1Demo 1.vi
由于SVN的上锁机制导致不在上锁的电脑上无法进行解锁操作
问题解决:
上锁的文件上具有小锁的标志
在上锁的目录上Check for modification
检查源码仓库中对代码的锁定
问题参考:
SVN 的锁定与解锁
一直习惯于单枪匹马作战,因此使用 SVN 做版本控制时,就没有协同开发的概念,自然就用不到 SVN 的锁机制了。
现在在公司上班就不一样了,几个人做同一个项目,代码就有可能被被人修改。
这个项目初期就告诉他们,为了操作的简易性,项目成员修改一个文件时,不需要锁定文件。但是前提条件是,每个人负责一个独立的模块。
一直都很正常,直到昨天晚上,一个同事修改了我的模块的内容,并提交了……
我 UPDATE 代码后,发现我的代码被 SVN 太过“聪明”地覆盖了,导致昨天写的许多代码段被覆盖,大杯具也 T_T
自此,我就要求项目成员把自己负责的模块下的所有文件加锁,其他任何人需要修改你的模块代码前,得先通知你,再强制锁定相应的模块。
当然,如果文件太多,或者一个文件经常需要由好几个人修改,你可能不希望将所有文件回锁,那么可以要求项目成员在修改这些模块之前加锁,防止其它成员同时修改并提交修改。
提交的时候,如果想要继续维持锁状态,要勾选上“保持锁定/keep lock(s)”的选项,否则提交后会自动释放锁。
如果你的工作目录丢失,重新 check out 之后你可能会发现,锁定者是自己但是无法获取锁,这时你需要使用“强制获取锁/steal lock(s)”来获取锁。
如果一个文件被别人锁定,而你一定要修改这个文件,那么先通知锁定人,再“强制获取锁/steal lock(s)”。
— EOF —