SVN文件冲突解决方法

转载 2013年12月03日 17:40:49

原文:  http://blog.sina.com.cn/s/blog_6dc4dbed01018jlo.html

 

SVN是很好的开源软件,普及度很广,但是使用中最头疼的无异于冲突问题与处理。下面来对这些头疼问题一一作出解答。包含三个系列,冲突简介、文件冲突与解决实例、树冲突与解决实例。

  多人并行开发操作svn时,经常会遇到各种冲突,包括文件冲突(text conflict)与树冲突(tree conflict)。
  文件冲突:多人同时修改同一文件相同位置为不同内容时,会造成文件冲突。解决方式有两种,svn update与手动解决。
  树冲突:
当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改时就会发生树冲突。

svn status — 打印工作拷贝文件和目录的状态。
详情请参考svn status命令详述

 

 

 

文件冲突:多人同时修改同一文件的相同位置时,可能会造成文件冲突。解决方式有两种,svn update与手动解决。

一、文件冲突解决方式

1. 利用update自动解决冲突,即不管当前工作副本内容是否是最新版本,都使用--accept参数作为冲突处理方式。所有参数含义解释如下:

--accept ARG : specify automatic conflict resolution action

('postpone', 'base', 'mine-conflict',

'theirs-conflict', 'mine-full', 'theirs-full',

's')

(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)//丢弃你对查看文件的本地修改,只使用从服务器新接收的变更。

(s) show all options 显示所有选项

2. update时不解决冲突,利用svn resolve解决冲突,两种方式

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

--accept ARG : specify automatic conflict resolution source

('base', 'working', 'mine-conflict',

'theirs-conflict', 'mine-full', 'theirs-full')

2) 手工修改本地文件,然后将当前拷贝如test.txt作为最后提交的版本

svn resolve --accept working test.txt

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

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

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

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

二、冲突实例

A与B同时修改test.txt文本中同一行内容,但是A先提交。B在提交前进行更新,会出现冲突提示,选项、出现冲突的文件。最后文件冲突标识text conflict,如图所示:

如果选项选择P,则本地工作副本会产生3个临时文件,test.txt.mine test.txt.r1(Old版本)test.txt.r2(rNew版本)。其中r(Old)版本是base版本,r(New)是最新版本,r(mine)是B本地修改的版本。打开test.txt版本,会看到冲突文件的标识。<<<<<<< .mine与=======之间表示B修改后的内容,=======与>>>>>>> .r2之间是服务器上的版本。

如果手动解决该冲突文件,然后使用修改完毕的文件提交时,可以这样做,修改test.txt文件后,删除那些冲突标识<<<<<<< .mine、=======、=======与>>>>>>> .r2后,执行svn resolve --accept working test.txt后,最后ci提交。

svn更新出现冲突的解决方法

今天从服务器更新java代码时,出现如下冲突 Conflict discovered in '/Users/apple/EtaxiAppServer/common/src/com/y...
  • Lonely_Devil
  • Lonely_Devil
  • 2016年03月03日 20:16
  • 4347

包名冲突的解决办法

今天在开发中遇到在同一个activity中需要用到这个两个监听事件 可是同时导入 会冲突 import android.view.View.OnClickListener; import andr...
  • sdwsly1990
  • sdwsly1990
  • 2014年02月17日 12:26
  • 535

ubuntu 使用命令行 svn 冲突解决

svn resolve --accept working android android是冲突的文件名 http://blog.sina.com.cn/s/blog_45e2b...
  • qwzboshipobi
  • qwzboshipobi
  • 2015年06月24日 21:56
  • 733

SVN -提交冲突解决方案

今天总结几点 SVN的使用 1.SVN服务器端安装 2.SVN客户端软件 3.SNV与Xcode的集成 服务器用来做代码仓库  客户端向服务器端提交 ...
  • u012701023
  • u012701023
  • 2015年10月04日 01:08
  • 836

SVN解决冲突的方法

在做项目的时候,虽然在过程中比较注意避免出现svn冲突的问题,但是俗话说:常在河边走,哪有不湿鞋。所以啊出现冲突是在所难免的,下面我们就说说怎么去解决这个冲突的问题。 1.举例说明冲突的产生:你跟另外...
  • myfxx
  • myfxx
  • 2013年09月24日 14:37
  • 800

svn下冲突的含义以及遇到冲突的处理方法

在项目中,基本不可避免多个人同时参与一个项目,因此就可能会出现多个人同时修改一个文件的情况,就不可避免的会出现冲突。svn已经很聪明了,如果你和别人对于同一个文件的修改之间不存在重叠(比如你在文件最开...
  • wangjianno2
  • wangjianno2
  • 2015年09月27日 01:50
  • 1592

SVN系列(三)解决版本冲突的方法

一、产生冲突的原因: 根本原因就是两个用户都在使用同一个文件,其中一个对文件使用完成之后提交到服务器端,此时导致该文件的版本已经发生变化,而正在使用的用户仍然使用的是老版本的文件,当再次提交时导致版...
  • u010928470
  • u010928470
  • 2014年06月06日 09:26
  • 1054

svn冲突文件解决方法

svn冲突文件解决方法 工具/原料 svn客户端 方法/步骤 通过SVN客户端更新需要的...
  • qq373036876
  • qq373036876
  • 2016年04月11日 17:08
  • 173

【SVN】提交文件时提示文件冲突怎么办?

1. 如果执行svn commit命令时遇到了"xxx is out of date"提示,如下图所示:   那么一般是因为您修改了本地某文件或目录结构,而别人也修改了同一个的文件或目录并且先于您...
  • u011494050
  • u011494050
  • 2015年04月20日 11:04
  • 6554

SVN冲突解决和注意事项

在我们用VS进行项目合作开发的过程中,SVN的提交控制是至关重要的,大家不可避免的都遇到过SVN冲突的问题,开发的时候,应该认真学习SVN的知识,减少冲突,集中时间放在开发上。     解决冲突有...
  • u013045552
  • u013045552
  • 2015年12月20日 21:56
  • 4004
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SVN文件冲突解决方法
举报原因:
原因补充:

(最多只允许输入30个字)