在项目开发的过程中,现在遇到这样一个问题:

  现在是9月份,在同一个项目中我要开发A、B两个模块,A模块是11月份上线,B模块是12月份上线,但是SVN上的trunk(主干)上的代码必须是上线的。

假设我可以在9月份完成这两个模块,但是我不能在trunk上开发完这两个模块。因为如果我在trunk上开发完成了这两个模块,等11月份A模块上线时,我怎么保证

我提交的代码只是A模块的呢?并且在我开发这个项目的同时,其他同事也在开发这个项目,这样,整个项目就会乱掉,没办法管理。当然,或许你可以将现在的项目

copy一份保存,然后……然后……或许你可以完成真个模块的开发。万一你的备份不小心不见了,那就只好重头开始代码……  崩溃……崩溃……

  于是我们可以用SVN建立分支,代码合并等,这样可以很方便的管理我们的版本开发。

SVN建立分支:

  1、建立一个项目  如bamCode

  2、选中项目,单击右键 如图

  

  3、点击   分支/标记…  如图

  

  4、点击 浏览  点击 branches  选中branches ,单击右键,新建一个文件夹,如 A模块分支,next——>finish,选中A模块分支,如图

  

  

  5、点击OK,一路next即可

分支建立好了,接下来我们需要在分支上进行开发,因此,我们需要切换到刚刚建立的分支上

  1、选中项目,单击右键,如图

  

  2、点击切换 ,如图

  

  3、点击浏览——>选中A模块分支——>点击OK——>点击OK即切换到了刚刚建立的分支上。

  此时我们需要记住现在分支上的这个版本号 ,小编的为399,最好也知道主干上的版本号,假设为315。

好了,接下来我们就可以愉快的编码了……  假设此时我们的trunk上也有同事在开发 ,别管别人的。

终于开发完了,模块需要上线了,但此时主干上的版本号为360,此时我们需要合并代码。

  1、在分支的项目上选中,单击右键——>team——>合并

  2、

  3、Perform pre-merge best practices checks 不选,点击next

  4、From:(start URL and revision of the range to merge)

    这个选择我们的分支上的项目目录结构 意思是开始是我们的分支,最终我们要的是trunk最新版,如图

  

  5、选中我们的项目,点击OK,From的版本一定要选择我们刚开始建立分支是的那个版本,小编的版本是399

  6、To的URL选择我们trunk的RUL,版本选择最新的,可以直接选择HEAD Revision,next、finish即可,这个版本就是我们最终合并后的版本。

这样做的目的是什么?

  因为此时我们的分支上的代码和主干上的代码时不同的,我们需要把主干上的代码合并到分支上,但分支我们写的代码又保存,所以我们需要把分支上的版本号选

择刚开始建立分支时的版本号,即小编的399版本,然后把主干上的版本选择最新的,这个我们合并的时候就把主干上最新的代码合并到了分支上,

  到此为止,我们分支上的代码有两部分组成:1、主干上最新的;2、自己写的

  7、现在我们只需把我们分支上的代码合并到主干上即可,这样我们主干上的代码也是最新的。

  操作类似

  此时我们要切换到主干上来操作了,在主干上选中项目,然后做合并操作,

  From:主干上的代码的URL

  To:分支上的代码的URL

  版本都选中  HEAD Revision版本即可。

到此,整个建立分支和合并代码的操作就完成了,当然SVN是一个很好的版本控制工具,还有很多其他功能。常用的功能还有:

  1、提交

  2、更新

  每次提交之前,最后都先更新

  3、与资源库同步

  ……

SVN建立分支、代码合并以及常用操作的更多相关文章

  1. SVN建立分支和合并代码

    1.SVN建立分支正确SVN服务器上会有两个目录:trunk和branches.trunk目录下面代码就是所谓的主版本,而branches文件夹主要是用来放置分支版本.分支版本是依赖于主版本的,因此建 ...

  2. Android Studio 合并分支代码到主干的操作总结

    一.背景 使用SVN进行版本管理时,一般的,我们的所有的开发都是基于trunk进行开发,当一个版本开发告一段落,经验证测试发布上线后,代码处于冻结状态,基于当前冻结的代码库,打一个tag进行管理,与发 ...

  3. SVN 分支代码合并到主线

    SVN 分支代码合并到主线 步骤一安装TortoiseSVN 客户端,在本地 checkout主线代码 步骤二:创建branches分支 步骤三.branches修改提交代码 步骤四:分支代码合并到主 ...

  4. SVN拉分支,合并分支

    前提是:本地已安装SVN,且在SVN中新建好branch和tag目录 拉分支: 把svn内容下载到本地,然后右键TortoiseSVN-->Branch/tag... 上图中红框选择存放的路径, ...

  5. idea实现svn拉分支和合并分支的教程

    原文地址:https://blog.csdn.net/qq_27471405/article/details/78498260 今天测试了一下svn拉分支和合并分支的教程,决定分享给大家 拉分支教程: ...

  6. git 如何把master分支代码合并到自己的分支

    master分支的代码领先自己的分支,git 如何把master分支代码合并到自己的分支 1.首先切换到主分支 git checkout master 2.使用git pull 把领先的主分支代码pu ...

  7. svn建立分支和svn代码合并的操作方法

    首先说下为什么我们需要用到分支-合并.比如项目demo下有两个小组,svn下有一个trunk版.由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正进行到一半的工作[某个 ...

  8. svn打分支和合并操作

    1.svn打分支 到trunk里,选择Branch/tag.... 填写分支版本路径 到branch里svn up 一下,就有1.4.0分支了 2.svn合并 到trunk里,选择Merge.. 选择 ...

  9. svn branch and merge(svn切换分支和合并)详解

    下文的实践主要是参考了TortoiseSVN的帮助文档和Subversion的在线文档,Subversion的在线文档:http://svnbook.red-bean.com/en/1.5/svn-b ...

随机推荐

  1. SQL Connect By 的例子

    看到一个较为通俗易懂的connect by的例子,是百度知道的答案,稍微整理了一下.我自己这样理解:connect by prior "id" = "p_id" ...

  2. build-helper-maven-plugin

    <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven ...

  3. mysql 中decimal中去掉后面多余的0

    #去除Decimal后面多余的0 #处理前SELECT '0.12000','1.203010','-0.20' #处理后SELECT 0+CAST('0.12000' AS CHAR),0+CAST ...

  4. 3 不用IDE开发groovy

    1       不用IDE开发groovy 1.1  不用IDE开发的方法 可以在IDE中运行Groovy类或者脚本,但是Groovy也提供了其他运行途径.你能运行Groovy代码基于以下: ·    ...

  5. Yii2 urles

    public function rules(){ return [ //必须填写 ['email, username, password,agree,verifyPassword,verifyCode ...

  6. oracle merge into与sqlserver merge into 比较

    merge into: 在两个表之间,根据与源表联接的结果,对目标表执行插入.更新或删除操作. Oracle在9i引入了merge into命令,SQL Server 2008也引入merge int ...

  7. Windows常用IDE下载(含安装教程)

    电脑办公 电脑系统(U盘安装) PE系统 WIN7 WIN8 WIN10 XP 电脑系统(直接安装) WIN7 WIN8 WIN10 Office office2003 office2007 offi ...

  8. Kudu安装前的建议说明(博主推荐)

    不多说,直接上干货! 能点击进来看我写的这篇博文的朋友,肯定是刚入门的你. 其实以下是我从官网翻译过来的. http://kudu.apache.org/docs/installation.html# ...

  9. Linux禁ping

    A.临时允许PING操作的命令为:# >/proc/sys/net/ipv4/icmp_echo_ignore_all B.永久允许PING配置方法. /etc/sysctl.conf 中增加一 ...

  10. Get和Post区别,EncType提交数据的格式详解——转自他人博客的

    1. get是从服务器上获取数据,post是向服务器传送数据. 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过 ...