1.创建分支的意义
创建分支的意义,比如我们在一个基础平台上进行开发,每个技术小组负责一个子项目,而基础平台也是有可能会继续更改的,这个时候,如果不创建分支,子项目之间会相互影响,影响最大的就是后期的测试和版本发布,子项目A已经结束,但测试却受到正在进行的子项目B的影响,测试通不过,就别说版本发布了。所以,我们需要从目前的项目(主干trunk)中创建分支(branch),隔离子项目间的相互影响。
2.svn创建分支原理
在svn中,创建分支,实际上就是一个版本拷贝(对应copy to...注意:绝不是简单在客户端上copy一个目录,而是svn仓库中copy,文件版本号会增加。),两边做任何修改发生的版本变化,是一套机制。举例:目前主干版本是100,分支版本是101,主干中增加一个文件,版本为102,分支中再增加一个文件,版本就为103了。两边的版本号是一套,不会重复。
3.svn创建分支的方法
TortoiseSVN:右键点击工程目录->TortoiseSVN->Branch/tag..菜单,From WC at Url自动为工程svn url,比如https://localhost:8443/svn/fbysss/prj1/trunk,to Url填写https://localhost:8443/svn/fbysss/prj1/branches/branch1。点OK按钮,分支就创建好了。
Subclipse:Team->Branch/tag..,跟上面类似.
SVN命令模式:svn copy trunk_path branch_path -m '描述'
举例:svn copy https://localhost:8443/svn/fbysss/prj1/trunk
https://localhost:8443/svn/fbysss/prj1/branches/branch1 -m "第一个分支"
注意一点:trunk和branch不能互为子目录,否则就乱套了。
4.分支合并
1)从分支合并到主干
分支开发结束之后,往往需要合并回主干去测试、发布,但分支和主干可能有很多冲突的地方,在合并时经常需要手工解决。
被操作对象:主干
From:主干的打出分支时的版本
To:分支的Head版本(最新版本)
怎么理解这个From和To呢?似乎跟我们的想当然不太一样:因为我们理解,把分支合并到主干,肯定是From分支,To主干。怎么搞反了呢?
实际上,Svn认为,我们要合并的,是从主干的某个版本开始,到分支的某个版本结束。两边的版本号实际上是一套系统,不会有重复。我们从TortoiseSVN Help中也能找到证据:
- If you are using this method to merge a feature branch back to trunk, you need to ........
- In the From: field enter the full folder URL of the trunk. This may sound wrong, but remember that the trunk is the start point to which you want to add the branch changes. You may also click ... to browse the repository.
- In the To: field enter the full folder URL of the feature branch.
2)从主干合并到分支
试想这样的情况:一个项目里面,要独立出来一个子项目,需要单独发布版本,用到了基础框架代码,而基础框架在主干中不断修改完善,这就需要从主干合并到分支。
被操作对象:分支
From:分支的第一个版本(最旧版本)
To:主干的Head版本(最新版本)
相当于从分支的第一个版本开始一直到主干最后一个版本结束合并之后,替换分支。
3)从分支合并到分支
有这样的需求:一个项目中有很多分支,这些分支需要分期上线,有多个工作并行,但每一期之间不能相互影响,这就可以打出几个tag(也是分支),从主干copy而来。其他主干根据排期分别合并到这些tag中来。比如有prjTag1和prjTag2,model1、model2需要合并到prjTag1中,model3、model4需要合并到prjTag2中。拿prjTag1举例:
在prjTag1的work copy中,merge
From:主干的打出分支时的版本
To:分支的Head版本(最新版本)
注意:From不是本Tag的某个版本,而是之前主干打出分支时的版本,最终Merge到prjTag1的work copy,而prjTag1是找不到当初打分支时的版本的。
相关推荐
下面是对SVN分支与合并的详细讲解。 1. SVN分支创建: 在SVN中,创建分支通常是为了进行长期的特性开发或隔离修复工作。你可以通过`svn copy`命令或者在图形界面工具中选择“创建分支”选项来实现。例如,要从...
SVN分支的意义: 简单说,分支就是用于区分开发版本与当前发布版本的。 1、 主干负责新功能的开发 2.、分支负责修正当前发布版本的bug(对于可以放入下个发布版本的改进性bug可以直接在主干上开发) 3.、...
SVN 分支与合并详解 SVN(Subversion)是一款开源的版本控制系统,广泛应用于软件开发、文档管理和其他需要版本控制的领域。在软件开发过程中,SVN 的分支与合并功能是非常重要的,下面我们将详细介绍 SVN 中的分支...
本文将详细讲解如何进行SVN分支与主干的合并以及冲突处理,帮助开发者更好地理解和掌握这一核心操作。 ### SVN分支与主干的概念 在SVN中,"分支"和"主干"是两个重要的概念。主干(Trunk)通常代表项目的主要开发线...
3. 点击 Finish,完成,可以看到项目里出现了分支 merge_v1.0 分支中第 9026 次提交的东西最后提交即可,分支合并主干顺利完成。 四、冲突解决 在合并操作中,可能会出现冲突问题。冲突问题是指在合并过程中,出现...
以下是对SVN创建、合并和切换分支操作的详细解释: ### SVN目录结构 1. **trunk**:这是主开发分支,通常存放项目的主线开发代码。日常开发工作在此分支上进行,确保最新的稳定代码在这里。 2. **branches**:分支...
【SVN 分支合并基本操作】是软件开发中配置管理工具 Subversion (SVN) 的核心功能之一,它允许开发团队协同工作,各自在独立的分支上开发,然后将改动合并回主干,以保持代码的稳定性和一致性。以下是详细的操作步骤...
SVN 分支的创建与合并 SVN 分支是一种版本控制系统的特性,允许开发者将不同的修改分离出来,放在开发品的一个分割线上。这条线被称为分支。分支经常被用来试验新的特性,而不会对开发有编译错误的干扰。当新的特性...
合并是将分支上的更改合并回主干或与其他分支合并的关键操作。SVN 提供了三种类型的合并: 1. **合并一个范围的版本** 这是最常见的合并方式,用于将分支上的所有或特定版本的更改合并到主干。在主干的工作副本上...
"svn拉分支合并文档" SVN(Subversion)是一种开放源代码的版本控制系统,相比RCS和CVS,它采用了分支管理系统。SVN的主要特点是支持分布式版本控制,能够对文件和目录进行版本控制。 svn目录结构: * 每个子系统...
SVN分支的合并和同步 SVN(Subversion)是一种版本...* 不管是从trunk合并到分支还是最终从分支合并回trunk,在每次合并前最好先update,然后将本地的修改先全部commit,保护好现场,万一合并不理想随时都可以revert
**TortoiseSVN 分支与合并操作** TortoiseSVN是一款强大的Subversion(SVN)客户端,专为Windows用户设计。它提供了一个图形化的界面,使得版本控制操作更加直观和便捷。在软件开发中,分支管理和合并是至关重要的...
并带 SVN分支与合并 的详细操作文档(附图)。 SVN分支与合并的总结 1.分支(branche)的创建。 1、分支创建是建立在主干上的。 2、创建分支前将整个porject_name检出到本地,然后主干(trunk) 。 3、右键 选择 ...
《SVN分支及合并使用详解》 版本控制系统Subversion(SVN)是软件开发中不可或缺的工具,尤其在团队协作中,分支与合并是其核心功能。本文将深入解析SVN的分支创建、管理和合并过程,帮助开发者更好地理解和运用这...
二、 SVN分支简介 1、SVN仓库目录结构Repository 2、 结合eclipse创建分支 3、 结合eclipse创建标记tags 三、 合并主干和分支 1、 主干合并分支 2、 分支合并主干 3、 合并发生冲突 情况1:标记冲突,稍后处理。 ...
新手看看。高手绕道。主要是关于svn主干与分支互相合并的问题
本文将详细解释如何执行 SVN 分支合并,特别是如何将开发分支合并到主干分支。 首先,创建主干分支是合并过程的起点。在提供的示例中,开发人员使用 `svn cp` 命令从主干创建了一个新的分支。这一步骤确保了开发...