冲突的产生

svn目前已经很智能了,在多人开发中,即使两人更改了同一个文件的不同位置(比如A修改了第一行,B修改了第二行),svn还是会自动把你们的修改进行合并的。

但是如果俩人修改的是同一行,那么就产生了冲突,需要人工去修改了。

代码更新

当多个人去开发同一个分支时,进行更新代码(update)时,当同一个文件同一处有不同修改时就会产生冲突。

代码合并

当开发分支(branch)完成后,合并(merge)到主干(trunk)时,由于主干的更新可能会导致同一个文件同一处有不同修改时就会产生冲突。

冲突的解决

一般在产生冲突的时候会有如下提示:

1.root@letuknowit:/home/kris/calc/trunk# svn up
2.Conflict discovered in 'main.c'.
3.Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options:

解释如下:

  1. (p) postpone 暂时推后处理,我可能要和那个和我冲突的家伙商量一番
  2. (df) diff-full 把所有的修改列出来,比比看
  3. (e) edit 直接编辑冲突的文件
  4. (mc) mine-conflict 如果你很有自信可以只用你的修改,把别人的修改干掉
  5. (tc) theirs-conflict 底气不足,还是用别人修改的吧
  6. (s) show all options 显示其他可用的命令

既然main.c是含有更新内容和冲突,系统自动合成的版本,那么我们就看看这里的内容。

int main()
{
printf("5 + 10 = %d.n",add(5,10));
printf("15 - 10 = %d.n",sub(15,10));
<<<<<<< .mine
//A's test
printf("kris: 12 + 28 = %d.n",add(12,28));
=======
//B's test
printf("sally: 60 - 33 = %d.n",sub(60,33));
>>>>>>> .r7
return 0;
}

svn为你添加的部分主要由小于号、等于号和大于号串组成的三个部分组成。其中小于号和等号之间的内容是你的修改,而等号和大于号之间的修改是其他人的修改。

在明确了冲突的原因之后,按照自己的意愿进行修改。最后不要忘记删除掉所有的<、=和>。小于号、等于号和大于号串是冲突标记,并不是冲突的数据,你一定要确定这些内容在下次提交之前得到删除。

svn的merge,解决冲突相关推荐

  1. git解决冲突 merge 不提示_Merge,Rebase,Cherry-Pick 了解一下

    代码合并在日常开发中是较为常见的场景,采用合适的合并方式,可以起到事半功倍的效果.对应在 Git 中合并的方式主要有三个,Merge,Rebase,Cherry-Pick. 开始部分会首先介绍一下这三 ...

  2. git 解决冲突后提交 fatal: cannot do a partial commit during a merge.

    出现这个问题主要原因是:解决冲突合后,但是需要保留部分文件不提交. 不能直接使用 不正确:git commit xx -m "说明" 正确使用 i 说明: git commit x ...

  3. git什么情况下会产生冲突以及如何优雅的解决冲突

    制造冲突 在github上创建一个仓库. 在本地两个文件夹分别clone同一仓库.称之为仓库A,仓库B. 在仓库A修改文件,提交到远端. git add -A git commit -m " ...

  4. svn 分支上新增文件合并发生冲突_SVN的使用、分支合并及解决冲突详解

    一.什么是SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. 二.SVN的下载安装 安装完不要忘记重启 ...

  5. 版本管理之SVN实践教程:基础篇(5):提交/解决冲突/回退/确认

    这篇文章介绍一下团队开发时经常会碰到的svn的冲突产生的原因以及回退或者解决冲突的方式. 冲突产生的原因 多个团队开发成员对同一文件进行了互斥性的修改经常是冲突产生的原因,比如两个开发成员对同一个文件 ...

  6. svn常用命令以及冲突解决

    常用命令 Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro ...

  7. 【SVN】在Windows系统上进行SVN的基本操作(检出,更新,提交,分支合并分支,还原,制造冲突以及解决冲突,忽略)

    介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...

  8. SVN学习(二)——SVN 提交、更新、解决冲突等操作步骤

    1. 纳入版本控制 ①新建文件abc.txt ②在文件上点右键 ③添加后文件图标发生变化 2. 提交 ①使用TortoiseSVN可以提交具体某一个文件,或某一个目录下的所有改变.方法就是在想要提交的 ...

  9. Eclipse的Git插件Egit: merge合并冲突具体解决方法

    Eclipse的Git插件Egit: merge合并冲突具体解决方法 参考文章: (1)Eclipse的Git插件Egit: merge合并冲突具体解决方法 (2)https://www.cnblog ...

最新文章

  1. soundtouch源码分析__based on csdn :
  2. mysql不等于判断时,空值过滤问题
  3. 【数据竞赛】Kaggle竞赛如何保证线上线下一致性?
  4. 为什么Python是最吸金编程语言?
  5. Fedora telnet配置
  6. Xamarin效果第四篇之CollectionView子项右侧布局
  7. cmd批处理常用符号详解
  8. 关于“未能打开文稿 文本编码Unicode(UTF-8)不适用”的解决办法
  9. java生成润乾报表,润乾报表----模板报表制作
  10. 【计量经济学导论】08. 平稳时间序列
  11. android TabHost
  12. 使用CrossApp实现版本更新管理(iOS端给AppStore链接,android端下载apk并替换)
  13. 泛微E8调整附件大小和属性
  14. 让Mac文本编辑器成为HTML编辑器
  15. VUzzer: Application-aware Evolutionary Fuzzing
  16. Python零基础学习笔记(三十三)—— 窗体的控制...
  17. soj.1004 I Conduit!
  18. poi实现word文档转pdf格式
  19. 初学者javaweb基本使用方法
  20. C语言编译器Visual C++(中文版)的安装

热门文章

  1. 数据库时间内接受的是lang类型的时间 分为三种字段 第一种只存日期 第二种存日期+时间 第三种时间戳...
  2. 【转】Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask
  3. mysql 复制表数据,表结构的3种方法
  4. [转载] 30分钟泛型教程
  5. JS点击显示隐藏内容
  6. 汇编中的REPZ CMPSB
  7. 敏捷 - #9 原则:持续关注卓越的技术和良好的设计 ( #9 Agile - Principle)
  8. Set_uid set_gid stick_bit 软链接 硬链接
  9. 单独写原则Single Writer Principle
  10. Eclipse中propedit插件安装(解决property中文问题)