`
takkymj
  • 浏览: 128314 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SVN中冲突的解决

    博客分类:
  • svn
阅读更多
-
本人使用SVN的时间不是很长,在使用之前也仅仅是粗浅的了解过这个软件。从今年的8月份开始,由于一个项目使用Eclipse 3.1,跨地域的开发,为了适应不同的开发人员处于不同的地理位置,因此我们使用SVN作为团队开发的管理工具。开始使用时,仅仅是边学边用,遇到不懂的地方再去查找资料。今天由于有点时间,先把合并过程遇到的冲突问题详细了解一下。

       可以使用svn status -u命令来查看一下某个问题是否会有冲突发生。在使用svn update 的时候,会出现如下一些信息:
$ svn update
U INSTALL
G README
C bar.c
Updated to revision 46.

那么,U 开头的信息提示你,这个文件在你本地没有修改过,文件已经根据版本库的新版本更新了。G 开头的信息提示你,这个文件在你本地已经修改过,但是和版本库中对应的版本并没有冲突的地方,svn已经合并更新了。而C 开头的信息提示你,这个文件有点麻烦,你在本地的修改和版本库中的版本修改的地方重叠了,也就是说,你修改了某一行,你的同事也修改了同一行。这个就需要你自己手工去解决了。当冲突发生时,要注意到有三件事情可以帮助你解决问题。
          a.Subversion会给这个文件作出c标记。
          b.如果Subversion认为这个文件时可以合并的,它会一个冲突标记(特殊的横线来分开冲突的代码块)
          c.对每一个冲突的文件,Subversion放置三个额外的未版本化文件到你的工作拷贝。

filename.mine
     你更新前的文件,没有冲突标志,只是你最新更改的内容。(如果这个文件不可以合并,.mine文件不会创建,因为它和工作文件相同。)

filename.rOLDREV
     这个是你做更新操作以前的BASE版本,就是你在上次更新之后未作更改的版本。

filename.rNEWREV
       这是Subversion从服务器刚刚收到的版本。这个版本就是版本库的HEAD版本。


例如,如果sally修改了一个文件sandwich.txt, 而harry也刚刚修改了这个文件的相同位置并提交到服务器。那么sally在做这个文件的update操作的时候会得到三个额外的文件sandwich.txt.mine、sandwich.txt.r1、sandwich.txt.r2。并且在提交的时候会遭到服务器的拒绝,因为这个文件的冲突问题还没有得到解决。要解决这个冲突,可以选择:
          a. 手工合并冲突文件(检查和修改文件中的冲突标志)。
          b.用一个临时文件(三个中的一个)覆盖你的工作文件。
          c.运行svn revert <filename>来放弃所有的修改。

一旦解决了你的冲突,需要通过命令svn resolved让subversion知道并删除三个临时文件。这时才可以提交。

下面再说说手工合并冲突。开始的时候让人觉得害怕,但做一段时间之后,就觉得不那么烦人了。

看看如下文本:
Mayonnaise
Lettuce
Tomato
Provolone
<<<<<<< .mine
Salami
Mortadella
Prosciutto
=======
Sauerkraut
Grilled Chicken
>>>>>>> .r2
Creole Mustard


一连串的大于、小于、等于号是冲突标记,这些数据得全部删除才可以提交。其中,
    <<<<<<< .mine
Salami
Mortadella
Prosciutto
=======
是你在冲突区里面做的修改。

Sauerkraut
Grilled Chicken
>>>>>>> .r2
是别人在冲突区做的修改。

在冲突区中,或许你需要和你的同事沟通来安排冲突区的文本内容,如果是程序代码,你需要和同事商量一下,中间的这段代码到底应该是什么样子的。

所有冲突区得到合理的解决之后,你就可以提交你的文件了。

本文来自[Svn中文网]转发请保留本站地址:http://www.svn8.com/svnzixun/20080329/438.html
分享到:
评论

相关推荐

    SVN解决冲突(合并别人的修改)

    如果文件已经被标记为已解决,但仍然存在冲突,你可以使用svn revert命令撤销所有冲突解决工作,回到冲突未解决的状态,然后重新开始冲突解决过程。 最后,总结一下解决SVN冲突的步骤: - 预测潜在冲突,使用svn ...

    svn版本冲突解决

    版本冲突解决是指在 SVN 中解决冲突的过程。 版本冲突的原因可以分为两个方面: 1. 多个用户同时更新同一个文件,导致版本不一致。 2. 一个用户更新文件,另一个用户基于旧版本的文件进行修改,导致提交失败。 ...

    SVN版本冲突解决详解

    SVN 版本冲突解决详解 SVN 版本冲突是指在多个用户同时修改同一个文件时,可能会出现的冲突问题。下面将详细解释 SVN 版本冲突的原因、现象、解决方法和降低冲突解决的复杂度。 版本冲突原因: 在 SVN 中,当多个...

    EclipseSVN冲突详细解决方案.docx

    EclipseSVN冲突解决方案 EclipseSVN冲突解决方案是指在使用Eclipse和SVN进行版本控制...EclipseSVN冲突解决方案是版本控制中不可或缺的一部分,能够有效地解决文件冲突问题,提高开发效率和团队协作的effectiveness。

    开源版本控制SVN 树冲突、目录丢失问题及解决机制探讨

    **树冲突**是SVN中的一种特殊情况,不同于传统的文件内容冲突,它发生在目录层次结构上。当两个或多个修订版本对同一目录进行了不同的操作(如添加、删除或重命名),而这些操作无法直接合并时,就会发生树冲突。...

    SVN冲突解决方案.docx

    SVN冲突解决方案 SVN(Subversion)是一种版本控制系统,用于管理软件开发过程中的源代码和文档。在多人协作开发项目时,SVN可以帮助团队成员之间进行协作和版本控制。但是,在使用SVN时,也会遇到冲突问题,本文将...

    Tortoise SVN 版本冲突处理

    2. **查看冲突详情**:冲突解决编辑器的界面分为三部分:上方左边显示的是服务器版本(Theirs),右边显示的是本地版本(Mine),下方则预览合并后的结果。 3. **定位冲突区域**:编辑器会自动高亮显示冲突区域,你...

    svn版本冲突是怎么解决(最重要).txt

    本文将深入探讨SVN中的版本冲突及其解决方法,以“svn版本冲突是怎么解决(最重要)”为主题,结合具体实例进行详细解析。 ### SVN版本冲突的产生 版本冲突通常发生在以下场景:两个或更多的开发者对同一文件进行了...

    SVN冲突深度解析完整版

    在本篇文章中,我们将深入探讨SVN冲突的原因、解决方法和详细解释。我们将从svn提交时出现的错误信息开始,逐步剖析SVN的工作机制和锁定机制,从而解决SVN冲突问题。 首先,让我们来看一下错误信息:org.apache....

    SVN版本冲突问题解决

    SVN冲突处理解决方法 1.SVN冲突产生的原因 2. 解决冲突的方式 3.注意事项 不同版本的同一个位置出现了不同的东西

    SVN解决文件冲突conflict的方法_类文件冲突

    在使用版本控制系统如SVN...总之,SVN冲突的解决是一个需要谨慎处理的过程,它需要理解SVN的工作原理以及如何合并和管理代码更改。通过及时更新、手动合并和确认提交,团队成员可以有效地协作并避免不必要的冲突。

    SVN冲突解决办法.

    ### SVN冲突解决办法 在软件开发过程中,版本控制系统如Subversion (SVN) 是不可或缺的工具之一,它帮助团队管理代码版本、追踪更改历史并协同工作。然而,在多人协作环境中,冲突是不可避免的问题之一,尤其是在...

    svn 合并、冲突及常用功能详解

    **svn冲突** 1. **冲突产生**: 当两个或更多用户修改了同一份文件的同一部分时,svn无法确定应保留哪个更改,就会产生冲突。 2. **冲突标记**: 有冲突的文件会被svn添加特殊的冲突标记,例如`, `=======`, `&gt;&gt;&gt;&gt;&gt;&gt;...

    SVN分支合并到主干 冲突处理

    在软件开发过程中,版本控制系统是不可或缺的工具,其中Subversion(简称SVN)...通过合理的分支策略和有效的冲突解决方法,可以保障项目的顺利进行,并确保代码的质量。希望本文提供的信息能对您的开发工作有所帮助。

    svn ( 解决冲突 )confict

    在实际开发过程中,根据项目的特性和需求选择合适的冲突解决策略至关重要。对于文本类型的文件,推荐使用Copy-Modify-Merge方法,因为它既灵活又高效;而对于非文本类型或复杂格式的文件,考虑使用Lock-Modify-...

    myeclipse中svn版本与客户端版本出现冲突问题与解决方法

    标题中的“myeclipse中svn版本与客户端版本出现冲突问题与解决方法”涉及到的是在使用MyEclipse集成开发环境(IDE)时,遇到Subversion(SVN)版本控制工具与客户端版本不兼容的问题。这个问题通常发生在升级或更换...

    SVN冲突解决

    【SVN冲突解决】是版本控制系统Subversion(SVN)在协作开发过程中常见的问题,当多个用户对同一份文件进行修改并尝试提交时,可能会出现冲突。这些冲突需要正确处理,以确保代码库的完整性和一致性。这篇博客文章...

    myEclipse svn 解决冲突

    主要解决svn冲突,也有其它的一些相关介绍。 为了方便大家,我的就少一点,一个就行了

    SVN简介及使用、以及对冲突的避免和解决

    SVN,全称Subversion,是一种版本控制系统,用于跟踪文件和目录随时间的变化。它允许用户保存文件的不同版本,并且可以恢复...通过熟悉SVN的基本概念、工作模式和冲突解决策略,可以更有效地利用这个工具提升工作效率。

Global site tag (gtag.js) - Google Analytics