本文和大家学习一下SVN冲突问题,主要包括冲突如何产生和冲突的解决方法介绍,希望通过本文的学习大家能够掌握如何避免和解决SVN冲突。
本节讲解一下SVN冲突问题,随着SVN的快速发展,SVN可以再多个操作系统中搭建,这是难免会遇到SVN冲突问题,这些冲突如何解决,本文就为大家一一讲解。
1、如何产生SVN冲突
当开发人员A和开发人员B从版本库同时检出文档1.txt,而A和B同时修改了1.txt的同一地方,后提交的一方会在拷贝副本中产生冲突。
两个工作拷贝,A拷贝中文件1.txt内容为
dfqerq
123dfwre
B拷贝中文件1.txt内容为
dfqerq
123erwrq
在B版本提交之前版本库上的1.txt(base版本)内容为
dfqerq
B拷贝先提交版本到版本库中,以至于最新版本内容变为
dfqerq
123erwrq
此时A版本也提交则会产生冲突,无法提交,需要先svnupdate,此时会在A拷贝中产生三个临时文件1.txt.rNew\1.txt.rOld\1.txt.mine,其中1.txt.rNew是最新版本,1.txt.rOld是base版本,1.txt.mine是A作者修改后的版本,在此例中内容为
dfqerq
123dfwre
而update之后A拷贝中的1.txt内容为
<<<<<<<.mine
dfqerq
123dfwre=======
dfqerq
123erwrq>>>>>>>.r18
其中<<<<<<<.mine与=======之间表示A修改后的内容,=======与>>>>>>>.r18之间是版本服务器上的版本
2、解决SVN冲突
第一种,利用update的选项进行SVN冲突解决,也就是说不管当前拷贝副本是否是最新版本,都使用—accept参数作为冲突处理方式
--acceptARG:specifyautomaticconflictresolutionaction
('postpone','base','mine-conflict',
'theirs-conflict','mine-full','theirs-full',
'edit','launch')
(p)postpone-marktheconflicttoberesolvedlater//让文件在更新完成之后保持冲突状态。
(df)diff-full-showallchangesmadetomergedfile//使用标准区别格式显示base修订版本和冲突文件本身的区别。
(e)edit-changemergedfileinaneditor//用你喜欢的编辑器打开冲突的文件,编辑器是环境变量EDITOR设置的。
(r)resolved-acceptmergedversionoffile//完成文件编辑之后,通知svn你已经解决了文件的冲突,它必须接受当前的内容—从本质上讲就是你已经“解决了”冲突。
(mf)mine-full-acceptmyversionofentirefile(ignoretheirchange//丢弃新从服务器接收的变更,并只使用你查看文件的本地修改。
(tf)theirs-full-accepttheirversionofentirefile(losemychanges)//丢弃你对查看文件的本地修改,只使用从服务器新接收的变更。
(l)launch-launchexternaltooltoresolveconflict//启动一个外置程序来执行冲突解决,这需要一些预先的准备。
(h)help-showthislist//显示所有在冲突解决时可能使用的命令。
第二种,在update时并不处理SVN冲突,利用svnresolve解决冲突
1、利用svnresolve--acceptbase选择base版本,即1.txt.rOld作为最后提交的版本
--acceptARG:specifyautomaticconflictresolutionsource
('base','working','mine-conflict',
'theirs-conflict','mine-full','theirs-full')
2、手工修改1.txt文件,然后将当前拷贝即1.txt作为最后提交的版本
svnresolve--acceptworking1.txt
3、svnresolve--accepttheirs-full1.txt使用1.txt.rNew作为最后提交的版本
4、svnresolve--acceptmine-full1.txt使用1.txt.mine作为最后提交的版本
5、svnresolve--acceptmine-conflict1.txt使用1.txt.mine的冲突部分作为最后提交的版本
5、svnresolve--accepttheirs-conflict1.txt使用1.txt.rNew的冲突部分作为最后提交的版本。本节关于SVN冲突问题介绍完毕。
相关推荐
SVN冲突
SVN解决冲突(合并别人的修改) 详细讲解了svn冲突合并的方法 非常适合初学者学习
EclipseSVN冲突详细解决方案.docx
SVN冲突的处理SVN冲突的处理SVN冲突的处理SVN冲突的处理SVN冲突的处理SVN冲突的处理SVN冲突的处理SVN冲突的处理
怎样解决svn冲突呢,来看一下吧,不错的,好不容易搜到的...
SVN冲突解决方案.docx
项目开发代码管理,svn版本冲突解决,有效提高团队效率。
SVN版本冲突解决详解
svn 解决冲突 confict svn 解决冲突 confict svn 解决冲突 confict
SVN冲突处理解决方法 1.SVN冲突产生的原因 2. 解决冲突的方式 3.注意事项 不同版本的同一个位置出现了不同的东西
解决SVN冲突,带图解,大家一看就懂,很简单的,呵呵
SVN怎么解决文件冲突conflict
SVN实用技能及冲突管理word rar SVN实用技能及冲突管理word rar SVN实用技能及冲突管理word rar SVN实用技能及冲突管理word rar SVN实用技能及冲突管理word rar
svn的合并和冲突的解决一直以来困扰着很多人,该文档以图解的形式举例介绍svn的merge与冲突。
Tortoise SVN 版本冲突处理介绍
平时我们说的冲突,是因为对同一文件的不同修改造成的冲突。树冲突,指的是由于目录(文件)树的改变,造成内容修改修改不能匹配在...本文介绍了重现 update 导致树冲突的重现过程,对SVN冲突解决机制进行实例探讨。
svn版本冲突是怎么解决(最重要).txt
主要解决svn冲突,也有其它的一些相关介绍。 为了方便大家,我的就少一点,一个就行了
SVN分支合并到主干 分支 主干 合并 冲突 英文