>>分享流行的Java框架以及开源软件,对孙卫琴的《精通Spring》、《Spring Cloud Alibaba微服务开发零基础入门到实操》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 28766 个阅读者 刷新本主题
 * 贴子主题:  SVN 使用指南:解决版本冲突 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-02-02 13:31:42     消息  查看  搜索  好友  邮件  复制  引用

  

SVN 解决冲突

版本冲突原因:

   假设 A、B 两个用户都在版本号为 100 的时候,更新了 kingtuns.txt 这个文件,A 用户在修改完成之后提交 kingtuns.txt 到服务器,

这个时候提交成功,这个时候 kingtuns.txt 文件的版本号已经变成 101 了。同时B用户在版本号为 100 的 kingtuns.txt 文件上作修改,

修改完成之后提交到服务器时,由于不是在当前最新的 101 版本上作的修改,所以导致提交失败。

   我们已在本地检出 javathinker01 库,下面我们将实现版本冲突的解决方法。

我们发现  HelloWorld.html 文件存在错误,需要修改文件并提交到版本库中。

我们将 HelloWorld.html 的内容修改为 "HelloWorld! http://www.javathinker.net/"。

   root@javathinker:~/svn/javathinker01/trunk# cat HelloWorld.html

   HelloWorld! http://www.javathinker.net/

    用下面的命令查看更改:

   root@javathinker:~/svn/javathinker01/trunk# svn diff

Index: HelloWorld.html

===================================================================

--- HelloWorld.html(revision 5)

+++ HelloWorld.html(working copy)

@@ -1,2 +1 @@

-HelloWorld! http://www.javathinker.net/

+HelloWorld! http://www.javathinker.net/!

    尝试使用下面的命令来提交他的更改:

   root@javathinker:~/svn/javathinker01/trunk# svn commit -m "change HelloWorld.html first"

Sending   HelloWorld.html

Transmitting file data .svn: E160028: Commit failed (details follow):

svn: E160028: File '/trunk/HelloWorld.html' is out of date

    这时我发现提交失败了。

因为此时,HelloWorld.html 已经被 user02 修改并提交到了仓库。Subversion 不会允许 user01(本例使用的 svn 账号)提交更改,因为 user02 已经修改了仓库,所以我们的工作副本已经失效。

为了避免两人的代码被互相覆盖,Subversion 不允许我们进行这样的操作。所以我们在提交更改之前必须先更新工作副本。所以使用 update 命令,如下:

   root@javathinker:~/svn/javathinker01/trunk# svn update

Updating '.':

C    HelloWorld.html

Updated to revision 6.

Conflict discovered in file 'HelloWorld.html'.

Select: (p) postpone, (df) show diff, (e) edit file, (m) merge,

   (mc) my side of conflict, (tc) their side of conflict,

   (s) show all options: mc

Resolved conflicted state of 'HelloWorld.html'

Summary of conflicts:

  Text conflicts: 0 remaining (and 1 already resolved)

这边输入"mc",以本地的文件为主。你也可以使用其选项对冲突的文件进行不同的操作。

   默认是更新到最新的版本,我们也可以指定更新到哪个版本

   svn update -r6

    此时工作副本是和仓库已经同步,可以安全地提交更改了

   root@javathinker:~/svn/javathinker01/trunk# svn commit -m "change HelloWorld.html second"

Sending   HelloWorld.html

Transmitting file data .

Committed revision 7.




程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-09 14:31:38 重新编辑]
  Java面向对象编程-->输入与输出(下)
  JavaWeb开发-->使用过滤器
  JSP与Hibernate开发-->通过JPA API检索数据
  Java网络编程-->Java网络编程入门
  精通Spring-->计算属性和数据监听
  Vue3开发-->创建综合购物网站应用
  Maven 安装及环境配置
  MessagePack反序列化使用示例
  SpringMVC下的JUnit4单元测试
  Spring AOP的基本概念和注解
  Spring Cloud Config 客户端的高可用实现
  Redis用作消息队列
  使用 Flask-RESTful 设计 RESTful API
  Spring Cloud 技术栈及架构一览
  中央厨房订单管理系统,引入ActiveMQ消息队列,平滑处理高峰...
  另一种缓存,Spring Boot 整合 Ehcache
  分布式消息队列RocketMQ部署与监控
  一睹Web服务真面目,有商业价值的Web服务是这样的
  深入理解Mybatis一级缓存
  分布式架构知识体系
  RESTful 架构详解
  更多...
 IPIP: 已设置保密
楼主      
该用户目前不在线 nihaota 
  
威望: 0
级别: 新手上路
魅力: 1315
经验: 1315
现金: 2944
发文章数: 243
注册时间: 0001-01-01
 消息  查看  搜索  好友  邮件  复制  引用


讨债公司
发文章时间 2022-10-28 20:04:23
 IPIP: 已设置保密 1 楼     
1页 1条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。