Tortoiese svn 冲突解决

  当文件被别人修改并提交到SVN服务器后,如果自己本地的文件没有被更新为最新的版本,而且已经做了修改,这时候提交将会被成功,系统会提示你的版本已经过期,并要求你先进行更新,再提交,如下图所示:

tortoise svn冲突解决_java经验集锦

  依照提示进行更新,如果从服务器更新下来的最新版本和本地的版本都对同一个地方做了修改,则会提示冲突,提示页面如下:

tortoise svn冲突解决_svn_02

  同时,在文件夹目录窗口下,可以发现该文件被标注了黄色感叹号,且多出了三个标注有问号的临时版本文件,如下图所示:

  tortoise svn冲突解决_svn_03

  filename.mine

  你在提交失败后进行更新操作前的文件,此时此文件里保存的就是你修改后的内容。

  filename.rOLDREV

  这是你做更新操作以前的BASE版本文件,就是你在上次更新之后未作更改的版本,因而此版本里只包含你上次更新后的内容,本次将要提交的内容不包括在内。

  filename.rNewREV

  这是你的SVN客户端在更新操作发生的时候从服务器收到的版本(也就是和你目前冲突的那个文件),这个文件对应版本库的head版本。

  其中OLDREV是你.svn目录中的修改版本号,NEWREV是版本库中HEAD的版本号。

  此时,需要进行版本冲突处理:

  鼠标右键点击冲突文件,选择TortoiseSVN --- Edit conflicts 进行处理:tortoise svn冲突解决_工具栏_04

  版本冲突处理界面如下图所示:

tortoise svn冲突解决_工具栏_05

  画面上方左侧为从服务器更新下来的版本(Theirs), 上方右侧为本地版本(Mine), 下方为处理合并之后的预览版本。

  点击工具栏上红色向下的箭头

 tortoise svn冲突解决_服务器_06

  系统会自动跳转到下一部分冲突的区块, 并选中冲突的区块。 此时点击工具栏上蓝色向左或者向右箭头可以选择使用更新版本还是本地版本

 tortoise svn冲突解决_工具栏_07

  按钮具体功能,鼠标移上之后会有提示,Theirs 表示更新下来的版本,Mine 表示本地版本。选择版本之后,可以在画面下方查看预览版本。预览版本的冲突区块在选择版本之前是以?问号显示,版本选择后则以选择版本对应的区块替代显示,如下图所示(此例版本选择 Mine 版本):

tortoise svn冲突解决_svn_08

  依次完成所有冲突的区块,选择保存文件:

tortoise svn冲突解决_工具栏_09

  再点击工具栏上如下图所示按钮:

tortoise svn冲突解决_版本冲突_10

  将该文件标记为版本冲突已经解决的文件。此时,再在文件夹目录下观察该文件,就没有冲突的标记了,而只有自己所做修改的标记,此时该文件就可以被提交了,如下图所示:

tortoise svn冲突解决_svn_11