【SVN多用户开发】代码冲突&解决办法

SVN是一款集中式的代码存储工具,可以帮助多个用户协同开发同一应用程序。

但是SVN不能完全代替人工操作,有时也需要程序员自己进行沟通确认有效的代码。

下面就简单的看一下,常见的代码冲突以及解决方法。

总结起来,无非是:

  1 避免开发人员共同开发同一文件

  2 开发前需要时常更新本地代码库

修改同一文件不同位置引发的冲突

  首先看一下问题背景:

  样例场景中有连个用户:xingoo和test。他们共同开发一个程序,改程序只有一个文件,原始的代码如下:

public void Test{System.out.println("Test!");return 1;
}

  此时用户xingoo,修改代码第2行,修改打印语句!

public void Test{System.out.println("Test!xingoo");return 1;
}

  用户test,修改代码第3行,修改返回值

public void Test{System.out.println("Test!");return 0;
}

  此时xingoo用户先提交了代码,当test提交代码时,提示错误:

  提示用户该文件已经过期,需要先更新文件。

  此时,SVN会自动把其他用户修改的操作更新到该文件中(前提是不同用户修改的位置不同),并且保存当前用户修改的部分。

  点击更新,更新代码。

  观察代码发现,已经更新为:

public void Test{System.out.println("Test!xingoo");return 0;
}

  再次提交,提示成功:

  这种情况,是最简单的代码冲突样例。不同用户修改了不同位置的代码,因此只需要在提交前进行更新,就可以解决冲突。

  那么如果用户修改的是同一位置呢?

修改同一文件相同位置引发的冲突

  前面例子中,xingoo的代码当前为,版本号为9:

public void Test{System.out.println("Test!xingoo");return 1;
}

  test的代码为,版本号为10:

public void Test{System.out.println("Test!xingoo");return 0;
}

  此时test的代码时最新版本的。

  如果此时,xingoo用户,想要修改 return 1; 部分的代码,提交时会发生什么呢?

  再次提交遇到错误:

  点击OK后,提示更新或取消,点击更新,更新代码!

  再次报错,提示:文件存在冲突!

  此时观察文件夹发现,多了3个文件

  分别打开这3个文件:

  test.txt中的内容,该文件记录了冲突的详细内容,

  其中<<<<<<.mine到====之间为当前用户修改的内容;

  ====到>>>>>.r10为版本库中的内容:

public void Test{System.out.println("Test!xingoo");
<<<<<<< .minereturn 2;
=======return 0;
>>>>>>> .r10
}

  test.txt.mine 记录当前用户修改后的文件内容快照

public void Test{System.out.println("Test!xingoo");return 2;
}

  test.txt.r9 记录当前用户修改前,版本库中的内容快照

public void Test{System.out.println("Test!xingoo");return 1;
}

  test.txt.r10 记录当前版本库中内容快照

public void Test{System.out.println("Test!xingoo");return 0;
}

  通过这四个文件就可以很快速的发现,哪里有冲突。

  至于如何修改,这里推荐:

  直接拷贝mine文件,然后把r10文件的r10后缀去掉,进行更新。更新后,对比mine中的内容在进行修改。

  也可以直接与其他人员进行协商沟通;更新版本库中的内容。

原文地址:http://www.cnblogs.com/xing901022/p/4402686.html

SVN多用户开发 代码冲突解决办法相关推荐

  1. 【SVN多用户开发】代码冲突解决办法

    SVN是一款集中式的代码存储工具,可以帮助多个用户协同开发同一应用程序. 但是SVN不能完全代替人工操作,有时也需要程序员自己进行沟通确认有效的代码. 下面就简单的看一下,常见的代码冲突以及解决方法. ...

  2. git代码冲突解决办法

    一. 前言   作者是一个工作2年的Java程序猿,因为自己经常用到git,每天都需要提交代码,有时候合并代码也会有一些类代码冲突,把自己的解决方法告知出来,让大家有一定的参考. 二. 冲突产生的原因 ...

  3. SVN提交代码冲突解决方法总结

    SVN提交代码冲突解决方法总结 在近期svn提交代码时遇到多种情况的问题,现做一个解决办法的总结如下: 插播一条:idea下被svn版本控制各类文件的颜色区分, 红棕色,未加入版本控制: 绿色,已经加 ...

  4. git merge git pull时候遇到冲突解决办法git stash

    git merge git pull时候遇到冲突解决办法git stash 在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息: error: Your local changes t ...

  5. git commit或者pull代码时提示代码冲突解决方法

    场景一 user0 有新提交 user1 没有pull -> 写新代码 -> pull -> 提示有冲突  解决办法一 -> stash save(把自己的代码隐藏存起来) - ...

  6. 哈希表及哈希冲突解决办法

    哈希表及哈希冲突解决办法 目录 什么是哈希表? 哈希表的数据结构 哈希冲突 哈希冲突解决办法 1. 什么是哈希表? 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直 ...

  7. hibernate开发错误及解决办法

    2019独角兽企业重金招聘Python工程师标准>>> hibernate开发错误及解决办法 <!-- attachment--> <!-- attachment ...

  8. 黑苹果 装SVN工具 cornerstone无法打开解决办法——网卡内建

    黑苹果 装SVN工具 cornerstone无法打开解决办法--网卡内建 具体内容,请参照远景帖子:http://bbs.pcbeta.com/viewthread-900017-1-1.html 转 ...

  9. git 本地与远程仓库出现代码冲突解决方法

    git 本地与远程仓库出现代码冲突解决方法 参考文章: (1)git 本地与远程仓库出现代码冲突解决方法 (2)https://www.cnblogs.com/heaven-xi/p/9703566. ...

最新文章

  1. zookeeper快速入门——简介
  2. model存数据_Jepsen 测试框架在图数据库 Nebula Graph 中的实践
  3. 五分钟入门文本处理三剑客grep awk sed
  4. 带防夹功能的升降器原理_全系标配行车自动落锁功能,全新凯美瑞表现分析
  5. Vue——[Props with type Object/Array must use a factory function to return the default value.]解决方案
  6. Boost:嵌入PTX汇编指令 直接将其添加到boost.compute函数中
  7. 基于ABP落地领域驱动设计-05.实体创建和更新最佳实践
  8. python爬取网页数据软件_python爬虫入门10分钟爬取一个网站
  9. LeetCode篇之链表:1290(二进制链表转整数)
  10. Spark数据倾斜是如何造成的
  11. SQLite.dll混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
  12. 社团管理系统软件测试,软件测试大作业社团管理系统.doc
  13. java adt官网下载_android adt下载
  14. 目标跟踪算法之DSST算法详解
  15. dreamweaver php网站模板,Dreamweaver软件-教你一分钟搞定一个网页模板
  16. K8S应用(一)—— master节点完整安装教程
  17. 一次和前端的相互甩锅的问题记录
  18. 51nod - 1378 - 夹克老爷的愤怒
  19. CTF Crypto---RSA N不互素
  20. 滚动轴承常见故障及其基本模型

热门文章

  1. iPhone11到来,作为UI设计师这些问题一定要关注!
  2. 自动驾驶数据采集和分析平台--ADAS Logger
  3. 〈一〉ElasticSearch的介绍
  4. 自监督表征学习方法——BYOL(Bootstrap Your Own Latent)
  5. 医疗行业如何写软文?附100字优秀的软文范例分析,让你推广效果更好
  6. iptables防火墙详解(一)
  7. 制作简易Markdown解析器
  8. Android代码、图片、布局、网络和电量优化
  9. Ubuntu20.04使用zfs系统后以rootless方式安装docker测试
  10. multiple-select 多选下拉框