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

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 ”一节

分享到:
评论

相关推荐

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

    SVN 标准目录结构:trunk、branches、tags SVN(Subversion)是一种版本控制系统,广泛应用于软件开发和项目管理中。在 SVN 中,标准目录结构是指 trunk、branches、tags三个目录,这三个目录反映了软件开发的通常...

    SVN目录结构说明

    ### SVN目录结构说明 #### 一、概述 在软件开发过程中,版本控制系统是不可或缺的工具之一,它能够帮助团队管理代码的变化历史,并有效地协同工作。Subversion(SVN)作为一款开源版本控制系统,在众多项目中得到...

    常用项目SVN目录结构

    SVN(Subversion)是一种广泛使用的集中式版本控制系统,本文将深入探讨“常用项目SVN目录结构”这一主题。 首先,理解SVN目录结构的重要性在于它规范了团队的工作流程,确保代码的一致性和可维护性。一个良好的SVN...

    SVN项目文件夹结构指南(附所有目录结构一键生成)

    SVN项目文件夹结构指南,把里面的createdoc.txt改名为createdoc.bat后在windows下运行,所有目录结构自动生成在当前目录下,各企业的项目根据实际情况来修改,本目录适合中小型企业。

    常见项目svn目录结构

    一个规范化的项目SVN目录结构对于团队协作至关重要,因为它有助于保持代码的整洁、有序,并促进有效的版本控制。以下是关于“常见项目svn目录结构”的详细说明: 1. **根目录(trunk)**: - `trunk`是主开发分支...

    svn目录结构权限设置

    本文将深入探讨svn的权限设置以及本地库目录结构的设计。 首先,svn的权限设置主要通过两种方式实现:一是svnserve配置,二是通过HTTP/HTTPS协议(Apache或IIS)进行WebDAV访问。这里我们主要关注svnserve的权限...

    svn-doc文件夹结构.rar

    本资源“svn-doc文件夹结构.rar”似乎包含了一份关于个人如何组织SVN目录结构的文档或示例。虽然描述提到“各人喜好”,但良好的SVN目录结构对于项目管理和团队协作有着显著的影响。 在Java开发环境中,使用SVN进行...

    SVN改进对中文目录结构的支持

    authz.conf 文件在默认情况下对权限的控制是不支持中文的,如果采用中文目录结构则需要修改代码库的 authz.conf 文件。

    svn目录使用规范.doc

    **一、SVN目录结构** 在使用SVN(Subversion)进行版本控制时,遵循一种标准的目录结构有助于保持代码库的整洁和有序。这种结构通常包括三个主要部分:`trunk`、`branches`和`tags`。 1. **trunk**:这是主分支,...

    svn目录清理脚本

    标题 "svn目录清理脚本" 涉及到的知识点主要集中在版本控制系统Subversion(简称SVN)的管理和清理操作上。SVN是一种广泛使用的版本控制系统,它允许开发者跟踪和控制源代码的变化,便于团队协作。在开发过程中,每...

    SVN目录详细设计教程.rar

    以下是对SVN目录结构和使用方法的深入探讨。 1. **SVN基本概念** - **版本库(Repository)**:SVN的核心存储区域,保存所有文件和目录的历史版本。 - **工作副本(Working Copy)**:用户在本地电脑上的项目副本...

    清楚svn目录下生成的.svn文件夹

    - **使用脚本**:提供名为“清楚当前目录下的.svn信息.bat”的批处理文件,可以批量删除当前目录及其子目录下的`.svn`文件夹。在Windows环境下,可以通过以下命令实现: ``` for /r %i in (.svn) do @rd /s /q "%...

    PHPStorm中SVN因目录中含有空格,不允许update等操作.zip

    你先用TortoiseSVN登录,选择永久保存账号到.svn目录。这样在IDEA中就会直接使用该账号进行SVN的update等操作了.txt"建议在TortoiseSVN中预先登录并保存账户信息,这样PHPStorm就可以直接使用这些保存的凭证进行操作...

    删除svn目录内.svn目录及内容的方法汇总

    标题 "删除svn目录内.svn目录及内容的方法汇总" 涉及的是版本控制系统Subversion(简称SVN)的管理技巧。在使用SVN时,`.svn` 目录是Subversion存储元数据的地方,包括版本信息、工作副本状态等。然而,在某些情况下...

    根据SVN的更新日志导出部署目录结构的更新文件

    根据SVN更新日志,结合eclispse/或其他IDE工具导出war包解压出来就是部署的目录结构了;再把开发的工具和解压的全量更新文件以及导出的SVN更新日志放在同级目录,利用插件把SVN更新日志的增量更新文件提取生成同部署...

    SVN源码库结构规范 V0.1.pdf

    2. SVN 管理层级别目录结构 SVN管理层目录在svnserve的-r参数中给出。这个目录是磁盘上的某文件夹目录。在这个目录里存放着所有SVN管理的源代码。SVN服务器中可以有一个或多个源码库,其中每一个SVN源码库是这个...

    svn--项目管理工具[总结版]

    工程目录结构 SVN中的工程目录通常包含三个部分: - **trunk**:存放主干开发的代码,是最新版本的核心。 - **branches**:用于保存从主干分离出来的分支,便于进行特定功能的开发或修复。 - **tags**:标记特定...

    删除项目中的SVN目录

    综上所述,删除项目中的SVN目录是一个常见的开发操作,主要是为了简化文件结构和提高效率。通过编写小程序或使用现有工具,开发者可以轻松地完成这项任务。不过,这也提醒我们在使用版本控制系统时,理解其工作原理...

    清除所有.svn目录

    ### 清除所有.svn目录 #### 知识点概览 - SVN(Subversion)是一种集中式的版本控制系统,广泛应用于软件开发过程中。 - `.svn`目录是SVN用于存储版本控制元数据的地方,通常对用户不可见。 - 本文将详细介绍如何在...

    一键删除目录下SVN记录文件

    标题“一键删除目录下SVN记录文件”所指的是在计算机中快速移除版本控制系统Subversion(SVN)在文件夹中留下的所有痕迹。在开发过程中,SVN用于跟踪和管理源代码更改,但有时用户可能需要从本地文件系统中完全移除...

Global site tag (gtag.js) - Google Analytics