Conflicts have been resolved in the file
Step01:在继续操作之前,先对刚才进行实验的2个MyEclipse软件中的test1项目分别调用“更新”菜单,效果如图6.33 2个MyEclipse中的项目纷纷更新到最新版”所示。
图6.33 2个MyEclipse中的项目纷纷更新到最新版
Step02:并且编辑MyEclipse1中的代码内容并格式化代码如图6.34所示。
图6.34 创建原始测试内容
Step03:将MyEclipse1中的内容提交到仓库中,效果如图6.35所示。
图6.35 提交原始内容到仓库中
Step04:对MyEclipse2中的test1项目调用“更新”菜单效果如图6.36所示。
图6.36 MyEclipse2中的内容和仓库一样了
Step05:再分别对MyEclipse1和MyEclipse2中的web项目调用“更新”菜单再次同步仓库中的Revision版本及内容。
Step06:后面的实验对冲突的解决有很多种办法,所以要保留实验环境的“快照”,将2个MyEclipse中的项目及仓库test1进行备份,如图6.37所示。
图6.37 备份环境快照
Step07:然后在MyEclipse2软件中更改代码如图6.38所示。
图6.38 更改第7-8-10-13行代码并提交Revision值是7
Step08:再回到MyEclipse1中,更改Test.java代码如图6.39所示。
图6.39 更改第7-8-10-13行代码并不提交
Step09:继续操作,在MyEclipse1软件中对test1项目单击“更新”菜单后的效果如图6.40所示。
图6.40 出现冲突了
说明服务器端内容更改了,本地内容也更改了,冲突也就发生了。
Step10:这时对MyEclipse1中的Test.java文件调用“编辑冲突”菜单如图6.41所示。
图6.41 单击编辑冲突菜单
Step11:单击“编辑冲突”菜单后的界面效果如图6.42所示。
图6.42 被红框包围说明有冲突
Step12:如果想使用Theirs中的内容,也就是使用服务器端仓库中的内容则单击如图6.43所示的按钮即可:
图6.43 用鼠标单击最上面的按钮使用Theirs的内容
Step13:单击按钮后代码更改如图6.44所示。
图6.44 左边内容被更改而且还可以手动更改
Step14:编辑左边代码的内容同右边的一样,如图6.45所示。
图6.45 编辑后的代码左右一样
Step15:单击保存按钮后的效果如图6.46所示。
图6.46 无冲突的边框线了
Step16:但test包中还是有多余的文件,如图6.47所示。
图6.47 多余的版本文件
Step17:这时对MyEclipse1中的Test.java类调用“标记为解决”菜单如图6.48所示。
图6.48 单击标记为解决菜单
Step18:弹出界面如图6.49所示。
图6.49 选择第一项使用当前Test.java编辑器中的代码
步骤操作至此,出现了本章节重要的知识点:“Conflicts have been resolved in the file”选项。
选项“Conflicts have been resolved in the file”的作用是使用当前代码编辑器中的内容作为解决冲突的最终版代码。
Step19:单击OK按钮后的效果如图6.50所示。
图6.50 删除多余的文件
Step20:至此步骤,已经成功解决了冲突,并且单击“提交”菜单后出现界面如图6.51所示。
图6.51 本地和服务器端内容同步了无需提交
前面的操作步骤是将本地的代码改成和服务器端代码一样的效果,那如果改成和服务器端不一样的效果会出现什么样的情况呢?
继续实验!
Step21:重置实验环境,将MyEclipse1和MyEclipse2中的test1项目彻底删除,将“C:新建文件夹”路径中的test11和test22项目复制到桌面,然后将桌面的2个项目分别重新导入到MyEclipse1和MyEclipse2软件中。删除C:svn_repository路径中的test1仓库,然后将“C:新建文件夹”路径中备份的test1仓库重新复制到C:svn_repository路径中。
Step22:更改MyEclipse2中的代码如图6.52所示。
图6.52 更改MyEclipse2中7-8-10-13行代码并提交后的Revision值是7
Step23:继续更改MyEclipse1中的代码如图6.53所示。
图6.53 更改MyEclipse1中7-8-10-13行代码不提交
Step24:对MyEclipse1中Test.java文件调用“更新”菜单,出现冲突如图6.54所示。
图6.54 MyEclipse1中出现冲突
Step25:在MyEclipse1中对Test.java文件调用“编辑冲突”菜单,编辑完成后的内容如图6.55所示。
图6.55 使用服务器端的内容而且还增加了字符
Step26:将Test.java文件进行保存后,虽然红色边框依旧显示,但Test.java中的代码就是我们想要的,这时对Test.java文件调用“标记为解决”菜单,还是选择选项,含义是使用当前Test.java代码编辑器中的代码内容,单击OK按钮后效果如图6.56所示。
图6.56 冲突解决了
Step27:步骤进行到此,需要说明的是,本地代码的Revision和仓库中Test.java的Revision版本是一样的,值都是7,但内容是不一样的,如图6.57所示。
图6.57 版本号一样内容不一样说明内容被更改了
Step28:所以可以对MyEclipse1中的Test.java文件调用“提交”菜单,弹出界面如图6.58所示。
图6.58 弹出提交界面
Step29:单击OK按钮后成功提交到仓库,如图6.59所示。
图6.59 成功提交
本章节使用手动编辑源代码的办法并结合“Conflicts have been resolved in the file”选项来解决冲突,手动解决冲突是SVN并发开发出现冲突时最常使用的方案。



