在近期svn提交代码时遇到多种情况的问题,现做一个解决办法的总结如下:

插播一条:idea下被svn版本控制各类文件的颜色区分
红棕色,未加入版本控制;
绿色,已经加入控制暂未提交;
蓝色,加入,已提交,有改动,与版本库文件不一致;
黑色,加入,已提交,无改动,和版本库文件一致;
灰色:版本控制已忽略文件。

1.内容冲突:当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发生文件冲突。
(1)修改同一文件不同位置引发的冲突,其他人在你之前提交了代码
你提交时报错:该文件已经过期,需要先更新文件
解决办法:点击update更新该文件代码,在此基础上添加自己更改的部分,再次提交,成功。
(2)修改同一文件相同位置引发的冲突
你提交时报错:

点击update更新该文件版本,提交,再次报错:

解决办法:与其他人协商,根据冲突部分代码逻辑,选择你的或者别人的代码。
2.树冲突:当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改,在更新时就会发生树冲突。
(1) 本地删除,外部更改
A(外部) 修改文件并将其提交至版本库中
B (本地)同时删除了文件
B 更新时就会发生树冲突,该文件被标记为冲突,B 的解决方法有:

  • 放弃 A (外部)更改:也就是删除这个文件----直接标记冲突为已解决。
  • 放弃 B (本地)删除:选择取消,右键 TortoiseSVN --> SVN 还原,撤销删除操作。

(2)本地改名,外部更改
A(外部) 修改文件,并将其提交至版本库中。
B (本地)同时将文件改名。
B 更新时, 该文件被标记为树冲突,B 的解决方法有:

  • 合并 A (外部)更改到改名后的文件中去:直接选合并修改(见下图)----> 标记冲突为已解决,然后提交。
  • 放弃 A 的更改:改名后的文件不包括 A 的更改内容 ----> 直接标记冲突为已解决,然后提交,
  • 放弃 B 的改名:选择取消,TortoiseSVN --> SVN 还原,撤销改名操作。

(3)本地更改,外部删除
A(外部)删除了文件,并提交到了版本库;
B(本地)同时对该文件进行了修改。
B 更新时,该文件被标记为树冲突,B 的解决方法有:

  • 放弃 A(外部)的删除:不删除文件,同时保留本地内容修改---->直接选保留本地文件,然后提交;
  • 放弃 B(本地)的更改:直接选删除此文件。

(4)本地更改,外部改名
A(外部)将文件改名,并提交到了版本库;
B(本地)修改了文件内容。
更新时,B 的该文件被标记为树冲突,B 的解决方法有:

  • 合并更改到改名后的文件:选择保留本地文件,手动将更改内容移植到改名后的文件,撤销增加原文件,然后提交。
  • 放弃 A(外部)改名:选择保留本地文件,然后删除改名后的文件,然后提交。
  • 放弃 B(本地)更改:文件改名,内容不变-->直接选删除此文件。

(5)本地删除,外部改名
A(外部)将文件改名,然后提交到版本库;
B(本地)将文件删除。
更新时,B 的该文件将发生树冲突,B 的解决方法有:

  • 接受 A 的改名:标记冲突已解决;
  • 坚持删除文件:把改名后的文件删除,然后提交。

(6)本地改名,外部删除
A(外部)将文件删除,然后提交到版本库;
B(本地)将文件改名。
更新时,B 的该文件将发生树冲突,B 的解决方法有:

  • 接受 A 的删除:标记冲突已解决,然后撤销增加改名后的文件;
  • 坚持改名:标记冲突为已解决,然后提交。

(7)本地改名,外部改名
A(外部)将文件改名,并提交到版本库;
B(本地)将同文件改名。
更新时,B 的该文件将发生树冲突,B 的解决方法有:

  • 用 A 的名字:标记冲突为已解决,撤销增加本地改名后的文件;
  • 用 B 的名字:标记冲突为已解决,删除 A 改名后的文件,然后提交。

3.总结:对症下药,拒绝盲目反复提交
   SVN代码提交减少冲突的方法无非两种:

    • 避免开发人员同时开发同一文件
    • 开发前需要时常更新本地代码库

SVN提交代码冲突解决方法总结的更多相关文章

  1. svn提交遇到冲突解决方法

    冲突:如果提交时候发现冲突了先不急着提交,否则会产生冲突文件. 解决步骤: 1.将本地文件先复制一份 2.svn revert(恢复到没修改前版本) -> svn update(更新当前最新版本 ...

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

    提交过程中报错: [python@heaven-00 Selesystem]$ git push -u origin masterUsername for 'https://github.com': ...

  3. mac下svn提交失败的解决方法

    $svn ci maps.xml然后出现一个文件svn-commit.4.tmp,在文件svn-commit.4.tmp中有如下内容:   --This line, and those below, ...

  4. svn提交报错 解决方法

    1.先clean 2.删除 .lock文件 3.update项目 4.先还原文件,然后update 接着commit

  5. git提交代码冲突解决

    1.git stash save "说明信息" 2.git stash lish 3.git pull 4.git stash pop stash@{编号}

  6. 【技术贴】解决myeclipse SVN 提交代码 commit:remains in tree-conflict错误的解决办法

    [技术贴]解决myeclipse SVN 提交代码 commit:remains in tree-conflict错误的解决办法 错误是:Aborting commit: xxxxx’ remains ...

  7. 【技术贴】解决myeclipse SVN 提交代码 commit:remains in tree-c

    [技术贴]解决myeclipse SVN 提交代码 commit:remains in tree-conflict错误的解决办法 错误是:Aborting commit: xxxxx' remains ...

  8. SVN系列操作(二)&svn不显示图标的解决方法

    接着上一篇文章,我们继续来操作一下SVN: 有同学反馈,我在本地上看到不SVN的图标,先解决一下这个问题. svn不显示图标的解决方法: 1.WIN+R,输入regedit,打开注册表 2.找到HKE ...

  9. svn 提交代码报错

    svn 提交代码报错 最近新安装了TortoiseSvn 1.92,在上传代码,其中有新增加的文件,出现如下错误: 解决方法: 1.用vs生成patch文件 2.生成的patch文件中讲nonexis ...

随机推荐

  1. Quartus 12的TimeQuest Timing Analyzer

    Quartus 12的TimeQuest Timing Analyzer 1.在Quartus II软件打开和设置设计 安装路径下\qdesigns\fir_fliter文件.在Processing ...

  2. apache自带的ab压力测试工具

    httpd-2.4.27-Win64-VC15 链接: https://pan.baidu.com/s/1027MtVwbq1zjUgF7P7Rrkw 密码: ne6a 下载解压后doc窗口cd .. ...

  3. CLISTCTRL2

    回顾: 刚刚写完,因为是分期写的,所以最初想好好做一下的文章格式半途而废了~说的也许会有点啰嗦,但是所有的基础用到的技术细节应该都用到了. 如果还有什么疑问,请回复留言,我会尽力解答. 如果有错误,请 ...

  4. 【转载】文件上传命令rz和下载命令sz的安装

    一.xshell工具简介 Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议.其可以在Windows界面下用来访 ...

  5. css去掉div的滚动条

    懒得讲原理了,直接贴代码: css部分: .slide-box { margin-top: 200px; display: -webkit-box; overflow-x: scroll; overf ...

  6. vue-cli中src/main.js 的作用

    // The Vue build version to load with the `import` command // (runtime-only or standalone) has been ...

  7. flex多列布局遇到的问题,和解决方案

    flex布局无疑是简单.易用的,他让我我们的布局更加简单和快速,但是在使用flex进行多列布局的时候,我相信很多人会遇到下面的情况: 这种情况是因为我们使用了justify-content: spac ...

  8. MySQL Connector/Python 接口 (二)

    连接数据库 本文参见这里,示例如何连接MySQL 数据库. import mysql.connector from mysql.connector import errorcode # 连接数据库需要 ...

  9. Spring核心技术(五)——Spring中Bean的作用域

    前文概述了Spring的容器,Bean,以及依赖的一些信息,本文将描述一下Bean的作用域 Bean的作用域 当开发者定义Bean的时候,同时也会定义了该如何创建Bean实例.这些具体创建的过程是很重 ...

  10. 【Codeforces 584C】Marina and Vasya

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 设cnt表示s1和s2不同的字符的个数 如果cnt>2t 因为这cnt个位置肯定至少有一边不同 显然肯定会有一个f(s,S)的值大于t的 ...