SVN冲突解决:当次提交的和上次提交的出现冲突
转载于知蚁博客,文章地址:http://www.letuknowit.com/archives/svn-conflict-resolution
看到那个*了吧,出现这个标记就说明本地副本的文件已经过期了,需要执行svn update了。
root@letuknowit:/home/kris/calc/trunk# svn up
Conflict discovered in 'main.c'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options:
额滴个小心脏啊,又出错了,还要做选择题,纠结啊,纠结前还是看看各个选项都是做啥的吧
(p) postpone 暂时推后处理,我可能要和那个和我冲突的家伙商量一番
(df) diff-full 把所有的修改列出来,比比看
(e) edit 直接编辑冲突的文件
(mc) mine-conflict 如果你很有自信可以只用你的修改,把别人的修改干掉
(tc) theirs-conflict 底气不足,还是用别人修改的吧
(s) show all options 显示其他可用的命令
这里我们先选择p稍候处理,系统会给出如下输出,main.c前面的C标识说明这是一个冲突中的文件,需要手工处理以解决冲突。
(s) show all options:p
C main.c
Updated to revision 7.
Summary of conflicts:
Text conflicts: 1
如果这个时候你查看一下工作拷贝,你会发现多了几个文件,对于每一个冲突的文件,svn会放置三个额外的未版本化文件到你的工作拷贝。
root@letuknowit:/home/kris/calc/trunk# ls -al m*
-rw-r--r-- 1 root root 312 2012-09-20 16:35 main.c
-rw-r--r-- 1 root root 216 2012-09-20 16:35 main.c.mine
-rw-r--r-- 1 root root 156 2012-09-20 16:35 main.c.r6
-rw-r--r-- 1 root root 218 2012-09-20 16:35 main.c.r7
其中main.c.mine是融合了你的修改的版本,里面是你更新的内容,main.c.r6是你做更新操作以前的版本,你是在这个版本的基础上做的修改,main.c.r7是版本库中的最新版本,这里有别人的修改,而就是这个修改和你的修改冲突了。这几个文件可以自己去查看下,应该很好理解。
对了,还有主角没有登场,这个时候如果你看下mian.c的内容,估计你又要郁闷了,和你原先的修改完全不一样了。
root@letuknowit:/home/kris/calc/trunk# cat main.c
#include <stdio.h>
#include "add.h"
#include "sub.h" int main()
{
printf("5 + 10 = %d.\n",add(5,10));
printf("15 - 10 = %d.\n",sub(15,10));
<<<<<<< .mine
//kris's test
printf("kris: 12 + 28 = %d.\n",add(12,28));
=======
//sally's test
printf("sally: 60 - 33 = %d.\n",sub(60,33));
>>>>>>> .r7
return 0;
}
你会看到由小于号、等于号和大于号串组成的三个部分,其中小于号和等号之间的内容是你的修改,而等号和大于号之间的修改是其他人的修改,在明确了冲突的原因之后,我们已经知道怎么修改了,两个人的修改都是需要保留的。
OK,那就保留所有的修改,删除掉<、=和>,最后的结果如下。
小于号、等于号和大于号串是冲突标记,并不是冲突的数据,你一定要确定这些内容在下次提交之前得到删除。
root@letuknowit:/home/kris/calc/trunk# cat main.c
#include <stdio.h>
#include "add.h"
#include "sub.h" int main()
{
printf("5 + 10 = %d.\n",add(5,10));
printf("15 - 10 = %d.\n",sub(15,10));
//kris's test
printf("kris: 12 + 28 = %d.\n",add(12,28));
//sally's test
printf("sally: 60 - 33 = %d.\n",sub(60,33));
return 0;
}
冲突解决了,下面的工作就是通知svn,我们已经把冲突搞定了(使用svn resolved命令),下面该你了,可以看到svn将生成的几个临时文件删除了。
root@letuknowit:/home/kris/calc/trunk# svn resolved main.c
Resolved conflicted state of 'main.c'
root@letuknowit:/home/kris/calc/trunk# ls -al m*
-rw-r--r-- 1 root root 278 2012-09-20 17:07 main.c
接下来提交代码,搞定收工。
root@letuknowit:/home/kris/calc/trunk# svn ci -m "kris add some test code"
Sending trunk/main.c
Transmitting file data .
Committed revision 8.
转载于知蚁博客,本文地址:http://www.letuknowit.com/archives/svn-conflict-resolution
SVN冲突解决:当次提交的和上次提交的出现冲突的更多相关文章
- [svn]svn conflict 冲突解决
转自:http://www.gezila.com/tutorials/17290.html 目录: 1. 同一处修改文件冲突 1.1. 解决方式一 1.2. 解决方式二 1.3. 解决总结 2. 手动 ...
- svn conflict 冲突解决
1. 同一处修改文件冲突 开发人员都知道代码管理工具是开发中一个必不可少的工具,这里也不废话详细介绍了.不管你个人喜欢git还是svn还是其他,但还有一大部分公司在使用svn做代码管理工具.这里详细介 ...
- SourceTree使用详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)
前言: 俗话说的好工欲善其事必先利其器,Git分布式版本控制系统是我们日常开发中不可或缺的.目前市面上比较流行的Git可视化管理工具有SourceTree.Github Desktop.Tortois ...
- Idea中Git的使用和两种类型的冲突解决
一.Git冲突解决 在idea开发工具中使用Git时,主要用到的快捷按钮如下五个: 这五个按钮的使用说明及在idea中如何配置和使用git可参考https://github.com/DayThin ...
- SVN提交代码冲突解决方法总结
在近期svn提交代码时遇到多种情况的问题,现做一个解决办法的总结如下: 插播一条:idea下被svn版本控制各类文件的颜色区分,红棕色,未加入版本控制:绿色,已经加入控制暂未提交:蓝色,加入,已提交, ...
- [转]Eclipse SVN冲突解决
原文地址:http://www.devnote.cn/article/82.html 基本原则是:每次提交前需要先和线上的对比,先把冲突解决掉,然后把线上的更新到本地,最后把本地的提交上去. 右键项目 ...
- [转]SVN版本冲突解决详解
原文地址:http://blog.csdn.net/windone0109/article/details/4857044 版权声明:本文为博主原创文章,未经博主允许不得转载. 版本冲突原因: 假设A ...
- SVN常见错误和版本冲突解决
之前在Eclipse下面误删除了svn的一些插件包,后来重装了就问题重重,在这里还是建议, Windows下SVN最好使用桌面版,在文件管理器下面更新和提交. 1.常见错误整理 #, c-format ...
- Eclipse SVN冲突解决
基本原则是:每次提交前需要先和线上的对比,先把冲突解决掉,然后把线上的更新到本地,最后把本地的提交上去. 右键项目 -> Team -> 与资源库同步 在同步视图中选择Conflicts ...
随机推荐
- python用迭代器方式便利目录下的文件
from pathlib import Path pths = [pth for pth in Path.cwd().iterdir()] 如果是os.listdir()这会返回一个list,文件非常 ...
- 通过一道笔试题浅谈javascript中的promise对象
因为前几天做了一个promise对象捕获错误的面试题目,所以这几天又重温了一下promise对象.现在借这道题来分享下一些很基础的知识点. 下面是一个面试题目,三个promise对象捕获错误的例子,返 ...
- OpenCV的数据类型---Cv
CvScalar就是一个包含四个元素的结构体变量. CvScalar定义可存放1—4个数值的数值,其结构如下. typedef struct CvScalar{ double val[4];}C ...
- 主机映射Linux虚拟机硬盘到本地
Windows7上面通过VMware装了一个ubuntu的虚拟机,为了方便在window下直接查看和编辑linux系统下的代码,就想着远程映射硬盘,把Ubuntu的硬盘映射到主机中. 硬盘映射需要Sa ...
- vs2012中添加lib,.h文件方法(原)
项目.属性.C/C++.附加包含目录:填写附加头文件(*.h)所在目录 分号间隔多项项目.属性.链接器.附加库目录:填写附加依赖库(*.lib)所在目录 分号间隔多项项目.属性.链接器(点前面的+展开 ...
- 慕课网-Java入门第一季-7-2 Java 中无参无返回值方法的使用
来源:http://www.imooc.com/code/1578 如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法. 方法的使用分两步: 第一步,定义方法 例如:下面代码定义了一个方法名 ...
- 汇编初入门debug实操
修改cs:ip的值 jmp 段地址:偏移地址 //在汇编指令中用,不是在debug上用的 如 jmp 2AE3:3 //执行后CS=2AE3H ip=0003H 若只修改IP内容 jmp 某一个合法的 ...
- HTML与CSS二三事
概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...
- vi/vim 的使用
vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是一般模式.编辑模式与指令列命令模式. 这三种模式的作用分别是: 一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式) ...
- 关于C#本质论和CLR via C#中译本,不吐不快
C#本质论和CLR via C#两本好书,周老师可能是俗务缠身,太忙了吧,翻译得只能让人呵呵了. 你要是忙,别接那么多活好不啦. 现在都在说供给侧改革,都在大力提倡工匠精神,我们做技术的,还是踏实点好 ...