SVN版本号管理工具使用中常见的代码提交冲突问题的解决方法
相信刚開始学习使用SVN的小伙伴在项目合作开发的过程中一定常常遇到一些影响到自己编写的代码的苦恼。我这里列举了几种常见的问题以及问题的解决方法:
1.误删除和误操作的问题
问题1:有A和B两个人一块合作写项目的时候,B在写代码的时候不小心更改了A写的代码文件的内容提交到了仓库,A该怎样找回自己原来的代码呢?
解决方法:
右键点击被改动的文件---->点击TortoiseSVN选项----->点击Show log选项,会出现如图所看到的的窗体,
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
然后右键点击A的记录--->点击Revert to this revision选项---在弹出的对话框中选择Revert选项。当出现这个窗体中的内容时说明恢复成功了。能够打开看一下文件里内容是否恢复到之前的内容,非常奇妙吧。
问题2:B不小心删除了A写的代码文件。而且提交了。A该怎样找回自己原来的代码文件呢?
解决方法:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
右键点击A用户check out下来的项目目录(如上图)--->点击TortoiseSVN选项----->点击Show log选项。然后找到日志中B为进行删除操作之前的代码文件,复制出来。重命名后再次提交项目就能够了。
如图:
2.多个用户同一时候改动一个从仓库中update下来的最新的文件后,晚提交的用户提交不通过的问题:
问题1:(A和B两个用户改动的内容的位置不一致)A和B两个用户都对同一个从仓库中刚update下来的文件进行改动后。B先进行了提交,A提交的时候出现错误,A应该如何处理呢?(后提交的用户会出现这样的错误截图)
错误截图:
终于文件中的内容是SVN自己主动将两个用户改动的内容合并了(SVN自己主动合并的情况要满足:两个用户改动的内容的行数不冲突)。
如图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
解决方法:A用户找到B用户共同协商怎么处理两个人改动的代码。
问题2:(A和B两个用户改动的内容的位置同样(对同一行的内容进行了改动操作))A和B两个用户都对同一个从仓库中刚update下来的文件进行改动后。B先进行了提交。A提交的时候出现错误,A应该如何处理呢?(后提交的用户会出现这样的错误截图)
错误截图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
多出的三个文件如图:
多出的三个文件的解释(从上往下):
第一个:
第二个:(我(A)想提交的代码)
第三个:
第四个:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
解决方法:
依据上边的三个版本号的代码,A就应该知道怎么改动代码进行提交了,先恢复到如今server中最新版本号的代码文件。如图:
再跟B进行讨论究竟怎么处理改动的代码。
问题3:假设A和B冲突的代码太多的时候。A该怎么处理呢?
当遇到如图这样的情况的时候:
解决方法
:
就不要进行更新了。而应该选择Cancel这一项(由于明明知道有冲突就不要给自己找麻烦了)。将自己改动后的代码文件copy一份到别的地方。然后再重命名后拷贝到原来的目录以下,
进行比对就能够找出你改动后的内容跟server中的代码的不同之处。然后就能够找B进行讨论,共同改动了。
SVN版本号管理工具使用中常见的代码提交冲突问题的解决方法的更多相关文章
- Git学习(一) 版本号管理工具
Git 是一个分布式版本号控制工具.它的作者 Linus Torvalds 是这样给我们介绍 Git -- The stupid content tracker(傻瓜式的内容跟踪器) 1. Git ...
- git版本号管理工具的上手
git是一个分布式的版本号管理工具 和其它集中式版本号管理 工具相比具有下面长处: 1.能够在不联网的情况下开发 2.能够方便的建立本地分支 3.本地化的日志,高速获得信息 git命令的使用 mkdi ...
- SVN代码提交冲突解决方案
SVN代码提交冲突解决方案 1.若你的代码被其他人修改并提交过了,期间你自己也修改过该文件,UPDATE的时候自己代码被覆盖. 右键——>显示日志 查看该文件的更新记录 找到需恢复的版本 右键— ...
- Eclipse svn代码提交冲突
Eclipse svn代码提交冲突(转) 1.Synchronize视图下查看代码冲突 1.Incoming Mode 全部update,更新到本地2.Outgoing Mode 全部commit,提 ...
- Xcode中SVN不能提交.a文件的解决方法
我是搬运工!!!方便自己使用!!! 方案一: 在mac下很多svn管理工具默认都不能上传.a文件,这让人很苦恼.从网上扒了下,用命令行可以解决此问题. 打开终端,cd 进入到需要上传的.a文件所在的文 ...
- Java常见的几种内存溢出及解决方法
Java常见的几种内存溢出及解决方法[情况一]:java.lang.OutOfMemoryError:Javaheapspace:这种是java堆内存不够,一个原因是真不够(如递归的层数太多等),另一 ...
- win10安装PS和AI后报代码为16的错误解决方法
win10安装PS和AI后报代码为16的错误解决方法 一.总结 一句话总结:修改兼容性和以管理员方式运行就可以了 修改兼容性 以管理员身份运行 二.PS和AI安装后报代码为16的错误解决方法介绍(转) ...
- IOS SVN源代码管理工具使用
01. 源代码管理工具概述(PPT)===================================================* 源代码管理工具的作用:# 能追踪一个项目从诞生一直到 ...
- SVN图形管理工具-Submint
1.安装svn及相关依赖包 yum install subversion httpd mod_dav_svn apr-util-sqlite 2.下载submin wget https://sup ...
随机推荐
- JQuery封装ajax的方法
1.$.post方法 $.post(url[,data][,callback][,type]) url:请求的后台程序地址 data:发送到后台的数据 callback:载入成功时回调函数,该函数参数 ...
- Spring中使用Quartz之MethodInvokingJobDetailFactoryBean配置任务
Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz. Spring中使用Quartz的3种方法(MethodInvokingJobDetailFactoryBean,i ...
- POJ2891 Strange Way to Express Integers (扩展欧几里德)
本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia 题目大意 求解一组同余方程 x ≡ r1 (mod a1) x ≡ r2 (mod a2) x ≡ r ...
- ASP.NET-属性与过滤器
目的:在调用操作之前或者之后执行特定的逻辑代码 系统定义: 1.日志记录 2.防图像盗链 3.爬虫 4.本地化,用于设定区域设置 5.动态操作,用于将操作注入到控制器当中 用来过滤HTTP请求 高级 ...
- POJ 3071
求概率.其实跟枚举差不多,输入n即是要进行n轮比赛.对每一支球队,设求1的概率,首先1要与2比赛为p1,这是第一轮,第二轮时,1要与3(打败3为p2),4(打败4为p3)中胜者比赛,由于是概率,则两者 ...
- HDU 4314 Contest 2
可以知道,逃出的人中,最后一个应当是A+B最长的,这是很容易发现的.那么,最选逃出去的必定是A+B最短的.这符合最优. 于是,可以把各小矮人按A+B的和由大到小排序.定义DP[i][j]为i个人中逃出 ...
- hdu1213 How Many Tables(并查集)
How Many Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- vue 如何实现在函数中触发路由跳转
this.$router.push({path:'/index'}) 欢迎加入前端交流群交流知识&&获取视频资料:749539640 methods:{ click(){ if(dat ...
- [jzoj 5926] [NOIP2018模拟10.25] naive 的图 解题报告(kruskal重构树+二维数点)
题目链接: https://jzoj.net/senior/#main/show/5926 题目: 题解: 显然最小的最大路径在最小生成树上(最小生成树=最小瓶颈生成树) 于是我们建出kruskal重 ...
- Kettle的改名由来
不多说,直接上干货! 当时啊,因为很多开源项目到最后都成了无人管的项目,为了避免这种情况的发生,要尽快为Kettle项目构建一个社区.这就意味着,在随后的几年可能需要回答上千封的电子邮件和论坛帖子.幸 ...