Android Studio中的svn 主干、分支开发合并

原则:

  • 1,将主线合并到分支后,得将分支合并到主线,保持代码始终一致,毕竟最终目的是主线代码最全,也有利于分支再次更改后跟主线的合并,也就是一对一关系,如果主线合并到了分支,如果再有将主线合并到分支的需求,最好先将分支合并到了主线(当然可能此时的主线代码又有改动)。
  • 2,如果按照分支、主干始终保持一致的情况下,分支的revision number 首次合并为创建分支的revision number,合并后的revision number选择为主线合并到分支后并分支提交了提交到分支此时的revision number
分支合并两种方式:
1 、开两个工程:
  • 如果想直接合并在trunk下,则提交branches分支的代码,直接合并Integrate Directory ...source1为合并的最终目的地,此类模式source1为trunk,source2为branches。注意,创建分支后用AS打开先update一下,因为有可能projectname.iml会报不一致错误,所以先更新。
  • 如果想trunkbranches都保持代码一致,一般情况下先将主线合并到分支,建再将合并后的也就是最全的分支代码提交,再将分支的内容合并到主线上。
2 、开一个工程(更新、提交、切换分支、合并

这种情况下适用于确保本地开发结束或者阶段结束并全部提交代码后,先切换分支(update 并勾选),再将分支/主干合并到主干/分支上。

两种方式的工程名均可不一致,需要注意的是revision version number。以下记载为之前的,跟补充的个别的不一致,但是仍可参考。

前言

干了android几年,团队几个人共同开发一个项目的情况下关于 svn的管理根据各自负责的模块都在主干trunk上开发合并,上线release后打tag版本,虽然也能满足svn合并管理,然而觉得既然有分支一说还是琢磨琢磨分支是怎么回事、怎么使用。

根据项目需求要求并行开发、需求上线时间不一致,可能并行开发多个需求,而先上线的需求版本不能携带未上线的正在开发或已完成开发的代码内容,这就体现出分支开发的重要性。

创建分支时记得添加创建信息,合并的时候需要!!!使用AS下载trunk下的代码和分支branches下的代码,开两个工程,各自提交,合并前,先更新,保持跟svn代码一致。先将主线合并到分支,如果是首次合并,则分支的revision number为创建分支前的最后一次提交的revision number(也可为创建分支时的信息number)。切换分支,可在分支工程切换到主线svn路径。

现介绍下大体合并流程。

  • 1、创建分支前最后一次主干trunk的代码提交时,标明该次提交信息为创建分支前的提交信息,此时提交信息的revision number有用(如果先将分支合并到主线,则用创建分支前的最后一次提交的revision number,如果先将主线合并到分支,则使用创建分支时的revision number即可。否则会出现被覆盖的问题。)
  • 2、创建分支,创建时加上创建分支的信息,如果主线合并到分支,该提交信息对应的revision number有用。避免被覆盖,总而言之,对应的为合并前最后一次提交的信息对应的revsion number。
  • 3、更改trunk下的代码,实时提交,分支需要合并主干的内容时切换到分支(update directory方式)。
  • 4、source2(将xxx)合并到source1(xxxx),合并后相当于在work space 有未提交的内容,所以也得提交,总之不管谁被合并都得先提交自身。
  • 5、当分支提交后切换到主干,再将分支合并到主干,由于分支此时代码 最新也最全(包含了主干的代码),直接以HEAD默认版本合并即可。

根据我所理解的分支开发,现在一步一步记录下我所操作的完成流程。

  • 首先创建工程SVNTestDemo,可在文件夹中使用小乌龟将其添加到svn服务器上,之前开发的几年老是直接使用AS工具,就一个新建的工程可能要提交一天,特别费劲不可取。
  • 通过小乌龟在svn服务器想要创建的地址下创建文件夹并命名该工程名,在其下面创建trunk、branches、tag等文件
    image.png
  • 右击选择创建文件夹,选中trunk目录右击添加通过AS创建的SVNTestDemo工程文件夹,并将该工程下载到本地关联上svn
image.png

创建好的svn服务器工程目录


image.png

使用AS的操作步骤流程

  • 1,先创建分支

创建分支时主干最后一次提交代码写上提交注释,该注释对应的revision number很重要。创建成功后可更改主干的代码并提交。 创建分支二选一,一般选择从svn服务器copy路径。

image.png

image.png
image.png
  • 2,切换到分支目录

分支路径可能不可以选,那可以直接复制对应的branches地址粘贴进去即可。

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

注意:如果将 主干合并到分支时,因为要的是主干最新的内容,所以默认主干source2选择的revision为HEAD即可,而source1是source2创建的,也就是分支代码是跟主干创建分支前最后一次提交代码对应的revision的版本一致或者说就是创建分支时的代码一致(在svn上),而主线更改了,分支也可能更改了,所以合并的时候将最新的主线内容合并到创建主线之前的最后一次提交的revision number代码合并,这样既能保证包含主线最新内容,也能检测出主线跟分支冲突的地方,也不干扰分支新建的内容。如果非首次合并,已经合并过了,那么分支选择为最后一次合并的revision number

image.png
image.png

根据上面的流程操作后到合并那步流程,如下

image.png

image.png
image.png
image.png

image.png

image.png
image.png

将分支合并到主干上。


image.png

问:

trunk提交了代码,合并到branches,trunk创建branches的commit id为1,trunk提交的commit id为2 合并的时候branches的指向为1,合并后提交的branches commit id为3,然后再次更改了trunk并提交为4,更改branches 并提交为5,那此时再将trunk合并到branches branches指向几?
答:最后合并没有提交,所以还是指向5,生成新的id6 ?

image.png

????

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341