SVN冲突解决方法名师介绍

开发 项目管理
本文和大家一起学习一下SVN冲突问题,主要介绍一下SVN冲突解决的方法,希望通过本文的学习大家能够掌握SVN冲突解决方法。

本节向大家讲解一下SVN冲突的解决方法,在这里和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西,欢迎打击一起来学习SVN冲突方面的知识。
本人使用SVN的时间不是很长,在使用之前也仅仅是粗浅的了解过这个软件。从今年的8月份开始,由于一个项目使用Eclipse3.1,跨地域的开发,为了适应不同的开发人员处于不同的地理位置,因此我们使用SVN作为团队开发的管理工具。开始使用时,仅仅是边学边用,遇到不懂的地方再去查找资料。今天由于有点时间,先把合并过程遇到的冲突问题详细了解一下。
可以使用svnstatus-u命令来查看一下某个问题是否会有冲突发生。在使用svnupdate的时候,会出现如下一些信息:
$svnupdate
UINSTALL
GREADME
Cbar.c
Updatedtorevision46.
那么,U开头的信息提示你,这个文件在你本地没有修改过,文件已经根据版本库的新版本更新了。G开头的信息提示你,这个文件在你本地已经修改过,但是和版本库中对应的版本并没有冲突的地方,svn已经合并更新了。而C开头的信息提示你,这个文件有点麻烦,你在本地的修改和版本库中的版本修改的地方重叠了,也就是说,你修改了某一行,你的同事也修改了同一行。这个就需要你自己手工去解决了。当冲突发生时,要注意到有三件事情可以帮助你解决问题。
a.Subversion会给这个文件作出c标记。
b.如果Subversion认为这个文件时可以合并的,它会一个冲突标记(特殊的横线来分开冲突的代码块)
c.对每一个冲突的文件,Subversion放置三个额外的未版本化文件到你的工作拷贝。
filename.mine
你更新前的文件,没有SVN冲突标志,只是你***更改的内容。(如果这个文件不可以合并,.mine文件不会创建,因为它和工作文件相同。)
filename.rOLDREV
这个是你做更新操作以前的BASE版本,就是你在上次更新之后未作更改的版本。
filename.rNEWREV
这是Subversion从服务器刚刚收到的版本。这个版本就是版本库的HEAD版本。
例如,如果sally修改了一个文件sandwich.txt,而harry也刚刚修改了这个文件的相同位置并提交到服务器。那么sally在做这个文件的update操作的时候会得到三个额外的文件sandwich.txt.mine、sandwich.txt.r1、sandwich.txt.r2。并且在提交的时候会遭到服务器的拒绝,因为这个文件的冲突问题还没有得到解决。要解决这个冲突,可以选择:
a.手工合并SVN冲突文件(检查和修改文件中的冲突标志)。
b.用一个临时文件(三个中的一个)覆盖你的工作文件。
c.运行svnrevert<filename>来放弃所有的修改。
一旦解决了你的冲突,需要通过命令svnresolved让subversion知道并删除三个临时文件。这时才可以提交。
下面再说说手工合并SVN冲突。开始的时候让人觉得害怕,但做一段时间之后,就觉得不那么烦人了。
看看如下文本:
Mayonnaise
Lettuce
Tomato
Provolone
<<<<<<<.mine
Salami
Mortadella
Prosciutto
=======
Sauerkraut
GrilledChicken
>>>>>>>.r2
CreoleMustard一连串的大于、小于、等于号是SVN冲突标记,这些数据得全部删除才可以提交。其中,
<<<<<<<.mine
Salami
Mortadella
Prosciutto
=======是你在冲突区里面做的修改。
Sauerkraut
GrilledChicken
>>>>>>>.r2
是别人在冲突区做的修改。
在SVN冲突区中,或许你需要和你的同事沟通来安排冲突区的文本内容,如果是程序代码,你需要和同事商量一下,中间的这段代码到底应该是什么样子的。
所有冲突区得到合理的解决之后,你就可以提交你的文件了。

 【编辑推荐】

  1. 揭开SVN冲突神秘面纱
  2. SVN管理与应用相关的资料参考手册
  3. ApacheSVN服务器安装指导手册
  4. Windows下SVN服务配置和使用学习课堂
  5. SVN服务器安装指导手册

 

责任编辑:佚名
相关推荐

2010-05-27 10:08:39

SVN树冲突

2010-05-27 09:33:04

SVN冲突

2010-06-01 11:02:16

SVN合并

2010-06-01 16:27:21

SVN插件报错

2010-05-27 09:56:54

SVN文件冲突

2010-05-28 14:36:24

2010-05-27 15:53:35

SVN属性设置

2010-05-27 09:41:05

SVN冲突

2013-07-24 19:15:01

Android开发学习Android Git代码冲突解决方法

2010-05-20 17:06:48

SVN CO

2010-05-26 11:08:33

SVN管理

2010-06-01 15:58:14

SVN错误

2010-05-31 19:53:05

SVN版本控制插件

2010-05-26 19:12:41

SVN冲突

2009-11-26 15:42:18

PHP函数mail()

2010-01-19 18:37:24

VB.NET内存占用

2012-09-24 09:27:52

SVN

2011-08-30 13:48:50

phpmyadmin

2010-05-27 13:48:30

SVN使用说明

2010-05-28 09:15:47

SVN项目
点赞
收藏

51CTO技术栈公众号