SVN 中的TreeConflict冲突怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN 中的TreeConflict冲突怎么解决相关的知识,希望对你有一定的参考价值。

参考技术A 如果不小心提交了一些动态改变根本不需要的文件到svn服务器上,出现冲突如何解决?

基本思路是首先使用svn resolved filename 放弃对文件的修改,然后就可以提交上去了。

然后svn rm
test.log删除掉这个文件。然后再次提交,如果其他人更新的也同样处理。

1.svn ci -m "update"

svn: Commit failed (details follow):

svn: Aborting commit: 'test.log' remains in
conflict

2.使用svn resolved test.log

3.svn ci -m "update"

这个时候应该可以提交了

4.svn rm test.log

删除掉这个文件

5.svn ci -m "update"

再次提交

这个时候服务器上就没有这个文件了。

在其他的服务器终端上如果遇到这个问题的时候重复这个操作。
参考技术B 之前遇到过一次,我的解决办法是这样的,希望可以帮到你,很简单的。首先你看一下报了tree conflict的是那些文件,把这些文件从你本地都删掉,顺便把svn上的也删掉,然后让别人也就是改了这个文件的人,让他不要update,先把冲突的文件做个备份,再update,接着再把备份的文件放入svn。最后你这边再update一下就好了。(不适合所有的情况哦)

解决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),转载请保留出处!  写的很好

以上是关于SVN 中的TreeConflict冲突怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

SVN中如何解决文件冲突

SVN中如何解决文件冲突

svn 更新代码冲突 怎么编辑冲突代码 解决

eclipse svn冲突怎么解决

svn 命令行怎么解决冲突

svn 命令行怎么解决冲突