项目中需要将分支与主干进行合并,通常都是将分支合并到主干上,但是这次是将主干上的内容合并到分支上。查询到以下博文,不知为何,该博文被封了,只好用快照复制下来,方便以后查阅。

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中也能找到证据:

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是找不到当初打分支时的版本的。

我们的要求与上面第二种情况类似,但是很遗憾,用了上面的方法仍然无效,分析原因如:我们没有及时同步分支和主干,造成了分支和主干互为子目录,故而合并时一直出现问题。后来的解决办法是,回溯至分支创建的时期,从那个时候开始合并,然后再手动添加一些没有加进去的文件。

最后好不容易完成合并,在编译链接时又出现了问题。尝试使用真机,然后编译通过,且能正常运行,但是使用模拟器却怎么也编译不过去(到现在尽管问题解决了,但还是不知道这是为什么),确认了是某个第三方类库出现了重复引用。出现此错误后,寻找网络资源,按照以下方式进行排查:

building setting 里 linking 目录下 other linker flags 修改为 Objc++ 或 -all_load

search paths 里的 header 头文件和library 的环境变量的配置

build phases 里的 link binary with libraries 目录里添加第三方包

具体可以查看这里http://blog.csdn.net/hengshujiyi/article/details/21182813,很遗憾,这样都没有解决问题,后来只有把可能重复编译的文件删除,然后排查,最后找出原因,两个第三方类库中出现了重名的类,并且有一个给了原文件(另一个是.a文件),直接删除这个重复类的.m文件(实现文件),保留头文件,问题就解决了。

smartSVN 分支合并到主干相关推荐

  1. smartSVN 分支合并到主干上,iOS 编译时链接错误

    项目中需要将分支与主干进行合并,通常都是将分支合并到主干上,但是这次是将主干上的内容合并到分支上.查询到以下博文,不知为何,该博文被封了,只好用快照复制下来,方便以后查阅. 1.创建分支的意义 创建分 ...

  2. svn打分支与分支合并回主干

    从当前主线copy一份和主线一样的代码仓,在不影响主线功能的前提下,开发新功能.Copy出来的新代码仓即为分支Branch,原代码仓即为主线Trunk.新功能开发完后,需再手动由分支合并(merge) ...

  3. svn主干开辟分支、分支合并到主干

    从主干拉出分支: 1,右键本地svn主干项目,先从主干拉去一个分支 2,指定分支在svn上的路径 3,此时可以将分支checkOut到本地,在分支上进行新版本的开发 把分支合并到主干: 1,当新功能开 ...

  4. SVN:将分支合并到主干

    环境:1.该例子在eclipse Mars上的SVN插件上进行操作: 1.在主干项目上:右击--Team--合并. 2.根据提示选择第一种合并方式,并且将最下面的复选框的对勾去掉. 详解Merge i ...

  5. idea分支合并到主干

    分支合并到主干 1.切换到主干master 2.合并分支 把develop分之合并到master,所以选择origin/develop分之(远程的develop分之),然后点击合并 这只是提交到本地仓 ...

  6. svn分支合并到主干可能出现异常信息

    svn分支合并到主干时遇到的问题汇总: 一.在主干上右键Team -->合并(merge ) 二.提供选项:Merge Input     Merge a range of revisions ...

  7. 图文:eclipse中SVN分支合并到主干

    在项目开发中,需要添加一些新的功能,但是又不想影响到其他开发人员的项目进度,所以决定使用SVN分支进行开发,分支开发完毕后再合并到主干.本文介绍如何在eclipse中合并分支到主干. (http:// ...

  8. eclipse中SVN分支合并到主干(记录)

    2019独角兽企业重金招聘Python工程师标准>>> eclipse中SVN分支合并到主干(记录) 一.从分支合并到主干 被操作对象: 主干From : 主干的 打出分支时的版本( ...

  9. svn 分支上新增文件合并发生冲突_SVN把分支合并到主干过程演示

    一:普通的合并 1.visualSVNServer建立库 2.建立用户 3.关于SVN组成中trunk,branches and tags的使用查看: trunk树干,brancher复制必要改的枝, ...

最新文章

  1. C#语言与面向对象技术(5)
  2. 【算力大放送2】GPU 专属服务器使用教程!!!
  3. python多图拼接并利用resnet提取特征
  4. 8行代码求解非线性方程
  5. 《JavaScript机器人编程指南》——1.7 小结
  6. jquery uploadify 多文件上传插件 使用经验
  7. centos7 安装mysql5.6_centos7安装mysql5.6
  8. linux系统修改时区开发板,Linux系统时区时间修改
  9. android sqlite批量操作,Android: SQLite批量插入数据的最佳实践
  10. [转]在ROS下使用zeroconf配置多机通信
  11. php量表是什么心理量表,心理学中的“5大心理学测评量表”你知道多少?
  12. j pocket_Wallabag:Pocket的开源替代品
  13. JavaTutorialNetwork 中文系列教程 · 翻译完成
  14. Python之石头剪刀布
  15. Unity插件——Odin 学习笔记(三)
  16. 聆秘2013手游渠道之争:四大战役谁主沉浮?
  17. Django | ORM choices参数详解
  18. 2014年蓝桥杯预赛 C/C++本科B组 解题报告 史丰收速算
  19. mysql中排名次_mysql:名次排名 (并列与不并列)
  20. java商品类_编写java的一个商品类,急用,求大神帮忙,非常感谢

热门文章

  1. 【angularjs】利用时间控件进行时间筛选
  2. delphi2007中if..and..then有问题
  3. 赵海英《C语言精讲》,《数据结构》
  4. ztree 自定义节点属性
  5. python 基础 廖雪峰_廖雪峰在官网自学python基本类型,基础
  6. 手把手教你安装Gephi
  7. java基础学习03
  8. 怎么跟喜欢的人找话题聊天?追女生的六种聊天方法
  9. 【强化学习】强化学习概述
  10. html制作好看的个人简历(附源码)