SVN 记录冲突、忽略

  之前对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文件;
时间: 2024-10-03 09:12:33

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

MyEclipse SVN插件冲突导致不能使用解决办法

最近,由于安装插件导致Myeclipse的SVN插件不能使用,出现的问题实在很烦恼,通过试验发现当新安装的插件安装完毕后,只需要把MyEclipse 6.5/eclipse/configuration目录下的org.eclipse.update目录删除即可,并且这个目录在Myeclipse重启之后会重新生成. MyEclipse SVN插件冲突导致不能使用解决办法,布布扣,bubuko.com

SVN版本冲突问题

--------------------siwuxie095 SVN 版本冲突问题 如:Jack 和 Mary 从仓库中将项目下载到本地,然后 Jack 修改了 项目中的一个文件,并上传到仓库中,之后 Mary 也修改了该项目 的同一文件,没有先下载项目的最新版本就提交,结果出现了版本 冲突 具体如下: Jack 和 Mary 共同开发 CRM 客户关系管理系统,从仓库中将项目 下载到本地 其中:test.txt 中没有内容,为空 Jack 先向 test.txt 中添加字符串 abc,并上传到

SVN解决冲突

SVN冲突出现场景 如今是一个团结协作的时代,开发一个系统,往往会多人协作共同完成.版本管理是必不可少的,常用的软件有Git,SVN等.今天说一下,SVN管理版本时,如果出现冲突后,如何快速解决冲突. 首先说明一个问题,有一种情况无论如何都不会出现冲突.假如有一个叫qaz的程序员,他checkout了版本库,这样他拥有了一个工作副本.然后,他修改了某个文件IMRoot.cs,commit到SVN,并且这个文件保证不会有其他人在他们的工作副本修改并提交到SVN.这种情况下,无论qaz 如何修改IM

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

.NET 中 SVN版本冲突中 Files 的值“ < < < < < < < .mine”无效路径中具有非法字符的解决办法: 一. 1.将项目逐个进行编译,会弹出上面的错误,这时候将项目隐藏的文件全部显示,删除 /bin 和 /obj 目录,重新编译,这个时候上面的错误会减少,剩余几个错误,就说明有几个项目的编译出错. 2.继续按照方法一,去编译其他的项目.注意:删除/bin 和 /obj 目录后再编译. 二. 还有一个地方,也会导致这个错误,在项目文件中,就是

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

在svn客户端,想设置忽略提交.class文件,通过 properties > New > Other 添加一个忽略的属性,,还是不行:部分屏蔽了,部分class还是在列表中 再次参考了一下:Settings > General > Global ignore pattern 添加了一个 *.class就行了. 转载一下:svn设置提交忽略某些文件或文件夹 from:http://blog.csdn.net/hemingwang0902/article/details/690420

Android Studio项目中,提交至SVN时可以忽略的文件

Android Studio项目,提交至SVN时可以忽略的文件 与时俱进,项目要使用AndroidStudio进行开发,什么都不会,只能到处查资料,一点一点摸索. 这里记下一下查找的所得. AndroidStudio在项目管理时很多文件不需要提交,避免项目混乱,如下所示 我在下面贴一张图.要是有不完整的,欢迎大家补充 其实不用写了.Android Studio 1.0正式版之后会自动创建一个.gitignore文件 PS:git会生成gitignore文件,svn貌似没有?

SVN 中的忽略文件

SVN 中的忽略文件 在项目中,有些dll是每次项目动态生成的,没有必要提交,项目忽略它! 方法一(最老土) 在每次提交的时候,手动筛选你不需要提交的文件,然后去掉勾,如图: 方法二: 选中要忽略的文件--右击- 如果选中第一个:那么直忽略到a.txt 如果选中第二个:那么将忽略所有的.txt文件 值得注意的是:在种情况下点击提交-那么服务器上原本存在的f.dll 将会消失! 3.全局设置 obj Obj debug release bin Bin Generated_Code ZDSoftTM

[小问题笔记(三)] SVN树冲突(Tree Conflict),文件不能提交的解决办法

传说中SVN的树冲突是由不同开发者删除文件,移动文件神马的造成的. 我们遇到的情况是: 开发人员小B移动了项目中几个文件然后提交.开发人员小L更新项目至最新版本. 获取到移动后的文件则显示文件已被修改,此时,不能提交,也不能还原,提示“树冲突”. 解决办法: 在上面的提交页面,有冲突的项目上右键==>Subversion==>Resolve(好像是这个词)==>使用工作区副本(类似的,具体记不清了) 然后“确定”就可以正常提交了. [小问题笔记(三)] SVN树冲突(Tree Confl

SVN版本冲突解决详解 - snwrking的专栏 - 博客频道 - CSDN.NET

版本冲突原因: 假设A.B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns.txt文件的版本号已经变成101了.同时B用户在版本号为100的kingtuns.txt文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的101版本上作的修改,所以导致提交失败. 版本冲突现象: 冲突发生时,subversion会在当前工作目录中保存所有的目标文件版本[上次更新版本.当