svn branch 创建分支

一.意义

创建分支的意义,比如我们在一个基础平台上进行开发,每个技术小组负责一个子项目,而基础平台也是有可能会继续更改的,这个时候,如果不创建分支,子项目之间会相互影响,影响最大的就是后期的测试和版本发布,子项目A已经结束,但测试却受到正在进行的子项目B的影响,测试通不过,就别说版本发布了。所以,我们需要从目前的项目(主干trunk)中创建分支(branch),隔离子项目间的相互影响。

二.创建分支原理

在svn中,创建分支,实际上就是一个版本拷贝(对应copy to...注意:绝不是简单在客户端上copy一个目录,而是svn仓库中copy,文件版本号会增加。),两边做任何修改发生的版本变化,是一套机制。举例:目前主干版本是100,分支版本是101,主干中增加一个文件,版本为102,分支中再增加一个文件,版本就为103了。两边的版本号是一套,不会重复。

三.创建分支的方法

        TortoiseSVN:右键点击工程目录->TortoiseSVN->Branch/tag..菜单,From WC at Url自动为工程svn url,比如https://dell/svn/sshTest/trunk,to Url填写https://dell/svn/sshTest/branches/branch1。点OK按钮,分支就创建好了。

Subclipse:Team->Branch/tag..,跟上面类似.

SVN命令模式:svn copy trunk_path  branch_path  -m
‘描述‘

举例:

svn copy https://dell/svn/sshTest/trunk

https://dell/svn/sshTest/branches/branch1 -m "第一个分支"

       注意一点:trunk和branch不能互为子目录,否则就乱套了。

四.分支合并

1)从分支合并到主干

分支开发结束之后,往往需要合并回主干去测试、发布,但分支和主干可能有很多冲突的地方,在合并时经常需要手工解决。

被操作对象:主干

From:主干的打出分支时的版本

To:分支的Head版本(最新版本)

怎么理解这个From和To呢?似乎跟我们的想当然不太一样:因为我们理解,把分支合并到主干,肯定是From分支,To主干。怎么搞反了呢?

实际上,Svn认为,我们要合并的,是从主干的某个版本开始,到分支的某个版本结束。两边的版本号实际上是一套系统,不会有重复。

2)从主干合并到分支

试想这样的情况:一个项目里面,要独立出来一个子项目,需要单独发布版本,用到了基础框架代码,而基础框架在主干中不断修改完善,这就需要从主干合并到分支。

被操作对象:分支

From:分支的第一个版本(最旧版本)

To:主干的Head版本(最新版本)

相当于从分支的第一个版本开始一直到主干最后一个版本结束合并之后,替换分支。

3)从分支合并到分支

有这样的需求:一个项目中有很多分支,这些分支需要分期上线,有多个工作并行,但每一期之间不能相互影响,这就可以打出几个tag(也是分支),从主干copy而来。其他主干根据排期分别合并到这些tag中来。比如有Tag1和Tag2,model1、model2需要合并到Tag1中,model3、model4需要合并到Tag2中。拿Tag1举例:

在Tag1的work copy中,merge

From:主干的打出分支时的版本

To:分支的Head版本(最新版本)

        注意:From不是本Tag的某个版本,而是之前主干打出分支时的版本,最终Merge到Tag1的work copy,而Tag1是找不到当初打分支时的版本的。

时间: 2024-09-30 17:13:27

svn branch 创建分支的相关文章

ECLIPSE下SVN的创建分支/合并/切换使用

最近接项目要求,要在svn主干上创建分支,用分支来进行程序的bug修改,而主干上进行新功能的开发.分支上的bug修改完,发布后,可以合并到主干上.项目程序可以在主干和分支之间进行切换,来实现主干和分支的同时维护. 1.创建分支 创建分支实际上就是将程序copy一份到指定的分支目录,如下图示: 在项目名称上点击右键,弹出菜单,选择"Team",再选择"Branch/Tag",弹出下面的页面: 上图中的"Copy to URL"填写创建新分支的路径地

转 Eclipse下svn的创建分支/合并/切换使用

最近接项目要求,要在svn主干上创建分支,用分支来进行程序的bug修改,而主干上进行新功能的开发.分支上的bug修改完,发布后,可以合并到主干上.项目程序可以在主干和分支之间进行切换,来实现主干和分支的同时维护.  1.创建分支 创建分支实际上就是将程序copy一份到指定的分支目录,如下图示: 在项目名称上点击右键,弹出菜单,选择“Team”,再选择“Branch/Tag”,弹出下面的页面: 上图中的“Copy to URL”填写创建新分支的路径地址,后面会将程序copy到该目录下,形成新的分支

使用 Eclipse 的 SVN 插件创建项目的主干/分支/标签

原文正文 读了 Mark Phippard 的博客以及<Subversion 与版本控制>之后,我了解到 分支/标签 是 SVN 很棒的特性之一.但我在使用推荐的 "trunk"."branches"以及"tags"文件夹创建我自己的目录结构的时候颇是花了一点时间.本文将分步介绍创建  Subclipse 项目然后建立一个分支.本文假定你已经安装好了 Subclipse 并建立了一个 SVN 仓库.如果你还没有,参考<集成 SV

git创建分支并提交项目

git 创建分支, 切换分支, 合并分支, 删除分支及提交[commit提交到本地仓库push名利提交到远程服务器], 检出[pull], 冲突修改, 本地仓库同步远程服务器[pul和push命令l]操作 开发中常用操作 删除文件:git rm 文件名[删除本地git仓库文件, 提交后远程服务器上的文件才会消失] 查看状态:git status 添加记录:git add 文件名 或 git add . [将文件提交到远程git服务器上] 添加描述:git commit -m "描述或备注类似sv

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

下文的实践主要是参考了TortoiseSVN的帮助文档和Subversion的在线文档,Subversion的在线文档:http://svnbook.red-bean.com/en/1.5/svn-book.html 先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰trunk的情况下,和trunk并行开发,待开发结束后合并回trunk中,在bran

SVN创建分支/合并分支/切换分支

SVN创建分支/合并分支/切换分支 转载自:http://www.cnblogs.com/andy2simple/p/5386256.html 在建立项目版本库时,可首先建好项目文件夹,并在其中建立trunk, branches, tags三个空的子目录.这样在trunk中开始进行开发 trunk是主分支,是日常开发进行的地方. branches是分支.一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中.又比如为不同用户客制化的版本,也可以放在分支中

SVN 创建分支

2种方法: 创建分支之前一定要先更新到最新版本. 1.你用tortoiseSVN点版本库浏览,在需要建立分支的路径(比如trunk)点copy to + 新分支名称(注意:必须与trunk不能同名,你可以新建一个名称比如branch),然后在分支下面update 2.tortoiseSVN点版本库浏览,你在需要创建的路径下右键tortoiseSVN 选择create folder 然后创建新路径名称(文件夹)然后把主干或者其他分支路径的代码(拉分支这种情况估计想并行开发)导入到这个路径下就可以了

windows 下svn 创建分支 合并分支 冲突

我用的系统是win7+Subversion 1.7.4.服务器搭建就略过了,我也是从网上找的,基本上就是几个命令吧!我用的CentOs6.5 .网上找了几个命令搭建很快,基本上是: 1.# sudo yum install subversion 2.# sudo mkdir -p /subroot 3.# sudo svnadmin create /subroot 4.# sudo vi /subroot/conf/authz 尾部加 [/]dan=rww=r 5.# sudo vi /subr

svn 创建分支、切换分支 及 合并分支 操作

关联远程仓库: 右键  ---  点击 ' SVN Checkout...' 生成 打开trunk目录,在trunk目录下新建两个文本文件A.java,B.java: 打开A.java输入以下内容: B.java文件可以随机输入些,本例中主要用于观察后续是否变化. 两个文件编辑完成后使用SVN Commit将更改提交到SVN: 下面开始创建分支: 1.在trunk上点击右键,在TortoiseSVN菜单中选择Branch/Tag; 2.在To path输入框中输入新建分支的路径,一般是:/bra