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 之 threading
创建多线程常用的三种方法: 创建Thread的实例,传给它一个函数 创建Thread的实例,传给它一个可调用的类实例(不推荐) 派生Thread的子类,并创建子类的实例(推荐) 创建Thread的实例 ...
- Nginx跨域配置方法
配置文件如下,重点在49~52行 #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.l ...
- [DFNews] Elcomsoft 发布EPPB 2.00.233
Elcomsoft Phone Password Breaker 是俄罗斯Elcomsoft公司推出的手机取证工具,能够针对黑莓.苹果等手机的备份文件进行多种方式破解,支持远程获取iCloud数据. ...
- Struts2:国际化
链接:[Java:国际化] src下有国际化资源文件:lan.propertieslan_zh_CN.properties 中文系统系统默认使用zh_CN文件,没有的话使用基本文件lan.proper ...
- Android: R cannot be resolved to a varia...
Android: R cannot be resolved to a varia... 2012-07-27 10:58:32 上传者: wangdao下载(0) 浏览(57568) 评论(0 ...
- Ajax跨域请求
客户端前台: //浏览器支持跨域访问,置于Ajax方法前$.support.cors = true; 服务器后台: //设置服务器端对于CORS的跨域请求支持,置于后台方法第一行 Response.A ...
- NodeJs 创建 Web 服务器
以下是演示一个最基本的 HTTP 服务器架构(使用8081端口),创建 ser.js 文件,代码如下所示: var http = require('http'); var fs = require(' ...
- django--静态文件(九)
1.要加载静态文件需要配置: setting.py BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STA ...
- PVANET----Deep but Lightweight Neural Networks for Real-time Object Detection论文记录
arxiv上放出的物体检测的文章,在Pascal voc数据集上排第二.源码也已放出(https://github.com/sanghoon/pva-faster-rcnn),又可以慢慢把玩了.这篇文 ...
- ReactJS学习笔记(三)
需要注意的问题: 1.组件名称开头字母一定要大写.(PS:原因是 React 的 JSX 里约定分别使用首字母大.小写来区分本地组件的类和 HTML 标签.) 2.this.props.childre ...