svn版本库:[原]有关SVN版本管理的介绍说明

 

有关SVN版本管理介绍说明(讨论稿)

1.     1.       规范标准软件Software开发流程

2.       提高代码管理规范标准性和安全性

2.     参和者 所有开发人员、软件Software项目经理(project manager)亦适用于实习生

3.     管理软件Software 1.       版本管理采用SubVersion + TortoiseSVN进行版本控制管理

2.       TortoiseSVN最新版本发布于ftp://192.168.1.6/软件Software库/03_编程工具/TortoiseSVN

4.     目录结构 SVN目录结构如下所示:

192.168.1.3

├─Product_A

 ├─branches

  ├─dev_1_0

   ├─Document

    ├─1需求文档

    └─2测试文档

   └─Project

        ├─Model_1

        └─Model_2

  └─dev_1_1

 ├─tags

  ├─dev_1_0

   ├─Doument

    ├─1立项文档

    ├─2需求分析

    ├─3系统设计

    ├─4开发计划

    ├─5测试报告

    ├─6会议纪要

    └─7产品实施

   ├─Install

    ├─1安装包

    ├─2用户手册

    └─3培训计划

   └─Source

        ├─Model_1

       ├─Model_2

        ├─Model_3

        └─Solution

  ├─dev_1_1

  └─dev_1_2

 └─trunk

      ├─Include

      ├─Project

      ├─Public

       ├─1会议纪要(临时)

       ├─2任务分配

       ├─3开发纪要

       └─4测试数据

      └─SDK

          ├─Boost

           ├─Include

           └─Lib

          └─TDE

              ├─Include

              └─Lib

└─Product_B

每个软件Software产品对应SVN根目录下个 2级子目录个软件Software产品目录又主要包括如下 3个部分:(1)Tag;(2)Trunk;(3)Branches

Tag:按版本保存该软件Software产品所有经过完整测试历史稳定版本相当于该软件Software产品里程牌每个版本目录主要包括 3个部分:(1)Document;(2)Install;(3)Source

Tag/Document:和该版本软件Software产品有关文档不包括组成模块文档相近主题文档应保存在同子目录下子目录命名清晰明了例如上图所示

Tag/Install:经过测试完整安装包以及安装介绍说明、用户指南、更新记录等相关用户文档若需要其它组件支持也应放在此目录下

Tag/Source:和该软件Software产品有关所有源代码Source目录下主要包括两大类类是源代码主要是每个开发人员本地Project目录(见有关VC2005工程配置介绍说明)中模块个模块是个目录模块目录下包括和该模块相关所有文档类是解决方案根据软件Software产品区别可以定义若干个解决方案例如“XX信息平台”产品由 3个部分组成:采集、应用和管理器所以可以定义 3个解决方案分别用于生成这 3个组成部分解决方案内工程可以按开发人员、功能等主题定义筛选器特别注意每个解决方案必须定义子工程“依赖关系”和“生成顺序”工程依赖关系也需要形成文档

 

Trunk:目录是软件Software产品当前主干开发版本主要由 4部分组成:(1)Include;(2)Project;(3)Public;(4)SDK

Trunk/Include:软件Software产品开发过程中需要包含公共头文件不能包括开发模块输出头文件比如软件Software产品需要使用boost::share_ptr功能该功能只包括头文件则可以把boost::share_ptr使用头文件放在Include目录里Include目录也可以根据需要定义子目录参考有关VC2005工程配置介绍说明

Trunk/Project:存放所有软件Software开发模块区别开发人员将自己本地工程中Project存放于此目录中若模块数量较多注意(1)命名清晰(2)不要重名比如功能库可以用取名“libXXX平台插件可以取名“pluginXXXX”等

Trunk/Public:存放软件Software开发过程中需要被所有开发人员共享文档、代码、图表等比如项目组会议纪要、任务分配和开发计划书、测试用例数据库dmp导出文件等Public文件应该是临时性质不代表最终成果文档;最终成果文档可以由Public内容演化生成

Trunk/SDK:若软件Software产品是基于某开发平台 2次开发产品则该开发平台相关文件应放在此目录下若使用了多个SDK则应按区别SDK组织 2级目录每个 2级目录下文件应该是独立完整也应包括SDK介绍说明文档、更新记录和举例代码

 

Branches:目录是软件Software产品迭代开发版本Branches目录中应按当前迭代版本组织目录版本目录下子目录组织参考Trunk目录Branches内容主要由 3部分组成:(1)需求文档;(2)开发代码;(3)测试结果

需求文档记录针对某迭代版本提出新需求以及为了满足这些新需求该版本哪些模块需要进行哪些大致调整即“需求”;具体模块调整方案应记录在该模块“内部文档”中开发代码是开发人员根据需求文档对相关模块进行调整即“响应测试结果记录测试人员对修改后模块进行测试得出来结果即“结果

“需求-响应-结果”这是个循环过程直至满足了新需求并通过测试这个过程如下图所示:



 

5.     用户和权限 SVN用户主要分 3个层次权限等级:(1);项目经理(project manager)(2)开发人员;(3)实习生项目经理(project manager)具有SVN所有目录读写权限;开发人员根据情况可以取得和项目经理(project manager)相同权限或者对应Project目录权限;实习生通常对分配给自己Model目录具有读写权限对他所依赖其它Model目录具有只读权限

介绍说明:文档层次是两层层是和整体相关文档以及“最终文档层是“模块文档通常实习生可以接触只有模块文档(包括任务模块文档和依赖模块文档)

 

6.     日常管理 提交到SVN代码必须是可Build通过代码特别是在开发初期模块接口功能可以简单地实现或者干脆不实现但是定要保证依赖到此模块其他开发人员可以Build通过

开发人员应该形成“上班update下班commit习惯即每天开始工作时候最好是检查下自己依赖模块有没有更新结束工作时候将自己负责模块commit

但是这样又有个问题在项目开发过程中特别是初期模块接口是不稳定这样会造成模块用户频繁地应对接口变化这是应该是个“度”问题也从个侧面要求开发人员先设计接口并保证在较长时间内接口功能、样式保持稳定

Tag标签: SVN 管理
Tags:  svn版本库

延伸阅读

最新评论

发表评论