zoukankan      html  css  js  c++  java
  • TortoiseSVN使用merge出现代码冲突后正确的解决方式

    本文还在继续完善中,稍安勿躁(滑稽)……

    前言

    公司代码项目使用SVN管理,分为dev(开发)、test(测试)、prod(生产)这三个版本;

    平时用dev开发,开发完毕后要将代码合并到test并提测,测试完成后要把代码合并到prod准备打包上生产。

    期间,各自开发并提交代码时,经常会产生代码冲突,不过这个还比较好解决,可以使用IDEA(或Eclipse)自带的工具解决,或者先记录下自己的修改内容、删掉冲突文件重新update,然后再修改文件提交自己修改的内容即可。(其实主要是冲突文件较少,冲突位置显而易见,并且知道要保留哪部分代码,各自解决各自的就行了。)

    然而,合并代码是最让人头疼的了(从dev合并到test,或者从test合并到prod),产生的冲突不太好解决:

    1.一个需求,有多个人开发,改动了一堆代码文件。

    2.假设开发完毕,dev已经是提交后的最新状态,现在要将代码合并到test。(统一合并,在一台计算机上操作。)

    3.开始合并代码,使用TortoiseSVN,右击"test"文件夹,选择"TortoiseSVN->merge..."

    4.选择第一个单选按钮,"Merge a range of revisions",点击"next"

    5.在"URL to merge from"中选择dev的路径,选择下方的"specific range"单选按钮,点击旁边的"Show log"按钮,选中本次需要提测的svn提交记录并点击OK。(因为dev中还会有不需要提测的代码,所以要选择才可以)

    6.之后返回刚才的对话框,可以看到"specific range"右侧已经出现了需要合并的svn变更号,然后点击"Next"。

    7.保持默认设置,下拉菜单为"Working copy",单选按钮为"Compare whitespaces",其余的都没有选中;然后点击"Test merge"按钮测试合并效果。

    8.如果没有报错提示代码冲突,那么就可以点击"Merge"按钮成功将代码合并了。

    9.然而我们的项目经常会提示代码冲突,冲突文件一堆……(冲突原因先不管,总之就是合并代码时出现冲突了,得想办法解决后才能合并)

    10.这时,我们一般会先点击"Merge",后续选择"resolve later",先将不冲突的文件合并过去,然后一个一个处理冲突的文件,处理完成后提交代码。

    11.或者直接使用Beyond Compare(文件对比工具)进行代码合并,不使用TortoiseSVN的"Merge"功能;这样的好处是不会出现代码冲突问题,合并完成后提交代码就行。

    12.或者使用IDEA进行合并,具体就是手动用dev中代码文件替换掉test中的代码文件(复制整段代码内容替换掉目标内容也可以),然后IDEA会显示出代码发生了哪些变更,将准备上线的代码块留下、不准备上线的代码块回退,然后提交代码。这样也不会出现代码冲突。

    13.或者,干脆不统一合并代码了,各自把各自的代码合并到test;各自处理各自的冲突反而方便点。

    本文目标

    上方可能写的有些乱,总的来说就是,使用TortoiseSVN的"merge"功能进行代码合并时,出现的冲突不太好解决。

    本文的目的是,将TortoiseSVN使用"merge"合并代码时出现冲突时的解决方法梳理清楚。

    TortoiseSVN使用merge合并代码,发生冲突的原因

    1.首先,SVN有两种冲突,内容冲突与树冲突。

    2.svn,对于同一个文件,A先提交测试,B后提交测试,A再提交测试;之后A将两次代码用merge合并到生产,但是B的内容不合并,此时会冲突。(由于行不一样?)

    3.svn,对于同一个文件,A先提交测试,B后提交测试;B先提交生产(用merge),A后提交生产(用merge),A就会把B提交的东西覆盖。(这里不会冲突,而是直接覆盖,会导致线上功能回退,需要注意;需要自己检查代码,完善后再提交

    4.选择多个svn提交号进行代码合并时,经常会产生冲突。(原因暂时没有搞明白;不过每次merge时选择一个版本号、一次一次点merge比较保险

    /* 可以选择"resolve later",后续单独对冲突文件进行处理。 */

    TortoiseSVN树冲突与解决方法(偶尔会发生的冲突)

    1.树冲突原因:

    两个人以上对文件夹或整个文件进行了修改(删除、新增等操作,不是指修改内容 )

    2.截图(手绘版):

    3.解决方法

    https://blog.csdn.net/xgf415/article/details/75196714

    TortoiseSVN内容冲突与解决方法(经常会发生的冲突)

    可以参考下面这篇文章,算是比较好的冲突解决方法了:

    https://blog.csdn.net/justry_deng/article/details/82259470

  • 相关阅读:
    Majority Element
    Longest Increasing Subsequence
    Count Primes
    Valid Parentheses
    Largest Rectangle in Histogram
    Linked List Cycle II
    Linked List Cycle
    Evaluate Reverse Polish Notation
    Longest Valid Parentheses
    适配总结
  • 原文地址:https://www.cnblogs.com/codeToSuccess/p/13906205.html
Copyright © 2011-2022 走看看