`
endual
  • 浏览: 3558028 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SVN trunk, branches and tags的使用方法

 
阅读更多

SVN的工作机制在某种程度上就像一颗正在生长的树:

  • 一棵有树干和许多分支的树
  • 分支从树干生长出来,并且细的分支从相对较粗的树干中长出
  • 一棵树可以只有树干没有分支(但是这种情况不会持续很久,随着树的成长,肯定会有分支啦,^^
  • 一颗没有树干但是有很多分支的树看起来更像是地板上的一捆树枝
  • 如果树干患病了,最终分支也会受到影响,然后整棵树就会死亡
  • 如果分支患病了,你可以剪掉它,然后其他分支还会生长出来的哦!
  • 如果分支生长太快了,对于树干它可能会非常沉重,最后整棵树会垮塌掉
  • 当你感觉你的树、树干或者是分支看起来很漂亮的时候,你可以给它照张相,这样就就可以记得它在那时是多么的赞。

——Trunk

Trunk是放置稳定代码的主要环境,就好像一个汽车工厂,负责将成品的汽车零件组装在一起。

以下内容将告诉你如何使用SVN trunk

  • 除非你必须处理一些容易且能迅速解决的BUG,或者你必须添加一些无关逻辑的文件(比如媒体文件:图像,视频,CSS等等),否则永远不要在trunk直接做开发
  • 不要因为特殊的需求而去对先前的版本做太大的改变,如何相关的情况都意味着需要建立一个branch(如下所述)
  • 不要提交一些可能破坏trunk的内容,例如从branch合并
  • 如果你在某些时候偶然间破坏了trunkbring some cake the next day (“with great responsibilities come… huge cakes”)

——Branches

一个branch就是从一个SVN仓库中的子树所作的一份普通拷贝。通常情况它的工作类似与UNIX系统上的符号链接,但是你一旦在一个SVN branch里修改了一些文件,并且这些被修改的文件从拷贝过来的源文件独立发展,就不能这么认为了。当一个branch完成了,并且认为它足够稳定的时候,它必须合并回它原来的拷贝的地方,也就是说:如果原来是从trunk中拷贝的,就应该回到trunk去,或者合并回它原来拷贝的父级branch

以下内容将告诉你如何使用SVN branches

  • 如果你需要修改你的应用程序,或者为它开发一个新的特性,请从trunk中创建一个新的branch,然后基于这个新的分支进行开发
  • 除非是因为必须从一个branch中创建一个新的子branch,否则新的branch必须从trunk创建
  • 当你创建了一个新branch,你应当立即切换过去。如果你没有这么做,那你为什么要在最初的地方创建这个分支呢?

——Tags

从表面上看,SVN branchesSVN tags没有什么差别,但是从概念上来说,它们有许多差别。其实一个SVN tags就是上文所述的为这棵树照张相:一个trunk或者一个branch修订版的命名快照。

以下内容将告诉你如何使用SVN tags

  • 作为一个开发者,永远不要切换至、取出,或者向一个SVN tag提交任何内容:一个tag好比某种照片,并不是实实在在的东西,tags只可读,不可写。
  • 在特殊或者需要特别注意的环境中,如:生产环境(production)、?(staging)、测试环境(testing)等等,只能从一个修复过的(fixedtagcheckoutupdate,永远不要commit至一个tag
  • 对于上述提及到的环境,可以创建如下的tags“production”“staging”“testing”等等。你也可以根据软件版本、项目的成熟程度来命名tag“1.0.3″“stable”“latest”等等。
  • trunk已经稳定,并且可以对外发布,也要相应地重新创建tags,然后再更新相关的环境(production, staging, etc

——工作流样例

假设你必须添加了一个特性至一个项目,且这个项目是受版本控制的,你差不多需要完成如下几个步骤:

  1. 使用SVN checkout或者SVN switch从这个项目的trunk获得一个新的工作拷贝(branch
  2. 使用SVN切换至新的branch
  3. 完成新特性的开发(当然,要做足够的测试,包括在开始编码前)
  4. 一旦这个特性完成并且稳定(已提交),并经过你的同事们确认,切换至trunk
  5. 合并你的分支至你的工作拷贝(trunk),并且解决一系列的冲突
  6. 重新检查合并后的代码
  7. 如果可能的话,麻烦你的同事对你所编写、更改的代码进行一次复查(review
  8. 提交合并后的工作拷贝至trunk
  9. 如果某些部署需要特殊的环境(生成环境等等),请更新相关的tag至你刚刚提交到trunk的修订版本
  10. 使用SVN update部署至相关环境

除非注明,干草博客文章均为原创,转载请以链接形式标明本文地址

本文地址:http://www.tmper.com/blog/svn-trunk-branches-and-tags/

分享到:
评论

相关推荐

    svn trunk branches tags

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

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

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

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

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

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

    在软件开发过程中,版本控制...总的来说,正确使用 SVN 的 trunk、branch 和 tag,可以有效地支持敏捷开发和持续集成,提高软件质量,降低维护成本,使得团队能够快速响应需求变化和紧急情况,实现高效的软件开发流程。

    SVN版本控制方案

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

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

    ### SVN打基线常用命令使用介绍 #### 一、打基线的概念 打基线是版本控制中的一个重要概念,指的是给某一个版本的代码或文档打上一个标签,以便于将来能够快速找到并使用该版本。这对于项目的追踪、版本隔离、版本...

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

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

    svn使用手册

    - 点击 OK 创建版本库,此时版本库会自动包含 trunk、branches 和 tags 三个标准目录。 3. **导入项目到版本库**: - 找到项目文件夹,在文件夹上点击右键,选择 SVN -> 导入。 - 填写版本库 URL,可通过 ...

    SVN及VSS建立标签方法

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

    SVN服务器搭建和使用图文教程

    创建完成后,版本库中会默认建立 trunk、branches 和 tags 三个文件夹。 知识点5:使用 TortoiseSVN 客户端导入项目 使用 TortoiseSVN 客户端可以将项目导入到版本库中,需要填上版本库 URL 和导入信息,然后点击...

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

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

    SVN版本管理规范

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

    svn目录使用规范.doc

    **SVN目录使用规范** **一、SVN目录结构** 在使用SVN(Subversion)进行版本控制时,遵循一种标准的目录结构有...正确使用trunk、branches和tags,以及维护好文档库,能有效支持软件开发过程中的版本控制和知识管理。

    UBUNTU下SVN的应用.doc

    本文将详细介绍 SVN 在 Ubuntu 下的应用,包括 SVN 的标准目录结构、trunk、branches 和 tags 的概念、SVN 的工作机制,以及如何使用 SVN trunk 和 branches。 一、SVN 的标准目录结构 在 SVN 中,通常使用三种...

    svn服务器搭建与使用

    【SVN服务器搭建与使用详解】 ...至此,你已经成功搭建了一个SVN服务器,并学会了基本的使用方法。随着你对SVN的深入理解和实践,你会发现它在团队开发中的价值,帮助你更好地管理代码,提高开发效率。

    MAC自带SVN终端常用命令

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

    svn merge简单操作

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

Global site tag (gtag.js) - Google Analytics