Subversion有一个很标准的目录结构:
project
+-- trunk
+-- branches
+-- tags (此目录只读)
这个标准的目录结构我们在大多数的开源项目中都能看到,这是因为基于这套标准目录结构为软件开发提供了一种非常好的宏观版本库管理机制(特别是在产品类项目中)。
trunk为主开发目录,branches为分支开发目录,tags为存在目录
1 Trunk
Trunk中文翻译为“主干”的意思,在项目运作过程中,日常的开发和管理资料都在此目录中进行维护和更新。
2 Branches
Branches的中文意思为“分支”,在项目运作过程中,存放阶段性成果(版本),这些阶段性成果是可维护(包括为客户定制化的版本)。
3 tags
tag的中文意思为“标签”,此目录为一些阶段性成果进行存档。为只读目录,不允许进行修改。
4 使用实例
比如开发项目project。当前项目进展到版本3.0.0.140224
Trunk目录中只存储当前最新的开发版本。
Branches目录中存储每个版本最新的子版本。
Tags目录中存储所有发布的版本。包括标准版本和标准版本的各个子版本。
此时可能会出现的目录结构如下:
project
|
+-- trunk
+ |
+ +----- main.cs (3.0)
+
+-- branches
+ |
+ +-- r1.3.0.120422
+ + |
+ + +---- main.cs (1.1版本的最新文件)
+ +
+ +-- r2.1.0.130422
+ |
+ +---- main.cs (2.2版本的最新文件)
+
+-- tags (此目录只读)
|
+-- r1.0.0.120422
+ |
+ +---- main.cs (1.0版本的发布文件)
+
+-- r1.1.0.120622
+ |
+ +---- main.cs (1.1版本的发布文件)
+
+-- r1.2.0.121122
+ |
+ +---- main.cs (1.2版本的发布文件)
+
+-- r1.3.0.130422
+ |
+ +---- main.cs (1.3版本的发布文件)
+
+-- r2.0.0.130522
+ |
+ +---- main.cs (2.0版本的发布文件)
+
+-- r2.1.0.131222
|
+---- main.cs (2.1版本的发布文件)
附件:
版本号定修改规则
* 主版本号(1)
:当功能模块有较大的变动,比如增加多个模块或者整体架构发生变化。此版本号由项目决定是否修改。
* 子版本号(1):当功能有一定的增加或变化,比如增加了对权限控制、增加自定义视图等功能。此版本号由项目决定是否修改。 * 阶段版本号(1)
:一般是 Bug 修复或是一些小的变动,要经常发布修订版,时间间隔不限,修复一个严重的bug即可发布一个修订版。此版本号由项目经理决定是否修改。
* 日期版本号(051021):用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本号。此版本号由开发人员决定是否修改。
* 希腊字母版本号(beta):此版本号用于标注当前版本的软件处于哪个开发阶段,当软件进入到另一个阶段时需要修改此版本号。此版本号由项目决定是否修改。