之前对SVN不熟悉,一碰到冲突就怕得要死,不知道应该怎么处理。今天必须要正视这个问题,研究一下。

一、冲突

  SVN非常智能,它不像VSS那样,一个人在改的时候必须以独占的方式签出文件,导致其他人不能够修改。而是允许多个人同时修改一个文件。这就大大减少了资源竞争的问题,之前用VSS经常要问同事:"改完没,签入一下"。

  1、冲突是如何发生的

  • 两个人修改了不同文件?不会有冲突,因为它们并不相关。
  • 两个人同时修改了同一个文件的不同位置?不会有冲突,SVN很好地解决了这个问题。
  • 两个人同时修改了同一个文件的相同位置?这个时候会产生冲突。

  情景:工程师A修改了a.txt的第一行,提交了。工程师B也修改了a.txt的第一行,然后上传,这时SVN会提示存在冲突。

  我们来重现一次这样的情景。首先,我们创建3个文件夹,一个服务端,两个客户端。SVN关联它们。然后上传1个a.txt上去。

  同时在两个文件夹,打开并修改a.txt文件。

  

  修改完毕后,文件夹提示有文件未上传:

  

  上传client1,没问题,直接变绿。但是当上传client2的时候,SVN提示a.txt文件过期。

  

  这时,重新获取client2文件夹,如果此时SVN发现a.txt文件修改的不是同一行,那么也没问题了,但是很遗憾,这里我们修改的都是两个文件夹的第一行。

  SVN提示冲突,文件夹变成“黄色叹号”。

  

  2、冲突的解决

  我们选择编辑冲突:

  

  此时,在一侧上右键会有如下选择项供我们选择:

  

  1、Use this text block:使用此文本块;
  2、Use this whole file:使用这个文件;
  3、Use text block from 'mine' before 'theirs':合并,将我的改动放在别人的改动之前;
  4、Use text block from 'theids' before 'mine':合并,将别人的改动放在我的改动之前;

  以上4个选项,点击之后就会在最下面的TextArea看到最终效果,选择想要的版本就OK了。

  如果是一个个处理,可以选择跳转到上一个/下一个冲突地方:

  

  完事了,标记为已解决冲突就OK了。

  

二、SVN忽略文件

  在项目中,有些文件可能是不需要SVN管理的,因为有些文件可能每次生成都会改变,例如bin目录。可以考虑将这些目录从SVN管理中忽略掉,就不用每次Comit都更新这些文件。其操作方式如下:

  1、在SVN中忽略某文件:

  

  2、忽略后,如果提交,此时服务器端会删除掉该文件,其图标显示如下:

  

  3、如果又想将已经忽略的文件添加回来:

  

  通常来说,一个.Net的Web项目,如下文件夹是不需要添加到SVN管理的:

  • bin文件夹;
  • obj文件夹;
  • *.user文件;
  • .suo文件;

SVN 记录冲突、忽略的更多相关文章

  1. svn文件冲突,树冲突详解

    解决冲突 偶尔,当你从版本库更新.合并文件时,或者切换工作副本至一个不同的 URL 时你会遇到冲突.有两种冲突: 文件冲突 当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发生文件冲突. ...

  2. SVN 树冲突的解决方法(Ubuntu 环境)

    今天在 服务器上(Ubuntu) svn up 更新的时候,出现了 SVN 树冲突 root@futongdai:~# cd /home/wwwroot/newcrm.ofim.com/ root@f ...

  3. svn设置提交忽略某些文件或文件夹

    在svn客户端,想设置忽略提交.class文件,通过 properties > New > Other 添加一个忽略的属性,,还是不行:部分屏蔽了,部分class还是在列表中 再次参考了一 ...

  4. SVN版本冲突解决详解

    SVN版本冲突解决详解 分类: SVN(SubVersion)2009-11-23 15:45 27014人阅读 评论(12) 收藏 举报 svnsubversion服务器文档工作c 版本冲突原因: ...

  5. SVN解决冲突

    SVN冲突出现场景 如今是一个团结协作的时代,开发一个系统,往往会多人协作共同完成.版本管理是必不可少的,常用的软件有Git,SVN等.今天说一下,SVN管理版本时,如果出现冲突后,如何快速解决冲突. ...

  6. SVN版本冲突问题

    --------------------siwuxie095 SVN 版本冲突问题 如:Jack 和 Mary 从仓库中将项目下载到本地,然后 Jack 修改了 项目中的一个文件,并上传到仓库中,之后 ...

  7. SVN版本冲突中 Files 的值“ < < < < < < < .mine”无效路径中具有非法字符的解决办法

    .NET 中 SVN版本冲突中 Files 的值“ < < < < < < < .mine”无效路径中具有非法字符的解决办法: 一. 1.将项目逐个进行编译, ...

  8. SVN版本冲突,导致出现Files 的值“ < < < < < < < .mine”无效。路径中具有非法字符。

    SVN版本冲突,导致出现Files 的值“ < < < < < < < .mine”无效.路径中具有非法字符. 右键编辑.... 打开并删除含有'<&l ...

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

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

随机推荐

  1. 手势识别(一)--手势基本概念和ChaLearn Gesture Challenge

    以下转自: http://blog.csdn.net/qq1175421841/article/details/50312565 像点击(clicks)是GUI平台的核心,轻点(taps)是触摸平台的 ...

  2. BIP_开发案例07_将原有Report Builer报表全部转为XML Publisher形式(案例)

    2014-05-31 Created By BaoXinjian

  3. Javascript函数声明与函数表达式

    在定义函数时,我们一般使用下面这两种方法: 使用函数声明定义: function sum (a, b) { return a + b; } 使用函数表达式定义: var sum = function ...

  4. 【JavaScript】JavaScript模拟Class

    beauty("$Class",["$underscore"],function(_){ var Class = function () { var lengt ...

  5. ui与ux的区别

  6. memcached客户端的使用

    一. 概念 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能. 二. 适用场合 1. 分布式应用 ...

  7. 拥抱 Android Studio 之五:Gradle 插件开发

    实践出真知 笔者有位朋友,每次新学一门语言,都会用来写一个贪吃蛇游戏,以此来检验自己学习的成果.笔者也有类似体会.所谓纸上得来终觉浅,绝知此事要躬行.这一章,笔者将以开发和发布一个 Gradle 插件 ...

  8. .nil? .empty? .blank? .present? in Ruby on Rails

    We get confused when there are many options to choose from. Same is the case when it comes to use an ...

  9. EXPDP

    源地址:http://blog.csdn.net/zftang/article/details/6387325

  10. 解决dedev5.7更新出现include\userlogin.class.php on line 21的办法

    第一种情况解决办法:   在dede\templets文件夹 找到 index_body.htm  文件 把这些注释掉. $(function() {    $.get("index_tes ...