转载: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. popstate实现history路由拦截,监听页面返回事件

    1.当活动历史记录条目更改时,将触发popstate事件. 如果被激活的历史记录条目是通过对history.pushState()的调用创建的, 或者受到对history.replaceState() ...

  2. C# 多线程多文件批量下载---子线程中更新UI 实例

    代码1: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;usi ...

  3. java基础3 循环语句:While 循环语句、do while 循环语句、 for 循环语句 和 break、continue关键字

    一.While循环语句 1.格式 while(条件表达式){ 执行语句: } 2.要点 1,先判断后执行 2,循环次数不定 3,避免死循环 3.举例 题目1:输出0-100之间的所有数 class D ...

  4. Linux软件安装install命令

    install  1.作用 install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户. 2.格式 (1)install [选项]... 来源 目的地 (2)install [选项]. ...

  5. ceph rgw java sdk 使用域名访问服务时需要设置s3client的配置项 PathStyleAccess 为true, 负责将报域名异常

    Caused by: java.net.UnknownHostException: my-new-bucket.s3.yyclouds.com at java.net.InetAddress.getA ...

  6. qt调用仪器驱动库dll实现程控

    在<使用qt+visa实现程控>中实现了qt调用visa库的简单Demo本文将尝试使用qt调用仪器驱动库来实现对仪器仪表的程控 开发环境 系统: windows 10 环境: qt 5.8 ...

  7. python中调用cmd

    1. 使用os.system("cmd") 这是最简单的一种方法,特点是执行的时候程序会打出cmd在linux上执行的信息.使用前需要import os. os.system(&q ...

  8. ASP.NET Zero--1.如何开始

    1.加群 群号:104390185,下载这个文件并解压 用VS2015打开aspnet-zero-1.9.0.1 2.修改配置文件 Web项目web.config连接字符串 <add name= ...

  9. ul>li中自定义属性后取值的问题

    动态赋值的li: $.ajax({ type: "POST", url: "${base}/before/subDemand/listType", succes ...

  10. Scrapy 笔记(一)

    这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名例子如下: scrapy startproject test1 You can star ...