`

SVN merge 三种方式

    博客分类:
  • svn
阅读更多

摘自:http://chunanyong.iteye.com/blog/697255

 

1、Merge a range of revisions

2、Reintegrate a branch

3、Merge two different trees

 

合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里。如果当前工作副本是主干,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主干上的改动,并且一定要注意,合并的起始位置URL一定要和当前的工作副本的URL是相同的。

 

一、合并一个范围的版本

    此类型应用最为广泛,主要是把分支中的修改合并到主干上来。在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本。

合并的源URL填写的是要合并的分支的URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的所有演变。如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。

 

二、复兴合并

    复兴合并可以理解为是第一种合并类型的一种特例,在复兴合并中,主干可以理解为是自从开创分支之后没有任何修改,而分支是经过修改的,而且合并中分支是没有版本选择的。经过复兴合并,分支中所有的修改都会合并到主干中,合并的结果将使得分支和主干一模一样,从而可以删除分支。

 

三、合并两个不同的树

    此类型与前两种类型不同,第一种类型可以选择分支合并的版本,主干不能选择版本;第二种类型是主干和分支都不能选择合并的版本;而这种类型则是无论是主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并。合并的时候以选择的分支版本为主,如果选择的主干版本与分支版本有不同的地方,合并时主干部分将被放弃。

起始URL:选择主干目录的URL(应当和当前工作副本的URL一致,这个是所谓的合并点)

结束URL:选择要合并的分支的URL。

起始和结束的版本:一般起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。

 

实例:

主干A在95版本的时候创建分支B,此时两棵树都是95版本

1、我在分支B上增加文件test.txt,提交。此时版本库升级到了96版本。

2、我在A上选择合并类型1,合并分支最新版本,结果是把test.txt加入A

3、我在A上选择合并类型2,合并分支最新版本,结果同上;

4、我在A上选择合并类型3,合并分支最新版本,结果同上;

5、我在A上增加文件test2.txt,提交,此时版本库升级到了97版本;

6、我在A上选择合并类型1,合并分支最新版本,结果是把test.txt加入A;

7、我在A上选择合并类型2,合并分支最新版本,结果是把test.txt加入A;

8、我在A上选择合并类型3,主干选择当前97版本,合并分支最新版本,结果是把test.txt加入A,把test2.txt从A删除。

9、我在A上选择合并类型3,主干97以前的版本,合并分支最新版本,结果是把test.txt加入A,而A中保留着test2.txt。

 

将分支合并到主干上,首先需要在主干的工作副本下进行,合并的范围是从主干的上次合并的版本开始到分支上最新的版本结束,如果是第一次合并,则从主干创建分支的版本开始,所以每次合并要做好说明,在日志中体现,不然忘记了下次再合并就有点麻烦。其实,应当尽量避免一个分支合并多次,分支的作用一般为了解决bug,一旦bug对应结束了,分支的使命就结束了,以后再出现其他的问题,应当重新建立分支,这样就不会出现多次合并的问题了。

分享到:
评论

相关推荐

    SVNMerge源代码SVNMerge源代码

    SVNMerge是SVN的一个辅助工具,主要用于合并分支或解决代码冲突。在这个特定的上下文中,"SVNMerge源代码"指的是该工具的原始编程语言代码,可能是用C、C++或者Python等语言编写的,它允许开发者深入理解工具的工作...

    svn merge简单操作

    ### SVN Merge 操作详解 #### 一、引言 Subversion (SVN) 是一个广泛使用的版本控制系统,用于管理软件开发中的源代码变更历史。在团队合作中,合并分支(merge)是一项非常重要的操作,它使得开发人员能够将某个...

    svn 合并、冲突及常用功能详解

    `svn merge`是Subversion(简称svn)中的关键命令,用于将一个分支或标记的修改合并到另一个分支。在版本控制系统中,合并是协同开发的核心操作,它允许团队成员同步各自的工作,避免代码冲突。以下是一些关于`svn ...

    关于SVN下不同分支代码的Merge的透彻理解.zip

    多分支开发,Merge是一个绕不过的话题,不管是Git还是SVN,公司用的是SVN,之前对于SVN的Merge没有很好的研究,出了些状况,这个问题不解决,顺畅地进行多分支开发就是海市蜃楼,下定决心把这块给完全搞透,在百度上...

    SVN三种工具包

    它的图标集成在文件资源管理器中,提供了图形化的操作方式,使得用户能够方便地进行版本控制操作,如 checkout(检出)、commit(提交)、update(更新)、merge(合并)等。TortoiseSVN的64位版本适用于处理大型...

    SVN解决冲突(合并别人的修改)

    SVN(Subversion)是一个广泛使用的版本控制系统,它帮助开发者管理和维护不同版本的文件和代码库。在多人协同开发的项目中,版本控制显得尤为重要,但同时也可能会出现代码合并冲突的情况。当两个开发者对同一文件...

    svn 使用(VersionControlWithSubversion)

    ### Subversion (SVN) 使用指南与最佳实践 #### 目录结构与组织方式 在进行版本控制时,良好的目录结构对于项目的维护至...同时,借助于如 `svnmerge.py` 这样的工具,可以进一步简化合并流程,提高团队的工作效率。

    SVN trunk, branch, tag merge 等的应用

    SVN(Subversion)是一种广泛使用的版本控制系统,它的核心概念包括trunk、branch和tag,这些都是进行协同开发和代码管理的重要元素。下面将详细解释这些概念以及它们在实际项目中的应用。 1. **Trunk**:Trunk通常...

    SVN安装软件三件套.zip

    SVN(Subversion)是一种广泛使用的版本控制系统,用于管理文件和目录的历史版本,便于团队协作开发。本压缩包“SVN安装软件三件套.zip”包含三款关键工具,它们分别是: 1. TortoiseSVN-1.14.1.29085-x64-svn-...

    svn在linux下的使用(svn命令)

    SVN(Subversion)是一种版本控制系统,能够帮助开发者管理代码的变更和协作。SVN 命令是 SVN 的核心组件,提供了多种功能来管理代码库。下面我们将详细介绍 SVN 在 Linux 下的使用。 Checkout svn checkout 命令...

    svn命令大全.docx

    SVN(Subversion)是一种版本控制系统,主要用于管理软件开发过程中的代码修改和更新。下面是 Linux 下 SVN 命令大全介绍: 一、checkout 命令 checkout 命令用于将文件从服务器 checkout 到本地目录。语法:svn ...

    svn command,svn常用指令

    Subversion(简称SVN)是一种开源的版本控制系统,用于管理源代码或文件。它能够帮助开发团队追踪每个文件和目录的历史更改,并且可以回溯到任何指定的时间点。 #### 二、SVN服务器启动与创建仓库 ##### 1. 启动SVN...

    svn使用方式

    SVN,全称为Subversion,是一种版本控制系统,用于管理和跟踪文件和目录的变更。它在软件开发中扮演着至关重要的角色,特别是在团队协作中,帮助开发者们同步代码、记录历史版本以及解决冲突。以下是关于“svn使用...

    svn linux下命令详解

    该命令的基本语法为:svn merge -r <版本号1>:<版本号2> <文件名>。例如:svn merge -r 200:205 test.php。 12. SVN 帮助 svn help 命令用于显示 SVN 的帮助信息。该命令的基本语法为:svn help <命令>。例如:svn...

    SVN usage on Linux

    svn merge [-r m:n] [源分支URL] 本地文件或目录路径 ``` 例如,将版本1到版本10之间的差异合并到当前文件: ```bash svn merge -r 1:10 main.c ``` 或者将整个分支合并到当前本地文件: ```bash svn merge ...

    svn原理剖析

    独立服务器模式提供了一种简单快速的部署方式,适用于小型团队或者内部项目。而基于Apache服务器的模式则提供了更高级别的安全性和灵活性,适合大型组织或公开发布的项目使用。 #### SVN的基本概念与操作 - **代码...

    Araxis Merge

    3. **版本控制集成**:Araxis Merge与常见的版本控制系统如Git、SVN、Perforce等有良好的集成。可以直接在Merge界面中执行版本控制操作,如提交、拉取、合并等,大大提升了开发效率。 4. **目录比较**:除了单个...

    使用SVN进行版本控制 使用SVN1.2

    #### 三、SVN常用命令详解 1. **svn checkout (co)** - **作用**:检出仓库中的文件或目录到本地工作副本。 - **示例**:`svn checkout http://example.com/repo/project` 2. **svn commit (ci)** - **作用**...

    SVN演示 SVN演示 SVN演示 SVN演示 SVN演示 SVN演示

    【版本控制与SVN简介】 ...通过上述内容,我们可以理解SVN作为版本控制系统的核心价值,以及TortoiseSVN在Windows环境下的便捷使用方式。掌握这些知识,可以显著提升团队的协作效率和项目管理能力。

Global site tag (gtag.js) - Google Analytics