一SVN下的文件被locked不能update和commit
最近做项目的时候,遇到这个问题,SVN下的文件被locked不能update和commit。其提示如下:
解决办法:
执行“清除”操作后,就可以了。(点击Clean up…即可,之后就可以提交和更新了)
二 SVN还原提交的版本
由于在客户端提交应用程序时的误操作,导致修改了基线版本,此处利用两个命令来进行恢复:
1、将客户端恢复合并到指定版本:
svn merge -r 112:111 svn://192.168.0.119/UBoot/trunk/u-boot-1.3.3
此步骤将下位机由112恢复到111版本:
2、重新修订基线版本
svn commit -m "Undoing change committed in r111."
此步骤将恢复后的111版本提交,但是此时的版本号为113
三 svn代码冲突,不能提交的解决方法
对于刚接触svn的人来说,svn冲突后,不能提交是件让人很郁闷的事情。最让人郁闷的事,是代码间的覆盖。你把我代码盖了,我会很火大的。谁把谁的盖了都不爽。
为什么会出现代码冲突问题呢,因为不同的人,同时修改了同一个文件的同一个地方,这个时候,他提交了,你没有提交,你就提交不了,这个时候,你要先更新,更新就会出现代码冲突问题。一般情况,要尽量避免多个人修改同一个文件,如果你改的文件是公用文件,这个时候,最好和大家勾通一下,大家都在改就不好了。
下面我说一个,通用的解决冲突的办法,还不会覆盖代码,以test.java为例 :
1,修改文件后提交不了,大多是因为版本不一致造成的。更新一下,不产生冲突的情况,就可以提交了。
2,更新文件,如果出现冲突的情况,打开冲突文件test.java会看到类似以下的内容
<<<<<<<<<<<<<<<
asdfadfadfadf
11111111111111
=======
asdfadfadfadf
111111111111111
222222222222
>>>>>>>>>>>>>>>>
结合别人修改的内容和自己修改的内容,然后把文件中的<<<<<,=====,>>>>>>>这类冲突符号去掉。去掉后,还是不能提交的,为什么?因为冲突时会产生三个文件,有这三个文件存在肯定提交不了。
客户端用的tortoisesvn(这个估计程序员用的最多),冲突时会多产生,三个文件
test.java.mine 是冲突前自己的文件
test.java.版本号 是冲突前本地的版本文件
test.java.服务器的版本号 是冲突后服务器版本文件
提交的时候,把这三个文件删除掉就可以提交了。
3,产生覆盖的原因。
a),在修改冲突文件test.java时,把别人代码都删除掉了,只留下了自己的代码。这样就会产生覆盖了。
b),把test.java.mine中的内容直接copy到test.java文件,这样也会产生代码覆盖。
上面二种情况都是我亲眼看到新手这样操作的,要避免这二种操作方法。