美文网首页Git/Svn 的使用SVNPC软件
window SVN客户端 创建分支/合并分支/切换分支

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

作者: 胡木木OvO | 来源:发表于2019-05-17 16:40 被阅读4次

为什么需要分支

假如你的项目已经完成开发、测试并已经上线了。
上线后你再开发新的功能,这时测试突然发现上线的版本有个重大的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的分支)

相关文章

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

    为什么需要分支 假如你的项目已经完成开发、测试并已经上线了。上线后你再开发新的功能,这时测试突然发现上线的版本有个...

  • Git(三)——Branch分支

    创建分支 查看分支 切换分支 创建并切换分支 删除本地(合并)分支: 删除本地(未合并)分支: 删除远程分支 分支...

  • git分支管理

    查看分支: 创建分支: 切换分支: 创建+切换分支: 合并某分支到当前分支: 删除分支:

  • Git 分支

    创建分支 git branch <分支名> 切换分支 git checkout <分支名> 创建同时切换分支(合并...

  • git分支管理常用命令

    创建分支: 切换分支: 创建并切换分支 创建远程分支到本地: 查看当前分支: 获取所有分支: 合并某分支到当前分支...

  • git分支(branch)和标签(tag)操作

    分支相关操作 查看分支 创建分支 切换分支 创建+切换分支 合并某分支到当前分支 删除本地分支 删除远程分支 标签...

  • 工作中遇见的git

    查看分支: 创建分支 推送分支到远端 切换分支 合并分支

  • Git Learn II

    查看分支 创建+切换分支. 创建分支 切换分支 合并指定分支到当前分支. 删除分支 查看分支图 储藏当前工作现场 ...

  • Git 经验分享(公司开发常用git命令) 2020.04.10

    Git 经验分享 一、 创建与合并分支 从master分支创建dev分支并切换到dev分支 分支合并(将dev合并...

  • Git分支

    分支简介 分支创建 分支切换 分支新建与合并 新建分支 分支的合并 分支删除 遇到冲突时的分支合并 解决冲突之后,...

网友评论

    本文标题:window SVN客户端 创建分支/合并分支/切换分支

    本文链接:https://www.haomeiwen.com/subject/samoaqtx.html