`

Subversion分支与合并

阅读更多

 

尽管svn没有作强制要求,但是一般svn版本库目录建议创建trunk、branches和tags三个目录。在实际操作时,trunk主干版本要时刻保持干净,即随时可以基于这个版本进行修改并将应用部署上线。branches是分支目录,存放并行开发的项目代码,因为分支是主干的廉价拷贝(相当只是提交了一次主干版本,增加了一个版本号,并没有取出版本库作镜像拷贝),所以你可以放心建立很多分支版本。不过 Subversion不支持跨版本库的拷贝,当使用svn copy时你只能在同一个版本库内操作。tags目录存放trunk某个的快照,比如说release-1.0即trunk处于1.0版本时的快照。

使用svn来作团队的代码管理,那么分支和合并将是非常常用的操作。下面是一个简单的示例。

1. 创建分支。这里假设你要负责一个叫theme的项目,分支号1.7.2。

   1. #这里的localhost是svn服务器地址
   2. svn copy -m "1.7.2 - theme" svn://localhost/www/trunk svn://localhost/www/branches/branch1.7.2-theme
   3. svn co svn://localhost/www/branches/branch1.7.2-theme

2. 从trunk中merge到分支。忙了一个星期终于开发完了,但是开发期间trunk版本有过改动,部署上线前你需要合并trunk的代码。

   1. #branch1.7.2-theme是分支目录,注意不可以进到分支子目录
   2. cd branch1.7.2-theme
   3. #前面的12972是开分支之前trunk的版本号,后面的12991是merge时trunk的版本号
   4. svn merge -r 12972:12991 svn://localhost/www/trunk

如果有冲突选择p(postpone),merge完了之后使用svn st|grep ^C查看冲突文件,然后比对修改冲突文件。解决冲突后再check in ,信息写上执行的merge操作。

   1. svn ci -m 'svn merge -r 12972:12991 svn://localhost/www/trunk'

3. 从分支merge到trunk。上线测试完毕,你很幸运,一切都如预期正常,这时就要将分支回归trunk,将trunk更新到最新。

   1. #先从trunk checkout一份新鲜的代码,然后cd到该版本目录下
   2. svn co svn://localhost/www/trunk
   3. cd trunk
   4. #12973是分支开始的版本号,13006是分支结束的版本号
   5. svn merge -r 12973:13006 svn://localhost/www/branches/branch1.7.2-theme

如步骤2一样解决冲突,解决冲突后再check in,信息写上执行的merge操作。

   1. svn ci -m "svn merge -r 12973:13006 svn://localhost/www/branches/branch1.7.2-theme"

相关的手册可以参阅svn文档,参见附件。

 

 

分享到:
评论

相关推荐

    Subversion配置和使用之分支与合并

    - **分支到主线**:开发完成,确认分支稳定后,将分支合并回主线。选择分支的起始版本和结束版本(通常是最新版本),作为合并的源,主线作为目标。 在合并前,可以使用"Unified diff"预览文件变化,"diff"查看变动...

    subversion

    ### Subversion (SVN) 在 Eclipse 中的应用及分支与合并详解 #### 一、Subversion 简介 Subversion,通常简称 SVN,是一种广泛使用的版本控制系统,它可以帮助团队管理和跟踪项目的开发历史。相比于早期的 CVS ...

    TortoiseSVN 分支与合并操作

    **TortoiseSVN 分支与合并操作** TortoiseSVN是一款强大的Subversion(SVN)客户端,专为Windows用户设计。它提供了一个图形化的界面,使得版本控制操作更加直观和便捷。在软件开发中,分支管理和合并是至关重要的...

    SVN 分支与合并详解

    下面是对SVN分支与合并的详细讲解。 1. SVN分支创建: 在SVN中,创建分支通常是为了进行长期的特性开发或隔离修复工作。你可以通过`svn copy`命令或者在图形界面工具中选择“创建分支”选项来实现。例如,要从...

    SVN使用的分支与合并

    SVN 分支与合并详解 SVN(Subversion)是一款开源的版本控制系统,广泛应用于软件开发、文档管理和其他需要版本控制的领域。在软件开发过程中,SVN 的分支与合并功能是非常重要的,下面我们将详细介绍 SVN 中的分支...

    版本分支、合并操作手册

    Subversion(简称SVN)是一种广泛使用的版本控制系统,它允许开发者创建、管理和合并代码的不同版本。本文将详细介绍SVN的版本分支和合并操作。 1. **版本分支** - **什么是版本分支**:版本分支是SVN提供的一种...

    SVN分支合并到主干 冲突处理

    本文将详细讲解如何进行SVN分支与主干的合并以及冲突处理,帮助开发者更好地理解和掌握这一核心操作。 ### SVN分支与主干的概念 在SVN中,"分支"和"主干"是两个重要的概念。主干(Trunk)通常代表项目的主要开发线...

    TortoiseSVN的分支与合并

    TortoiseSVN作为一款优秀的Subversion(SVN)客户端工具,提供了强大的功能支持,包括**分支(branching)**与**合并(merging)**,这两项特性对于处理复杂项目需求尤为重要。 - **分支**:分支是指在开发过程中创建的...

    SVN 拉分支及合并演示

    合并是将分支上的更改合并回主干或与其他分支合并的关键操作。SVN 提供了三种类型的合并: 1. **合并一个范围的版本** 这是最常见的合并方式,用于将分支上的所有或特定版本的更改合并到主干。在主干的工作副本上...

    SVN创建、合并与切换分支操作详解

    以下是对SVN创建、合并和切换分支操作的详细解释: ### SVN目录结构 1. **trunk**:这是主开发分支,通常存放项目的主线开发代码。日常开发工作在此分支上进行,确保最新的稳定代码在这里。 2. **branches**:分支...

    svn分支合并基本操作

    【SVN 分支合并基本操作】是软件开发中配置管理工具 Subversion (SVN) 的核心功能之一,它允许开发团队协同工作,各自在独立的分支上开发,然后将改动合并回主干,以保持代码的稳定性和一致性。以下是详细的操作步骤...

    SVN分支及合并使用文档.doc

    版本控制系统Subversion(SVN)是软件开发中不可或缺的工具,尤其在团队协作中,分支与合并是其核心功能。本文将深入解析SVN的分支创建、管理和合并过程,帮助开发者更好地理解和运用这一强大功能。 1. SVN分支的...

    SVN分支的合并和同步

    SVN分支的合并和同步 SVN(Subversion)是一种版本...* 不管是从trunk合并到分支还是最终从分支合并回trunk,在每次合并前最好先update,然后将本地的修改先全部commit,保护好现场,万一合并不理想随时都可以revert

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

    ### SVN在LabVIEW开发中的应用:分支与合并详解 #### SVN简介与LabVIEW集成 版本控制系统(Version Control System,简称VCS)是软件开发中不可或缺的一部分,它帮助开发者管理源代码的变化历史,使得团队协作更加...

    SubVersion的应用详解

    - 分支与合并:SubVersion支持分支和合并,便于开发多版本或并行开发。`svn copy`用于创建分支,`svn merge`用于合并。 - 版本标签:可以使用`svn copy`创建标签,表示特定版本的快照。 - 配合持续集成:...

    Version Control with Subversion For Subversion 1.3

    **分支与合并**是高级版本控制的重要概念: - **分支(Branch)**:创建分支可以独立于主干(trunk)进行开发,有利于维护代码的稳定性。 - **创建分支(Creating a Branch)**:通过复制操作创建一个新的分支路径...

    Subversion和TortoiseSVN的安装与配置

    1. 分支与合并:Subversion支持分支和合并功能,允许开发团队同时在主分支和独立的分支上工作,然后将分支的改动合并回主分支。 2. 解决冲突:当多人对同一文件进行更改时,可能会出现冲突。TortoiseSVN提供了解决...

Global site tag (gtag.js) - Google Analytics