Svn分支管理的使用(三)

Svn分支管理的使用(三)

  • 使用场景:
    假如你的项目的某个版本(例如1.0版本)已经完成开发、测试并已经上线了,接下来接到新的需求,新需求的开发需要修改多个文件中的代码,当需求已经开始开发一段时间的时候,突然接到用户或测试人员的反馈,项目中有个重大bug需要紧急修复,并且要求bug修复后要立即上线;此时应该怎么修复bug呢?是在当前已经开发新需求的基础上进行修复吗?答案是否定的,原因是:如果是在已经开发新需求的基础上进行修复bug,那么新需求还没开发好,更没有测试,怎么立刻(或最可能快的)上线?!再次如果新功能的开发和bug修复的代码都涉及到同一段代码冲突了怎么办 。很显然不能在当前开发的代码基础上进行bug修复工作完美的解决方案是:在当时完成的那个版本中进行bug fix,这样带来的好处是:
    1:bug修复好之后可立即上线,不会因为新需求还没有完成或测试而延迟上线时间
    2: bug修复是在原来上线的那个版本进行修复的,引起新bug的风险小,如果是在新需求的基础上修复bug, 那么新功能可能会带来新的bug
  • SVN仓库目录结构Repository:
    trunk
    tags
    branches
    • trunk(主干|主线) branchs(分支) tags(标记)
      truck(主干|主线|主分支):是用来做主方向开发的,新功能的开发应放在主线中,当模块开发完成后,需要修改,就用branch。
      branch(分支):分支开发和主线开发是可以同时进行的,也就是并行开发,分支通常用于修复bug时使用
      tag(标记):用于标记某个可用的版本,可以标记已经上线发布的版本,也可以标记正在测试的版本,通常是只读的
  • Svn分支的使用:
    1. 建立主干分支目录结构
      这里写图片描述
    2. 创建分支:在主干目录 trunk 右键,在svn菜单选择 Branch/tag…(分支/标记…)
      这里写图片描述
      • 步骤①是分支地址,这里直接以 /branches/branches1
      • 步骤②是取trunk版本,HEAD revision表示最新版本,其他可通过 show log选择
      • 执行 OK 后,到 branches 目录 svn update 就可以看到最新的分支了
    3. 合并分支到主干,然后,合并这个文件分支到主干。现在到主干目录,右键svn菜单选 Merge(合并)…
      这里写图片描述
      这个是将分支或主干的修改合并到当前工作目录,继续如下
      这里写图片描述
      接下来点完成,如果没冲突的话,分支文件就合到主干了。
  • svn架构
    这里写图片描述