svn中ios开发svn分支合并到主干总支,会吧总支的都给替换掉吗?

SVN打分支,分支合并操作
这篇博客写了个标题就一直放在这了,最近忙完了手头的工作,有时间把这篇文章写完.
以前的项目没有太多需求,只在主干进行迭代开发,随着需求的日渐增多,不得不进行多版本并行开发.以前一直对分支合并敬而远之,怕开发中出现大问题给整个团队挖坑,但是事实证明,对一个知识不了解用起来还真有不少问题,真应了那句”书到用时方恨少”.言归正传,下边说说在开发中遇到的一些问题,顺便说说我们的解决办法,供大家参考.
假设以下场景,项目现在正在开发1.0版本,并且有bug待修复,而我们勤快的产品经理已经写好了1.1版本的需求,并且要求尽快开发完上线,那么我们就不可能等1.0版本修复完bug再进行开发1.1版本,这时候我们需要创建1.1版本的branch,并且在branch上进行新功能的开发,这时候可以继续在1.0上进行bug的修复.(我们这里暂且将1.0版本作为trunk)
好了,发现合并中蛋疼的问题了,那么我们想办法解决,既然一周代码改动量太大,那么我们每天都进行合并操作,这样虽然冲突的文件减少了,但是每天合并是很麻烦的事情.
上边说道暂且将1.0版本作为主干,其实这样的做法是不正确的,1.0版本也是我们的一个分支,我们的主干应该叫做trunk,像下图这样
我们要先将1.0的代码合并到trunk,这时trunk代码就保持了1.0版本的同步,然后再将trunk代码合并到1.1版本,也就把对bug的修复同步到了新版本中.
这个过程我们始终要保证代码的合并是单向的,不可逆的,即最低版本1.0合并到主干,主干再合并到高版本1.1,主干实际上并不做任何代码的开发工作,只起到一个桥接的作用,这样做的好处是,我们可以一次性地将1.0的代码全部合并到trunk(不用担心冲突的问题,因为现在的trunk不做任何代码的修改),然后我们将trunk的代码合并到1.1,这其中也会引起冲突的问题,因为毕竟两个版本的开发人员不知道对方改动了什么代码.我们采用的解决办法是不用ide自带的工具进行合并,直接用Beyond Compare文件合并工具进行手动合并,因为trunk代码不做修改,所以提交记录很一目了然,我们可以对比trunk上的提交记录来知道增加,修改,删除了哪写文件,从而把它们同步到1.1版本中.说道这里大家可能会说,那如果修改了同一个文件怎么判断哪边是正确的呢,是的没错,这的确是一个问题,因为不论是系统工具还是文件合并工具,它们不可能知道哪些代码是有用,哪些代码是无用的,这里只能靠我们自己多写注释来解决了,比如这样标记(modified by zhangsan 1.0 on 16/12/08 1.0版本增加这段代码修改XXbug),这样我们就知道了这是1.0版本为修复某个bug而添加的代码,在1.1中要保留,否则可能会在合并中被误删除…
好了,写了这么多,最后总结几点
1.严格按照trunk,branch结构来进行项目管理
2.trunk代码不做修改,只作比对的桥接作用
3.保证代码单向合并规则(由低到高),不可逆向
4.大量动代码写清注释,必要的时候及时与团队小伙伴进行沟通,避免合并出错引起不必要的麻烦
5.正确使用Beyond Compare工具
svn分支开发与主干合并(branch & merge)
SVN合并分支、分支打分支,分支合并分支
myeclipse插件—SVN分支与合并详解【图】
SVN trunk(主线)
branch(分支)
用法详解和详细操作步骤
SVN服务器创建分支的方法
没有更多推荐了,您还没有登录,快捷通道只有在登录后才能使用。 还没有帐号? 赶紧
1共10页10) ? 10 :
location='https://bbs.aliyun.com/detail/528346.html?page='+page+'';}">10) ? 10 :
location='https://bbs.aliyun.com/detail/528346.html?page='+page+'';">Go
SVN分支合并到主干以后历史记录丢失
在线时间29小时
SVN分支合并到主干以后,选择主干上的某个文件查看历史记录发现以前分支上的历史记录都不见了,怎么办???合并以后分支上的历史记录一定会丢失吗?还是我合并的方式不对?在线,急等。。。
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
在线时间小时
我知道了,原来SVN1.5以后,用属性保留合并记录。例如:你再分支上开发了一个新特性,并且把它合并到主干上,那么这个特性在主干的历史记录中显示为一条提交记录,即使你再原来分支开发过程中提交了1000次。
1共10页10) ? 10 :
location='https://bbs.aliyun.com/detail/528346.html?page='+page+'';}">10) ? 10 :
location='https://bbs.aliyun.com/detail/528346.html?page='+page+'';">Go
访问内容超出本站范围,不能确定是否安全
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
您目前还是游客,请
验证问题: 60 + 2 = ?
&回复后跳转到最后一页
开发者论坛为你提供“SVN分支合并到主干以后历史记录丢失”的内容,论坛中还有更多关于
的内容供你使用,该内容是网友上传,与开发者论坛无关,如果需要删除请联系zixun-group@service.aliyun.com,工作人员会在5个工作日内回复您。1.右键--&team--&合并
2.选择Merge a range of revisions &并且把Perform pre-merge best pratices checks前边的勾去掉--&next
3.如果你是要把主干合并到分支,那么就写主干地址,如果你是把分支合并到主干,那么就填分支地址,总之要填的是把谁的代码合并过来,就写谁的
  选择All eligible revisions(默认)--&next
4.不用修改,按照默认的就可以---》finish
5.出现冲突,点ok
6.然后svn对冲突进行修改,提交就可以了
注意:提交的时候,有一部分提交不了,怎么办?
  1.项目---&右键----&team----&show Tree conficts
  2.把所有的都标志为已解决resolve...
& & & 3.然后就可以提交了
阅读(...) 评论() &svn分支和合并实战(图解)
博客分类:
被svn分支和合并折腾了两天了。适才终于搞定了分支和合并的问题,打包部署成功了。总结下,以防遗忘。项目前段时间因为要加入OSGi的blueprint方法发布和获取服务,从svn主干上做了分支。如今分支的开发完成了,要求合并到主干中。svn的目录结构如下:
主干trunk:
https://192.168.0.11:8443/svn/code/product/trunk/项目名称/code/OSGiServer/plugins/com.tzf.svn.test
https://192.168.0.11:8443/svn/code/product/tag
分支branches:
https://192.168.0.11:8443/svn/code/product/branches/项目名称/code/OSGiServer/plugins/com.tzf.svn.test
先 从 下载win2svn文件:Setup-Subversion-1.6.13。安装,在cmd下,svn 命令就可以了。下载这个的作用有两个:查看分支分出时的版本和解决合并冲突。
我这里是从分支合并到主干,
被操作对象: 主干
From : 主干的 打出分支时的版本
To: 分支的 Head版本 (最新版本)
怎么理解这个 From 和 To 呢 ? 似乎跟我们的想当然不太一样:因为我们理解,把分支合并到主干,肯定是 From 分支,To 主干。怎么搞反了呢?
实际上, Svn 认为,我们要合并的,是从主干的某个版本开始,到分支的某个版本结束。两边的版本号实际上是一套系统,不会有重复。
比如我主干的结构如下:
现在在分支里做点修改,比如我加个类叫Bean2.java,并且提交。如图:
好啦,现在将工程切换到主干里,因为从分支合并到主干,被操作对象是主干工程。
要合并得知道分支分出去时的版本号,cmd打开命令行,使用svn log --verbose --stop-on-copy branch_path查看版本更新信息,如图:
找到最下版本信息,这里就是r8623,记住这个版本号,以后合并的from就是从这个版本号开始的。to就是指你想要合并的版本号,一般都是最新版本,当然也可以是指定版本。
切换到主干,选中工程,右键team -& 合并:
next,出现
from就是分支的路径,下面选择的就是刚刚记下的分支分出的版本号,to这里就是合并到那个版本,我这里选择的最新版本。点finish,如果文件有冲突就弹出询问框,选择现在暂时不处理就行。
我这里没有出现文件冲突,点ok就基本大功告成。这时需要在主干里体检带修改符号的文件,完成提交就搞定了合并。
如果文件冲突了怎么办呢,在命令行下进入冲突文件的目录,用svn命令行客户端键入:svn resolved 冲突的文件名
就可以解除冲突。
好了这是从分支到主干的合并。还有两种合并:从主干到分支和从分支到分支,操作也是大同小异。具体参考如下:
从主干合并到分支
试想这样的情况:一个项目里面,要独立出来一个子项目,需要单独发布版本,用到了基础框架代码,而基础框架在主干中不断修改完善,这就需要从主干合并到分支。
被操作对象: 分支
From: 分支的第一个版本(最旧版本)
To: 主干的Head版本(最新版本)
相当于从分支的第一个版本开始一直到主干最后一个版本结束合并之后,替换分支。
从分支合并到分支
有 这样的需求:一个项目中有很多分支,这些分支需要分期上线,有多个工作并行,但每一期之间不能相互影响,这就可以打出几个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合并折腾了两天,也许还有OSGi复杂的原因,问题算是解决了,但是也是非常的繁琐。希望能看到网友朋友更好的方法分享。
版本管理-SVN分支,合并,切换
SVN分支/合并原理及最佳实践
svn分支管理的使用与经验
没有更多推荐了,关于SVN合并 我把分支合并到主干 为什么会有重复的函数或者代码_百度知道
关于SVN合并 我把分支合并到主干 为什么会有重复的函数或者代码
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
lucille__知道合伙人
采纳数:12
获赞数:27
擅长:暂未定制
合并之前是不是没有把主干的代码先更新到本机,导致其他人修改的部分和你自己的部分重复了。
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 建立总支和分支包围 的文章

 

随机推荐