SVN的约定俗成的目录结构

 

对于SVN约定俗成的目录结构的一点资料:(另外,由本官方出的书还不错,我有电子档)

trunk:表示开发时版本存放的目录,即在开发阶段的代码都提交到该目录上。

branches:表示发布的版本存放的目录,即项目上线时发布的稳定版本存放在该目录中。

tags:表示标签存放的目录。

在这需要说明下分三个目录的原因,如果项目分为一期、二期、三期等,那么一期上线时的稳定版本就应该在一期完成时将代码copy到branches上,这样二期开发的代码就对一期的代码没有影响,如新增的模块就不会部署到生产环境上。而branches上的稳定的版本就是发布到生产环境上的代码,如果用户使用的过程中发现有bug,则只要在branches上修改该bug,修改完bug后再编译branches上最新的代码发布到生产环境即可。tags的作用是将在branches上修改的bug的代码合并到trank上时创建个版本标识,以后branches上修改的bug代码再合并到trunk上时就从tags的version到branches最新的version合并到trunk,以保证前期修改的bug代码不会在合并。

 

分支用于解决什么样的问题?

在手机游戏开发过程中,经常会遇到多种机型移植的问题。通常开发人员都说以一种机型作为 release 基础版本的目标,然后再此基础上进行相关的适配工作,如,键值修改,屏幕大小的修改单等。

然而同时维护多个版本是异常头疼的事情,因为很少有人能保证在移植之前,基础版本是没有 bug 的,特别是在工期很紧的情况下。这样一来,基础版本中出现了 bug ,就需要手动的“ Ctrl+C/Ctrl+V ”到其他的所有版本,各种版本的管理非常混乱,经常一不小心就会出现这样那样的问题。

 

而 SVN 的分支 (branch) 虽然不能做到自动将基础版本中的修改复制到其他版本中,却可以对各种版本的管理提供更有效和更规范的支持,避免了很多人为造成的问题。使用 SVN 来管理,可以将基础版本作为主干 (trunk) ,并从项目启动到 alpha 版本的推出,都可以在主干上进行开发。 alpha 版本发布以后,对于其他版本可以分别建立分支,如: branch_moto , branch_s603 等

 

如何创建分支?

创建分支非常简单,只需在需要创建分支的工作目录上,使用TortoiseSVN → Branch/Tag命令,在 "To URL" 项指定待创建的分支 url 即可。具体 可查看TortoiseSVN的帮助文档中的“ Braching/Taging ”一节

 

 

如何在分支下工作?

假设我们的主干名为 trunk ,分支目录名为 branch 。 branch 实际上是 trunk 目录在 branch 创建时的 copy ,而创建以后, branch 与 trunk 实际就是互不干扰的工作了, branch 上的修改不会影响到 trunk ,反之亦然。

 

如何合并分支?

事实上,我们并没有解决本文开头所提出的问题,即, trunk 有了修改之后,并不会自动提交到 branch 中(不知道有没有其他的版本管理工具可以做到),这一切都需要手动来实现,而这个过程在 SVN 中称为“合并 (merge) ”。

SVN 合并与原始的“ Ctrl+C/Ctrl+V ”相比,有以下几点好处(假设是将 trunk 合并到 branch 中):

1 、 trunk 中新增的文件可以自动合并到 branch 中

2 、提示 trunk 与 branch 中的同名文件的冲突内容,便于用于编辑冲突

 

合并操作步骤

在 TortoiseSVN 中提供便捷的合并功能。在待合并的工作目录上(如: branch ),使用TortoiseSVN → Merge命令,在“ From:(start URL and revision of the range to merge) ”中选择希望合并的目录 ( 如: trunk) ,并指定希望合并的开始 revision 编号,在“ To:(end URL and revision of the range to merge) ”中选择结束 revision 编号。然后点击“ merge ”完成合并操作,剩下的工作就是编辑冲突了,当然运气好的话是不需要这个过程滴。

值得注意的是,“ From: ”和“ To: ”中的 URL 通常是相同的,切记不要与创建分支时的含义混淆。

与合并相关的操作可查看TortoiseSVN的帮助文档中的“ Merging ”一节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
介绍SVN各个目录使用规范 Svn目录使用规范 TortoiseSVN客户端工具 选择创建SVN目录结构的选项(生成trunk、branches、tags目录),如下图: 1、 trunk是主分支,是日常开发进行的地方。 2、branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。 3、tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。 注:在这需要说明下分三个目录的原因,如果项目分为一期、二期、三期等,那么一期上线时的稳定版本就应该在一期完成时将代码copy到branches上,这样二期开发的代码就对一期的代码没有影响,如新增的模块就不会部署到生产环境上。而branches上的稳定的版本就是发布到生产环境上的代码,如果用户使用的过程中发现有bug,则只要在branches上修改该bug,修改完bug后再编译branches上最新的代码发布到生产环境即可。tags的作用是将在branches上修改的bug的代码合并到trunk上时创建个版本标识 Trunk目录:Doc(文档库,放项目相关文档类)、sourcecede(代码库) Doc目录下按项目存放文档,以下以proj1为例做说明 Proj1----项目名 1、Controlled------组织级scm建一个名为controlled的目录,当项目某文档通过评审后,组织级scm从项目目录下找到那文档,复制到controlled目录下。(一般用不到) 2、Develop---开发文档 2.1、Design----设计文档 2.1.1、DbDesign---数据库设计文档 2.1.2、HLD---概要设计 2.1.3、InterfaceDesign---接口设计 2.1.4、ServiceDesign---服务设计 2.2、REQ---需求文档 2.3、SRS---软件需求规格说明 2.4、Test---测试文档 2.4.1、Review---可空 2.4.2、TestCese---测试用例 2.4.3、TestDoc---测试文档 2.4.4、TestEnv---测试环境说明 2.4.5、TestReport---测试报告 3、Document---项目文档 4、Management---管理文档 4.1、Meetings--会议纪要 4.2、PIM--- 4.3、Plan---计划 4.3.1、review 4.3.2、SDP---软件开发策划文档 4.3.3、SPP---软件项目策划文档 4.4、report---报告 4.4.1、Milestonereport---版本报告 4.4.2、ProjectTrackReport---项目跟踪报告 4..4.3、SCM---软件配置管理文档  4.4.4、SQA---软件质量保证计划 4.4.5、项目周报 4.5、Sow---工作说明书 4.6、Summarize---总结 4.7、Template---模板 4.8、Trainning---培训文档 打标签/分支有两种方式: 1、选中项目,就是trunk下的本地项目,右击,选中Branch/Tag,出现如下对话框。 下图中的配置完成了之后,点击OK即可完成“打标签/分支”。 2、直接在SVN上在对应的标签/分支目录下创建对应的版本文件夹,将trunk下稳定版本的代码直接copy到对应的文件目录下即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值