SVN conflict的解决办法

        今天提交SVN的时候,又遇到了之前遇到的同样问题,之前就是因为这个问题把我搞的原地爆炸了。今天正好又遇到了类似的问题,我专门查了一下原因并“实时记录一下”处理方式。

症状:

刚刚提交代码的时候提示:

然后我点继续:

提示有多个版本处于冲突状态(conflicted state.) 

继续点OK,显示提交成功了。紧接着我回到我的VS看。。。就看到了我最不想看到的一幕。

(前方高能,哈哈)

1,整个项目通篇都是红杠,傻眼!

2,出现了最让人头疼的

"<<<<<<< .mine"

"||||||| .r546"

"=======
>>>>>>> .r563"

 还有下面这种三个tag靠的比较近的。

同时不仅如此,在你的VS目录下面还会产生一些新文件,如下:

上网查了一下资料得知:

.mine是我本地修改好了的,正准备要提交的版本;

.r546是以前某个版本;

.r563是我当前SVN已经保存的最新版本。

通过查看SVN中的LOG可以看出,r546是我之前提交过的某个版本,而r563是我SVN中现有的最新版本。(注意:564,566是我在写CSDN时,操作后的最新版本,当时能够显示的最新版本就是r563)

病因:

 我后来仔细查了一个出现conflict的原因就是:

我的项目在进行到546处时,因为实验需求,我需要以546为base,去尝试两个方案A,B。所以就在电脑中创建了一个新文件夹作为546的实验备份(checkout r546),原项目则依然在他原有的目录中。

方案A在执行的过程中,不断地更新,直到完成,我始终没有提交过那个备份文件夹中的文件。可看到546,555,557,563都是我在原始目录下提交的代码/版本。因为之前创建的另一个备份文件夹中的546一直没动,所以我在原始目录下所提交的代码一直都很顺利,没有冲突。

最近我在备份文件夹中实现了方案B中的部分功能,一提交就出现了今天的conflict.

简而言之:本地计算机上,以546版本为基础,可以有不同的多份working copy,但你只能从中选择一个你真正想要的提交。如果你都要提交,就会出现跟我一样的conflict。

 

                                                        (上图是小乌龟自己的解释) 

解决办法:

这个问题比较难回答,问题是要看你期待如何解决这个问题。

就我自己遇到的这个问题,正如我前面说的,我是以r546为基础,分别在两个working copy下去尝试两个方案A,B,且原始目录下的方案A已经提交过多个版本的情况下,我提交了方案B的本地code。

所以,我希望的解决方案是,回退到我在提交方案B之前的本地code。正如前面看到的,方案B中的code已经被修改成了画满各种红线的问题code.

1,首先我们找到VS目录下,有冲突的文件目录。右键单击这个带有感叹号的文件,选择SVN commit.

2, 右键单击有问题的红色文件,并选择

然后选择Resolve.

其中:

Edit confilicts:手动修改冲突,相当于手动merge'mine’和‘theirs’两者的code。

Mark as resolved:直接标记为已解决,这样会删除.mine、.r546、.r563这些文件,但这只是标记,如果你直接标记为解决,实际上文件还是冲突的,只是状态修复了。

Resolve conflict using 'theirs':使用他的提交覆盖我的修改来解决冲突。如果你的修改不需要提交,你可以方便的选择这个。

Resolve conflict using 'mine':使用我本地的版本覆盖他的来解决冲突。如果对方提交的代码没什么用,你可以直接使用这个来解决。

最后,输入comment,并提交,得到最新的版本r567.

 与此同时,如果你回到VS的目录下,你会发现原来的那些个.mine、.r546、.r563的文件都消失,而且问题文件上的感叹号也消失了。

成功,SVN showlog看到刚刚提交的版本。

 最后,把其他所有的conflict文件都用相同的方式处理就好。

(全文完)

参考链接:

1,https://segmentfault.com/a/1190000014294501解决冲突

2,解决冲突

3,svn冲突问题详解 SVN版本冲突解决详解-白红宇的个人博客

                                                                (配图与本文无关) 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

松下J27

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值