转载:http://blog.sina.com.cn/s/blog_65fd4c1e0100h2cg.html

1、  如何产生冲突

当开发人员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版本也提交则会产生冲突,无法提交,需要先svn
update,此时会在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、解决冲突

第一种,利用update的选项进行冲突解决,也就是说不管当前拷贝副本是否是最新版本,都使用—accept参数作为冲突处理方式

--accept
ARG            
: specify automatic conflict resolution action
                           
('postpone', 'base', 'mine-conflict',
                            
'theirs-conflict', 'mine-full', 'theirs-full',
                            
'edit', 'launch')

(p) 
postpone    -
mark the conflict to be resolved later //让文件在更新完成之后保持冲突状态。
(df) diff-full   - show all
changes made to merged file //使用标准区别格式显示base修订版本和冲突文件本身的区别。
(e) 
edit       
- change merged file in an editor
//用你喜欢的编辑器打开冲突的文件,编辑器是环境变量EDITOR设置的。
(r) 
resolved    -
accept merged version of file
//完成文件编辑之后,通知svn你已经解决了文件的冲突,它必须接受当前的内容—从本质上讲就是你已经“解决了”冲突。
(mf) mine-full   - accept my
version of entire file (ignore their
change//丢弃新从服务器接收的变更,并只使用你查看文件的本地修改。
(tf) theirs-full - accept their version of entire file (lose my
changes)//丢弃你对查看文件的本地修改,只使用从服务器新接收的变更。
(l) 
launch     
- launch external tool to resolve
conflict//启动一个外置程序来执行冲突解决,这需要一些预先的准备。
(h) 
help       
- show this list //显示所有在冲突解决时可能使用的命令。

第二种,在update时并不处理冲突,利用svn resolve解决冲突

1、利用svn resolve --accept
base选择base版本,即1.txt.rOld作为最后提交的版本

--accept
ARG            
: specify automatic conflict resolution source
                          
('base', 'working', 'mine-conflict',
                           
'theirs-conflict', 'mine-full', 'theirs-full')

2、手工修改1.txt文件,然后将当前拷贝即1.txt作为最后提交的版本

svn resolve --accept working 1.txt

3、svn resolve --accept theirs-full 1.txt
使用1.txt.rNew作为最后提交的版本

4、svn resolve --accept mine-full 1.txt
使用1.txt.mine作为最后提交的版本

5、svn resolve --accept mine-conflict 1.txt
使用1.txt.mine的冲突部分作为最后提交的版本

5、svn resolve --accept theirs-conflict 1.txt
使用1.txt.rNew的冲突部分作为最后提交的版本

第三种,使用svn revert取消变更

svn 冲突的更多相关文章

  1. SVN冲突

    svn冲突,导致工程打不开,报错:xxx..xcodeproj  cannot be opened because the project file cannot be parsed. 解决方法:   ...

  2. 项目优化经验分享(六)SVN冲突和处理

    上一篇博客我们分享了新增需求的确定思想<站在全局看问题>.今天我们来分享项目开发中SVN冲突的解决经验:SVN冲突和处理! 引言 开发过项目的人都知道,公司开发一个项目都会使用到版本号控制 ...

  3. svn冲突文件解决方法

    svn冲突文件解决方法 工具/原料 svn客户端 方法/步骤 1 通过SVN客户端更新需要的文件,如果出现有感叹号的文件,找到出现感叹号的文件. 2 选择感叹号文件,即冲突文件,单击鼠标右键对冲突文件 ...

  4. 【转】svn冲突问题详解 SVN版本冲突解决详解

    (摘自西西软件园,原文链接http://www.cr173.com/html/46224_1.html) 解决版本冲突的命令.在冲突解决之后,需要使用svnresolved来告诉subversion冲 ...

  5. svn冲突的解决

    svn文件冲突的解决 冲突后,会产生三个多余的文件. ①文件名.扩展名.mine 这是你的文件,在你更新你的工作副本之前存在于你的工作副本中--也就是说,没有冲突标志.这个文件 除了你的最新修改外没有 ...

  6. eclipse svn 冲突解决

    eclipse svn 冲突解决

  7. tortoise svn冲突解决

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

  8. Tortoise svn 冲突解决主要办法

    Tortoise svn 冲突解决主要办法 1.先备份自己的修改文件后,然后revert自己的更新内容,然后提交,再以更新后的代码为基准,将备份的代码移入进来.在这种方式下不需要使用svn resol ...

  9. svn冲突问题详解 SVN版本冲突解决详解

    svn冲突问题详解 SVN版本冲突解决详解 (摘自西西软件园,原文链接http://www.cr173.com/html/46224_1.html) 解决版本冲突的命令.在冲突解决之后,需要使用svn ...

  10. SVN学习总结(2)——SVN冲突解决

    在我们用VS进行项目合作开发的过程中,SVN的提交控制是至关重要的,大家不可避免的都遇到过SVN冲突的问题,开发的时候,应该认真学习SVN的知识,减少冲突,集中时间放在开发上. 解决冲突有三种方式: ...

随机推荐

  1. 垃圾回收算法与 JVM 垃圾回收器综述(转)

    垃圾回收算法与 JVM 垃圾回收器综述 我们常说的垃圾回收算法可以分为两部分:对象的查找算法与真正的回收方法.不同回收器的实现细节各有不同,但总的来说基本所有的回收器都会关注如下两个方面:找出所有的存 ...

  2. caffe使用finetume

    训练时, solver.prototxt中使用的是train_val.prototxt ./build/tools/caffe/train -solver ./models/bvlc_referenc ...

  3. 在delphi原有控件基础上画图

    var C:TControlCanvas; begin C := TControlCanvas.Create; C.Pen.Color := clRed; C.Pen.Width := ; C.Con ...

  4. 机顶盒 gettimeofday()获取毫秒溢出

    最近在写代码的时候遇见了一个bug,在获取当前时间戳的毫秒时,我自己测试的时候总是OK的,但是测试那边总是测不对,之前一直以为是因为我存储的类型的不对,从long long类型从lld改成llu,然后 ...

  5. mysql 导入数据到postgresql

    创建PG的表脚本 DROP TABLE IF EXISTS "public"."t_resource_info"; CREATE TABLE "pub ...

  6. 删除WP提示:自动升级WordPress失败

    wordpress后台总有烦人的升级失败的提示,查了半天找不到怎么去掉:“自动升级WordPress失败--请再试一次”这个提示的方法,特意分享出来 方法/步骤   1 打开wordpress根目录找 ...

  7. Mono for Android 学习一 环境的搭建

    JAVA SDK和Android SDK下载安装 1.疑问:用mono for android 开发为什么必须要java sdk的支持 答:因为android  sdk是java开发的,所以和它相关的 ...

  8. 【LOJ】#2544. 「JXOI2018」游戏

    题解 九条可怜还有那么善良的一面??? 显然有些数在这个区间里没有数是它的约数,它们其中的最后一个取的一定就是\(t(p)\)的值 这样我们只需要枚举\(t(p)\)的值,这个值就是"没有任 ...

  9. cogs——2478. [HZOI 2016]简单的最近公共祖先

    2478. [HZOI 2016]简单的最近公共祖先 ★☆   输入文件:easy_LCA.in   输出文件:easy_LCA.out   简单对比时间限制:2 s   内存限制:128 MB [题 ...

  10. 【Python】单例模式Singleton

    前两天一个面试被问到python中单例模式有几种实现方式,只答出了可以用元类实现...然后就想不起来了. 之后翻书,原来这些之前都见过的啊.... 1.手动实现真正创建实例的方法__new__()来实 ...