Tortoiese svn 冲突解决
当文件被别人修改并提交到SVN服务器后,如果自己本地的文件没有被更新为最新的版本,而且已经做了修改,这时候提交将会被成功,系统会提示你的版本已经过期,并要求你先进行更新,再提交,如下图所示:
依照提示进行更新,如果从服务器更新下来的最新版本和本地的版本都对同一个地方做了修改,则会提示冲突,提示页面如下:
同时,在文件夹目录窗口下,可以发现该文件被标注了黄色感叹号,且多出了三个标注有问号的临时版本文件,如下图所示:
filename.mine
你在提交失败后进行更新操作前的文件,此时此文件里保存的就是你修改后的内容。
filename.rOLDREV
这是你做更新操作以前的BASE版本文件,就是你在上次更新之后未作更改的版本,因而此版本里只包含你上次更新后的内容,本次将要提交的内容不包括在内。
filename.rNewREV
这是你的SVN客户端在更新操作发生的时候从服务器收到的版本(也就是和你目前冲突的那个文件),这个文件对应版本库的head版本。
其中OLDREV是你.svn目录中的修改版本号,NEWREV是版本库中HEAD的版本号。
此时,需要进行版本冲突处理:
鼠标右键点击冲突文件,选择TortoiseSVN --- Edit conflicts 进行处理:
版本冲突处理界面如下图所示:
画面上方左侧为从服务器更新下来的版本(Theirs), 上方右侧为本地版本(Mine), 下方为处理合并之后的预览版本。
点击工具栏上红色向下的箭头
系统会自动跳转到下一部分冲突的区块, 并选中冲突的区块。 此时点击工具栏上蓝色向左或者向右箭头可以选择使用更新版本还是本地版本
按钮具体功能,鼠标移上之后会有提示,Theirs 表示更新下来的版本,Mine 表示本地版本。选择版本之后,可以在画面下方查看预览版本。预览版本的冲突区块在选择版本之前是以?问号显示,版本选择后则以选择版本对应的区块替代显示,如下图所示(此例版本选择 Mine 版本):
依次完成所有冲突的区块,选择保存文件:
再点击工具栏上如下图所示按钮:
将该文件标记为版本冲突已经解决的文件。此时,再在文件夹目录下观察该文件,就没有冲突的标记了,而只有自己所做修改的标记,此时该文件就可以被提交了,如下图所示:
原文和参考文