解决Eclipse SVN文件冲突详解
2016-07-28 13:52
351 查看
☞ 本文主要介绍软件『Eclipse』的相关内容:解决Eclipse SVN文件冲突详解。
其下列版本/分支可以参考本文:
全部版本/分支
在使用Eclipse SVN插件进行团队开发的过程,假设开发人员A和B都获取了同一个文件的最新版本(假如版本号为8),并都对其进行了改动,成员A已经提交了自己所作的改动(版本号变为9),如果此时成员B想要提交自己的改动,就极有可能与成员B已经提交的改动产生冲突。
如下图所示,在Eclipse SVN同步视图中的Test.java就是一个产生了版本冲突的文件,那么我们该如何解决SVN的文件冲突呢?
对于产生版本冲突的文件,如果两个人改动的不是同一处位置,例如成员A只改动了文件头部,成员B只改动了文件的尾部,那么无需过多担心,因为现在的SVN已经非常智能,只要两者的改动互不影响,SVN可以智能地将其合并,最后的结果就是文件头部是A改动的结果,尾部是B改动的结果,中间保持不变。
这种情况下,我们可以直接右键该文件,先在关联菜单中点击【更新】(Update),将服务器上的改动更新到本地,然后再点击【提交】即可。
经过文件对比后,如果我们发现两者改动的是同一个位置或者是同一个功能点,那么我们可能需要选择性地保留一个,舍弃另一个。
如果舍弃的是本地文件,请右键单击该文件,然后在关联菜单中点击【覆盖/更新】(英文:Replace/Update),此时Eclipse将提示"是否删除本地更改,并替换为资源库中的文件",直接点击【Yes】即可舍弃本地更改,并更新为资源库中的最新版本。
如果舍弃的是资源库中的文件,请右键单击该文件,然后在关联菜单中点击【标记为合并】,然后再点击【提交】即可。
如果本地和资源库中的文件改动都"各有所需"又"各有所弃",那么我们只能在文件对比中,一处处对比不同之处,并逐步修改为最终版本。
在修改与合并的过程中,有两个图标按钮比较重要。如下图所示的红色边框标注的两个图标,前者可以将右侧与本地文件没有产生冲突的改动复制到左侧的本地文件中(比如,只有main()方法有冲突,右侧的sayHi()方法没有冲突,右侧的sayHi()方法部分就会复制到左侧文件相匹配的位置),后者用于将鼠标光标当前所在的右侧改动区域复制到左侧相应位置。
在确认改动完成之后,同样的点击右键关联菜单中的【标记为合并】,然后直接【提交】即可。
作者:软件指南针(http://www.softown.cn),转载请保留出处!
其下列版本/分支可以参考本文:
全部版本/分支
在使用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),转载请保留出处!
相关文章推荐
- Ubuntu Touch 升级即将来袭!
- About SVN
- CentOS 6.5搭建Apache整合SVN 1.8.5服务器(多版本库权限配置)
- CentOS下SVN服务器测试版安装记录
- 如何在本机搭建SVN服务器
- Windows下搭建本地SVN服务器
- 初级:如何在终端及图形界面中更新 Ubuntu
- 更新linux底层库(openssl)
- 必须会的SQL语句(四) 数据删除和更新
- MySQL使用外键实现级联删除与更新的方法
- bat+xcopy实现只复制比目标文件更新的文件
- 使用 TOP 子句限制UPDATE 语句更新的数据
- 与MSSQL对比学习MYSQL的心得(八)--插入 更新 删除
- php使用COPY函数更新配置文件的方法
- C#在子线程中更新窗口部件的写法
- 关于多对多关系表无法更新与插入的问题
- Bootstrap4一次重大更新 几乎涉及每行代码
- .Net页面局部更新引发的思考
- 在ASP.NET 2.0中操作数据之十七:研究插入、更新和删除的关联事件
- jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法