解决Eclipse SVN文件冲突详解
在使用Eclipse SVN插件进行团队开发的过程,假设开发人员A和B都获取了同一个文件的最新版本(假如版本号为8),并都对其进行了改动,成员A已经提交了自己所作的改动(版本号变为9),如果此时成员B想要提交自己的改动,就极有可能与成员B已经提交的改动产生冲突。
如下图所示,在Eclipse SVN同步视图中的Test.java就是一个产生了版本冲突的文件,那么我们该如何解决SVN的文件冲突呢?
1、解决简单的文件版本冲突
对于产生版本冲突的文件,如果两个人改动的不是同一处位置,例如成员A只改动了文件头部,成员B只改动了文件的尾部,那么无需过多担心,因为现在的SVN已经非常智能,只要两者的改动互不影响,SVN可以智能地将其合并,最后的结果就是文件头部是A改动的结果,尾部是B改动的结果,中间保持不变。
这种情况下,我们可以直接右键该文件,先在关联菜单中点击【更新】(Update),将服务器上的改动更新到本地,然后再点击【提交】即可。
2、解决二选一形式的文件版本冲突
经过文件对比后,如果我们发现两者改动的是同一个位置或者是同一个功能点,那么我们可能需要选择性地保留一个,舍弃另一个。
如果舍弃的是本地文件,请右键单击该文件,然后在关联菜单中点击【覆盖/更新】(英文:Replace/Update),此时Eclipse将提示"是否删除本地更改,并替换为资源库中的文件",直接点击【Yes】即可舍弃本地更改,并更新为资源库中的最新版本。
如果舍弃的是资源库中的文件,请右键单击该文件,然后在关联菜单中点击【标记为合并】,然后再点击【提交】即可。
3、解决复杂的文件版本冲突
如果本地和资源库中的文件改动都"各有所需"又"各有所弃",那么我们只能在文件对比中,一处处对比不同之处,并逐步修改为最终版本。
在修改与合并的过程中,有两个图标按钮比较重要。如下图所示的红色边框标注的两个图标,前者可以将右侧与本地文件没有产生冲突的改动复制到左侧的本地文件中(比如,只有main()方法有冲突,右侧的sayHi()方法没有冲突,右侧的sayHi()方法部分就会复制到左侧文件相匹配的位置),后者用于将鼠标光标当前所在的右侧改动区域复制到左侧相应位置。
在确认改动完成之后,同样的点击右键关联菜单中的【标记为合并】,然后直接【提交】即可。
转载----作者:软件指南针(http://www.softown.cn),转载请保留出处! 写的很好