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

  • 相关阅读:
    韩式英语
    Daily dictation 听课笔记
    words with same pronunciation
    you will need to restart eclipse for the changes to take effect. would you like to restart now?
    glottal stop(britain fountain mountain)
    education 的发音
    第一次用Matlab 的lamada语句
    SVN的switch命令
    String的split
    SVN模型仓库中的资源从一个地方移动到另一个地方的办法(很久才解决)
  • 原文地址:https://www.cnblogs.com/codeToSuccess/p/13906205.html
Copyright © 2011-2022 走看看