window SVN客户端 创建分支/合并分支/切换分支

为什么需要分支

假如你的项目已经完成开发、测试并已经上线了。
上线后你再开发新的功能,这时测试突然发现上线的版本有个重大的bug。
此时应该怎么修复bug呢?是在当前已经开发新需求的基础上进行修复吗?
答案是否定的
原因是:如果是在已经开发新需求的基础上进行修复bug,那么新需求还没开发好,更没有测试,怎么立刻(或最可能快的)上线?!
再次如果新功能的开发和bug修复的代码都涉及到同一段代码冲突了怎么办 。
很显然不能在当前开发的代码基础上进行bug修复工作
完美的解决方案是:在当时完成的那个版本中进行bug fix
这样带来的好处是:

  • bug修复好之后可立即上线,不会因为新需求还没有完成或测试而延迟上线时间
  • bug修复是在原来上线的那个版本进行修复的,引起新bug的风险小,如果是在新需求的基础上修复bug, 那么新功能可能会带来新的bug

几个重要的概念

在建立项目版本库时,可首先建好项目文件夹,并在其中建立trunk, branches, tags三个空的子目录。这样在trunk中开始进行开发

  • trunk是主分支,是日常开发进行的地方。
  • branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。
  • tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。

案例

准备工作
1,首先在你svn项目下创建 trunk branches tags 三个目录 如图:

在这里插入图片描述

2,将你之前的代码 (没有请忽略)放入trunk
创建分支
在/trunk/目录上右键,依次选择"TortoiseSVN" -> "Branch/tag...",在弹出窗口的"To URL"中填入分支的地址,在这里目标revision选择HEAD revision,如下图所示,添加log后点击ok分支便建立了。
在这里插入图片描述

在这里插入图片描述

如何开发
开发分为两种方式 :

  • 集中式(trunk进行主要开发):直接在trunk下开发 要上线时 直接用trunk 发布版本(个人开发 推荐)
  • 分散式(分支进行主要开发):在每个人的分支下开发 要上线时 在合并到trunk 在进行发布版本(团队开发推荐)

集中式(trunk进行主要开发)
1.基于trunk,创建release_ 1.0打tag
此时的目录结构为

svn://proj/
    +trunk/ (freeze)
    +branches/
    +tags/
        +tag_ release_ 1.0 (copy from trunk)

2.2.0开始开发,trunk此时为2.0的开发版
3.此时1.0有bug, 需要修改,基于1.o的tag做branch
此时的目录结构为

svn://proj/
    +trunk/ ( dev 2.o)
    +branches/
        +dev_ 1.0_ bugfix (copy from tag/release_ 1.0)
    +tags/
        +release_ 1.0 (copy from trunk)

4.在1.0 bugfix branch迸行1.0 bugfix开发,在trunk迸行2.0开发
5.在1.0 bugfix完成之后,基于dev_ 1.0_ bugfix的branch做release等
6.根据需要选择性的吧dev_ 1.0_ bugfix这个分支merge回trunk (根据具体情况来定)
分散式(分支进行主要开发)
1.1.0开发,做 dev1.0的branch
此时的目录结构

SVN://proj/
    +trunk/ (不担负开发任务)
    +branches/
    +dev_1.0(copy from thrunk)
    +tags/

2.1.0开发完成,,merge dev1.0到trunk
此时目录结构:

svn://proj/
    +trunk/ (merar from branch dev_1.0) 
    +branches/
    +dev_1.0(开发任务结束,freeze) 
    +tags/

3.根据tmnk做1.0的tag
此时目录结构:

svn://proj/
+trunk/ (mercLr from branch dev_1.0) 
+branches/
    +dev_1.0(开发任务结束,freeze) 
+tags/
    +tag_release_1.0(copy from trunk)

4.1.0开发,做dev2.0分支
此时目录结构:

svn://proj/
+trunk/ (mergr from branch dev_1.0) 
+branches/
    +dev_1.0(开发任务结束,freeze) 
    +dev_2.0(逬行 2.0 开发)
+tags/
 +tag_release_1.0(copy from trunk)

5.1.0有bug.直接6dev1.0&分支上修复
此时目录结构:

svn://proj/
+trunk/ (mercLr from branch dev_1.0) 
+branches/
    +dev_1.0(1.0 bugfix)
    +dev一 2.0(逬行 2.0 开发)
+tags/
    +tag_release_1.0(copy from trunk)

6.选择性的进行代码merge

第一种开发模式(trunk进行主要开发,集中式):
优点:管理简单。
缺点:当开发的模块比较多,开发人数/小团队比较多的时候,很容易产生冲突而影响对方的开发。因为所有的改动都有可能触碰对方的改动。
第二种开发模式(分支进行主要开发,分散式):
优点:各自开发独立,不容易相互影响。
缺点:管理复杂,merge的时候很麻烦,容易死人。

合并分支
选择你要合并的分支 右键选择-> tortoisesvn ->Merge

在这里插入图片描述

在这里插入图片描述

点击next 在URL to merge from 选择要合并的分支
在这里插入图片描述

如果代码没有冲突的话 代码将合并到trunk(右击选择Merge的分支)

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

推荐阅读更多精彩内容