zoukankan      html  css  js  c++  java
  • SVN branch merge

    虽然git日益流行,但是很多公司还是使用svn来管理代码。

    在日常开发的时候,我们会建立分支,对一些猜想功能安排人员进行开发测试,待通过后需要合并到主干。

    就这一场景,使用merge做一简单的解释。

    首先假设服务器上已有trunk和branch:

    http://server/apps/TestProj/trunk

    http://server/apps/TestProj/branches/feature1_branch

    我们在主干和分支并行开发。在分支添加了文件开发新功能,boss满意了,我们需要把新功能添加到trunk。

    这时我们就需要使用merge了。

    先解释下merge,很多人有一个“错误的概念”,其实merge相当于: diff then apply。

    就是先比较指定版本的差异,并应用到当前工作区。

    在上面的工作环境下,分支上的新功能是在分支创建后添加的,所以我们需要比较分支创建版本和新功能版本并应用到trunk的工作区即可。

    如:

    命令行下先进入trunk的工作区:

    svn merge -r old:new http://server/apps/TestProj/branches/feature1_branch 

    版本号可以进入分支的工作区: svn log

    old的版本号就是使用copy创建branch的版本号,可以使用参数快速查找: svn log -v --stop-on-copy

    要注意new的版本号是 svn log中列出的最大的,而不是使用svn update显示的。

    因为经过测试,svn update无论是在哪个工作区,显示的都是trunk的最终版本号。

    使用完merge后,如果没有conflict,那么很好,继续commit一下,就算合并到主线了。

    如果有conflict(如果分支和主干修改了同一个文件的某个位置),通常svn会提示并列出几种选项,

    一般的我会选择postpone,然后到冲突的代码里去看,手动解决,然后再commit。

    以上是个人的使用总结,有什么不对的地方,请大家多多指教!

  • 相关阅读:
    Fiddler_AutoReponse_钓鱼网站原理和如何形成的&如何mock未开发好的页面来进行测试?
    HTTP 协议详解
    Appium元素定位-Toast
    Appium常用APi03
    Appium常用API 02
    Appium常用API_实现页面跳转(包括APP内部页面和APP 相互跳转)
    appium操作之手势操作-多点触摸(地图放大缩小)
    app自动化之手势(九宫格)滑动解锁
    常用 cmd 命令
    『转载』webGIS 概述
  • 原文地址:https://www.cnblogs.com/scorpiozj/p/2955327.html
Copyright © 2011-2022 走看看