`

SVN 中的trunk、branches、tags

 
阅读更多
1.trunk是主分支,是日常开发进行的地方。

2.branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。

3.tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。
注意:svn并没有明确的规范,更多的还是用户自己的习惯。
下面是详细介绍:
比如一个项目有main.cpp, common.h两个文件,假设目前在开发的是最新的3.0版本,而且1.0/2.0版本也在进行维护,那么项目树将类似如下样子:
project
|
+-- trunk
+ |
+ +----- main.cpp (3.0版本的最新文件)
+ +----- common.h
+
+-- branches
+ |
+ +-- r1.0
+ + |
+ + +---- main.cpp (1.x版本的最新文件)
+ + +---- common.h 
+ +
+ +-- r2.0
+ |
+ +---- main.cpp (2.x版本的最新文件)
+ +---- common.h
+ 
+-- tags (此目录只读)
|
+-- r1.0
+ |
+ +---- main.cpp (1.0版本的发布文件)
+ +---- common.h 
+
+-- r1.1
+ |
+ +---- main.cpp (1.1版本的发布文件)
+ +---- common.h
+
+-- r1.2
+ |
+ +---- main.cpp (1.2版本的发布文件)
+ +---- common.h 
+
+-- r1.3
+ |
+ +---- main.cpp (1.3版本的发布文件)
+ +---- common.h
+
+-- r2.0
+ |
+ +---- main.cpp (2.0版本的发布文件)
+ +---- common.h 
+
+-- r2.1
|
+---- main.cpp (2.1版本的发布文件)
+---- common.h
要使用这样的文件夹结构,在建立项目版本库时,可首先建好项目文件夹,并在其中建立trunk, branches, tags三个空的子目录,再将项目文件夹连同这三个子目录一起导入版本库。
这样在trunk中开始进行开发,当需要建立branch或tag时,使用SVN的copy操作进行。
其中tags目录需要只读,可以使用SVN中的authz文件控制该目录的访问权限为只读






*************************************************************************************************

Trunk: 主工作目录,从开始编码到当下所有开发功能的,最新版的,测试的,开发中的
Branch: Trunk的一个分支,
        1.Truank的重要版本发布后 创建一个分支上后可修复Bug,
        2. 在不影响Trunk的前提下,做大幅更改代码,可以创建Branch,有可能与Trunk合并;
Tags: 类似工作中的一个快照,保存特定版本,可以是Trunk,Branch的一个特定点上的快照.

 
在SVN中Branch/tag在一个功能选项中,在使用中也往往产生混淆。
 
在实现上,branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别。至于何时用tag,何时用branch,完全由人主观的根据规范和需要来选择,而不是强制的(比如cvs)。
 
一般情况下,
tag,是用来做一个milestone的,不管是不是release,都是一个可用的版本。这里,应该是只读的。更多的是一个显示用的,给人一个可读(readable)的标记。
branch,是用来做并行开发的,这里的并行是指和trunk进行比较。
 
比 如,3.0开发完成,这个时候要做一个tag,tag_release_3_0,然后基于这个tag做release,比如安装程序等。trunk进入 3.1的开发,但是3.0发现了bug,那么就需要基于tag_release_3_0做一个branch,branch_bugfix_3_0,基于这 个branch进行bugfix,等到bugfix结束,做一个tag,tag_release_3_0_1,然后,根据需要决定 branch_bugfix_3_0是否并入trunk。
 
对于svn还要注意的一点,就是它是全局 版本号,其实这个就是一个tag的标记,所以我们经常可以看到,什么什么release,基于xxx项目的2xxxx版本。就是这个意思了。但是,它还明 确的给出一个tag的概念,就是因为这个更加的可读,毕竟记住tag_release_1_0要比记住一个很大的版本号容易的多。
分享到:
评论

相关推荐

    svn trunk branches tags

    在svn中,`trunk`、`branches`和`tags`是三个核心概念,它们各自承担着不同的角色,帮助团队有效地管理源代码。 1. **trunk**: `trunk`是主要的开发目录,它存储着项目的主线开发代码。开发人员日常的编码工作...

    SVN中的Branches分支以及Tags标签详解与应用举例

    SVN 中的 Branches 分支以及 Tags 标签详解与应用举例 SVN(Subversion)是一款版本控制系统,广泛应用于软件开发中。它可以帮助开发者管理和控制代码的版本。SVN 中有两个重要的概念:Branches 分支和 Tags 标签。...

    SVN的标准目录结构:trunk、branches、tags

    当需要建立 branch 或 tag 时,可以使用 SVN 中的 copy 操作,例如,从 trunk 中 copy 到 branches 中,或者从 trunk 中 copy 到 tags 中。 权限控制 在 SVN 中,可以使用 authz 文件控制目录的访问权限。例如,...

    4.1、SVN trunk(主线) branch(分支) tag(标记) 1

    本文将深入探讨 SVN 中的 trunk、branch 和 tag 三个核心概念,以及它们在实际开发场景中的应用。 首先,trunk(主干或主线)是项目的主要开发分支,代表了项目的最新稳定状态。新功能的开发通常在这个分支上进行,...

    SVN 主干(trunk)、分支(branch )、标记(tag)

    资源中有 SVN 主干(trunk)、分支(branch )、标记(tag) 的详细解释,和作用 并带 SVN分支与合并 的详细操作文档(附图)。 SVN分支与合并的总结 1.分支(branche)的创建。 1、分支创建是建立在主干上的。 2、创建...

    SVN版本控制方案

    通过对SVN中Trunk、Branch、Tag的概念及使用方法的介绍,我们可以更好地理解如何高效地使用SVN来进行版本控制。遵循这些约定能够有效提升团队协作效率,减少代码冲突,确保项目的稳定性和可持续发展。

    配置Xcode版本控制SVN详细步骤

    5. 注意:确保SVN服务器已设置trunk、branches、tags目录。 此时,可能会发现trunk、branches、tags选项后面有红色警告标记。解决这个问题,需要在终端执行以下命令: ``` svn ls ...

    svn2git.zip

    在Subversion中,“trunk”通常代表主开发线,而“branches”和“tags”分别代表开发分支和版本标签。svn2git确保在迁移到Git时,这些关键的SVN概念能够被适当地映射和转换。 关于标签“Ruby”,这表示svn2git工具...

    UBUNTU下SVN的应用.doc

    在 SVN 中,通常使用三种目录结构:trunk、branches 和 tags。trunk 是主分支,是日常开发进行的地方。branches 是分支,一些阶段性的 release 版本,这些版本是可以继续进行开发和维护的,则放在 branches 目录中。...

    SVN打基线常用命令使用介绍

    在这个例子中,我们从/trunk/目录复制了一个版本到/tags/my_tag/目录,并附带了一个日志信息。 ##### 2. 创建分支(branch) 创建分支与创建标签类似,但是分支是用来支持并行开发或者维护多个版本的需求。 ```...

    SVN 源码 地址

    Spring框架的SVN结构通常包含`tags`、`trunk`和`branches`三个部分: - `tags`:代表已发布的稳定版本,通常对应于里程碑版本。 - `trunk`:代表当前正在开发的主要分支,包含了最新功能和改进。 - `branches`:...

    SVN中文教程.pdf

    4. 本教程提到了一些SVN相关的重要概念,比如 trunk、分支(branches)、标签(tags): - Trunk 是主开发线,通常是项目的最新版本。 - 分支(branches)用于创建项目开发的独立副本,以便在不影响主版本的情况下...

    SVN版本管理规范

    集中式开发——基于 Trunk 的开发和分散式开发——基于 Branches 的开发是两种常见的版本管理流程图。集中式开发方式简单,但代码对于多个不同的项目,不同的需求只有一份代码,正在修改中的代码不能很好地响应紧急...

    Eclipse中使用SVN配置

    - 保持存储库结构清晰,通常包括trunk、tags和branches目录,分别对应主开发分支、版本标签和分支。 - 在提交变更时,应提供有意义的提交消息,方便团队成员理解变更内容。 通过以上步骤,Eclipse就配置好了SVN环境...

    07-SVN自调用记录情况_LabVIEW程序分支与合并.docx

    在SVN项目中,常见的文件结构包括`trunk`、`branches`和`tags`: - **Trunk**:代表项目的主干发展线,通常包含最新的稳定版本。 - **Branches**:用来保存项目的分支版本,可以用于开发新功能或修复特定问题而不...

    svn merge简单操作

    在本地创建一个名为`Testing`的目录,并在该目录下创建三个子目录:`branches`、`tags` 和 `trunk`。 - **创建示例文件夹**:在 `trunk` 目录下创建一个名为 `examples1` 的目录,并在此目录下添加一个文件 `hello....

    svn转化为git

    这里的`--stdlayout`表示标准的SVN布局(trunk、branches、tags),`-s`表示设置svn.remote.url和svn.remote.branches配置。 6. **处理SVN分支和标签** `git svn clone`命令会自动处理SVN的分支和标签,但如果你...

    MAC自带SVN终端常用命令

    使用svn ls命令可以查看服务器上的目录结构,该命令可以查看特定的分支(branches)、标签(tags)以及主干(trunk)。命令格式为svn ls [SVN服务器地址]。 例如: ``` svn ls *** ``` 这将列出服务器地址下所有的...

    SVN及VSS建立标签方法

    首先,在 SVN 的源代码目录下建立两个文件夹:tags 和 trunk。tags 文件夹用于存储标签,trunk 文件夹用于进行主干开发。如果需要,也可以建立 branches 文件夹用于分支开发。 1.2 建立标签方法 1.2.1 方法一:...

    svn目录使用规范.doc

    这样,如果需要回溯到某个已知良好状态,可以从tags中获取。 **二、Doc目录结构** 在trunk目录下,有一个`Doc`子目录,专门用于存放项目相关的各种文档。具体如下: 1. **Controlled**:存放经过评审的文档,通常...

Global site tag (gtag.js) - Google Analytics