相信刚開始学习使用SVN的小伙伴在项目合作开发的过程中一定常常遇到一些影响到自己编写的代码的苦恼。我这里列举了几种常见的问题以及问题的解决方法:
1.误删除和误操作的问题
问题1:有A和B两个人一块合作写项目的时候,B在写代码的时候不小心更改了A写的代码文件的内容提交到了仓库,A该怎样找回自己原来的代码呢?
解决方法:
右键点击被改动的文件---->点击TortoiseSVN选项----->点击Show log选项,会出现如图所看到的的窗体,
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
然后右键点击A的记录--->点击Revert to this revision选项---在弹出的对话框中选择Revert选项。当出现这个窗体中的内容时说明恢复成功了。能够打开看一下文件里内容是否恢复到之前的内容,非常奇妙吧。
问题2:B不小心删除了A写的代码文件。而且提交了。A该怎样找回自己原来的代码文件呢?
解决方法:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
右键点击A用户check out下来的项目目录(如上图)--->点击TortoiseSVN选项----->点击Show log选项。然后找到日志中B为进行删除操作之前的代码文件,复制出来。重命名后再次提交项目就能够了。
如图:
2.多个用户同一时候改动一个从仓库中update下来的最新的文件后,晚提交的用户提交不通过的问题:
问题1:(A和B两个用户改动的内容的位置不一致)A和B两个用户都对同一个从仓库中刚update下来的文件进行改动后。B先进行了提交,A提交的时候出现错误,A应该如何处理呢?(后提交的用户会出现这样的错误截图)
错误截图:
终于文件中的内容是SVN自己主动将两个用户改动的内容合并了(SVN自己主动合并的情况要满足:两个用户改动的内容的行数不冲突)。
如图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
解决方法:A用户找到B用户共同协商怎么处理两个人改动的代码。
问题2:(A和B两个用户改动的内容的位置同样(对同一行的内容进行了改动操作))A和B两个用户都对同一个从仓库中刚update下来的文件进行改动后。B先进行了提交。A提交的时候出现错误,A应该如何处理呢?(后提交的用户会出现这样的错误截图)
错误截图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
多出的三个文件如图:
多出的三个文件的解释(从上往下):
第一个:
第二个:(我(A)想提交的代码)
第三个:
第四个:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
解决方法:
依据上边的三个版本号的代码,A就应该知道怎么改动代码进行提交了,先恢复到如今server中最新版本号的代码文件。如图:
再跟B进行讨论究竟怎么处理改动的代码。
问题3:假设A和B冲突的代码太多的时候。A该怎么处理呢?
当遇到如图这样的情况的时候:
解决方法
:
就不要进行更新了。而应该选择Cancel这一项(由于明明知道有冲突就不要给自己找麻烦了)。将自己改动后的代码文件copy一份到别的地方。然后再重命名后拷贝到原来的目录以下,
进行比对就能够找出你改动后的内容跟server中的代码的不同之处。然后就能够找B进行讨论,共同改动了。