SVN(TortoiseSVN)详细教程(三)--SVN更新及如何解决冲突文件

原创 2015年09月16日 10:30:28

一. SVN更新(SVN Update)及如何解决冲突文件:

1. SVN update:

更新本地代码与SVN服务器上最新的版本一致,只要在需要更新的文件夹上点击右键或者在文件下空白处点击右键,选择”SVN Update” (获取指定版本中的内容,点击右键执行SVN菜单中的“Update to reversion“),就可以了。

二. 冲突文件的解决:

1. 对于每个冲突的文件Subversion在你的目录下放置了三个文件:如下:


2. 为什么会产生冲突呢?

为什么会产生冲突代码呢?原因很简单就是因为不同的人,同时修改了同一个文件的同一个地方,这时候,他提交了,我没有提交,我就提交不了,这个时候我们要进行先更新,然后在进行提交即可,那如果产生冲突,会生成如上3个文件。 

3. 解决方案如下:

1) 首先我们可以看下1.txt代码如下:

<<<<<<< .mine
aaaasdf11222333 dderderder
=======
b>>>>>>> .r5

2) 然后我去掉多余的代码,1.txt变成这样:

aaaasdf11222333 dderderder

3)进行提交,还是提交不了,如下所示:


4)为什么?因为冲突会产生上面的三个文件,有上面3个文件存在肯定提交不了,这三个文件代码及解释如下:

1. txt.mine
是冲突前自己的文件(如:aaaasdf11222333 dderderder)
1.txt.r4 是冲突前本地的版本文件(如:aaaasdf11222333)
1.txt.r5 是别人赶在你之前提交的版本(如:b)

其中:

<<<<<<<<.mine .....=======
之间的代码是你自己的
======......>>>>>>>.r5
是别人与你冲突的代码部分

这样就不难理解为什么会产生冲突这种奇怪的东西了,因为你们修改的同一块代码,当然会产生冲突。

4. 新的解决方案一:

<<<<<<< .mine
6666666666666600000
=======
66666666666aaaaaaaaaa666
>>>>>>>

 前面说过  <<<<<<< .mine …… =======
    ……之间的代码是我未产生冲突之前修改的代码,
    ======= ………>>>>>>> .r16 这中间……的代码是别人与我冲突代码的部分,从上面的代码可以看到 aaaaaaaaa是我同事新增的 ,00000是我后增加的。

1)使用revert(回滚)操作,该操作表示用户放弃自己的更新代码,然后直接提交,这个时候你的代码就会使服务器上最新的代码,即A用户提交的新代码,你的代码不会被提交,如下所示:


2)点击ok按钮后 可以看到其他三个文件都自动删掉了,1.txt代码变成如下代码:

66666666666aaaaaaaaaa666

也就是a用户提交的代码,我自己更新的代码需要自己动手复制进去即可提交commit。

5. 新的方案二:

1)假如我现在3.txt产生冲突代码如下:

<<<<<<< .mine

333333338888888888888=======

3333cccccccccc3333>>>>>>> .r16

通过第一点我们知道,333333338888888888888这个内容是我修改后,未产生冲突之前的内容,3333cccccccccc3333这个代码是A用户提交的代码,从上面得知 A用户新增内容是ccccccc,而我新增的内容是8888888。

那么第二种解决方法如下:
选择文件->右键Editconficts:这种方法需要冲突双方经过协商之后将代码更改统一之后再提交。不仅解决了冲突而且还保证了代码是正确的,因为只有一方的代码被提交。


 如上图所示,

1)红色的部分是冲突代码:

theirs
表示当前服务器端最新的代码
Mine
表示自己修改后的代码
Merged
表示合并后的代码

2)点击红色后右键选择:use this text block就可以将该部分代码作为合并后的代码

注意:

接下来再说说由于冲突导致重要代码被覆盖的情况。冲突发生时如果采取的措施不对可能会导致部分代码丢失,如果想要还原之前的代码也很容易。

选择文件->右键选择show log在这里面你可以看见之前提交的所有版本,找到你想要恢复的版本右键选择revert to this version 就可以恢复了.

版权声明:本文为博主原创文章,未经博主允许不得转载。

SVN版本冲突解决详解

 版本冲突原因:假设A、B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns...
  • windone0109
  • windone0109
  • 2009年11月23日 15:45
  • 226125

SVN解决冲突的几种情况

SVN是非常实用也好用的版本管理工具,但不是万能的,有时候还需要你手动解决。 一般在你准备提交一个新版本时,首先update一遍,有时候update完之后发现跟本地版本有冲突,这时候,在有冲突文...
  • grdgrdgrd
  • grdgrdgrd
  • 2016年09月29日 11:11
  • 2038

解决常见svn冲突问题

一个大项目在开发中可能会拆分成几个小项目,分别分去,同时共通的部分再由人做,做完后再统一合并。同时,在开发中,共通的部分修改后,其它人要保持同步。                 在这个开发过程...
  • gong_xucheng
  • gong_xucheng
  • 2015年08月03日 14:09
  • 35654

SVN冲突解决方法

原因由于上周五改了代码,但是下班的时候忘记提交SVN了,然后周末赶着上线,所以在家里加班,改了代码,换了图片,整理完成后,打包提交了。然后,今天到公司,想要同步下,执行了下svn update,然后,...
  • wwwwwwwwwwwwdi
  • wwwwwwwwwwwwdi
  • 2017年03月20日 14:18
  • 2180

SVN更新或提交时出现冲突该如何解决

解决版本冲突的命令。在冲突解决之后,需要使用svnresolved来告诉subversion冲突解决,这样才能提交更新。冲突发生时,subversion会在WorkCopy中保存所有的目标文件版本(上...
  • liujianwd
  • liujianwd
  • 2017年08月11日 17:55
  • 1954

svn 冲突解决

2、解决冲突 第一种,利用update的选项进行冲突解决,也就是说不管当前拷贝副本是否是最新版本,都使用—accept参数作为冲突处理方式   --accept ARG          ...
  • cupidove
  • cupidove
  • 2014年11月18日 11:49
  • 2393

svn解决冲突,storyboard打不开怎么办

提交SVN的时候,如果有冲突,解决了提交自然是再好不过。但是如果手贱直接点击了 resolve 然后就提交了,就会发生工程打不开的情况。 解决办法:在svn提交界面,打开工程文件,在 .xcode....
  • linComeHere
  • linComeHere
  • 2016年03月17日 08:40
  • 1686

SVN 树冲突解决详解

目录: 冲突原因 冲突类型 解决方法
  • xgf415
  • xgf415
  • 2017年07月16日 11:17
  • 878

svn 工具conerstone 冲突解决办法

svn冲突了,解决办法只有一个,要么删除他提交的代码,要么删除自己提交的代码(针对冲突的代码) 出现冲突的原因:他修改了文件A里面的东西,提交到svn上了,你在没更新的情况下,也去修改文件A里面的...
  • u010971348
  • u010971348
  • 2016年03月16日 19:17
  • 4119

Eclipse SVN冲突详细解决方案

大家一起开发,难免有时会同时修改同一个文件,这样就要学会解决冲突。当大家更新代码,发现以下情况的时候,就说明你的修改的文件和服务器的文件产生了冲突(一般是别人也改了同一个文件)。 1)和服务器有冲突...
  • nangongyanya
  • nangongyanya
  • 2014年03月25日 13:24
  • 17861
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SVN(TortoiseSVN)详细教程(三)--SVN更新及如何解决冲突文件
举报原因:
原因补充:

(最多只允许输入30个字)