原文地址:http://blog.csdn.net/kennylee26/article/details/4494704
分支用来维护独立的开发支线,在一些阶段,你可能需要将分支上的修改合并到最新版本,或者将最新版本的修改合并到分支。
此操作十分重要,在团队开发中,如果你是SVN 的维护者此环节可以说是必不可少,因为团队开发中如果使用了分支,那样合并分支到主干、或者分支合并分支的操作是必须的。
如果不使用分支,直接在主干上修改的话,主干版本可能会变得十分混乱。维护难度大大加大。
下面以使用TortoiseSVN为例,任何SVN的客户端工具其实都大同小异。
一、分支的合并
合并
点击菜单上的合并按钮,出现如图窗口,一般的使用第三个选项即可。如图所视。
点击下一步
选择合并URL和版本
注意填写起始和结束的URL 及版本,尤其重要。这一步将影响你合并后所得的版本。
简单的说,“结束的URL 和版本”是此次操作的最终标准。而“起始URL 和版本”一般情况下必须是该分支创建的起始版本。
比方说,这次分支是从主干100 上创建的,而分支的起始版本是101 。最终分支完成后的版本是105 。
简单情况下,主干上的版本没有被更新,依然是100 。如果想把分支功能合并到主干上的话,我们可以在主干100 的工作副本中点击合并,然后“起始URL 和版本”填写主干的URL ,版本100( 或者HEAD ,因为最新版本也是100) ,然后“结束的URL 和版本”填写分支的URL 和版本105( 也可以是HEAD) 即可。
操作完成后,此次合并效果会在工作副本上呈现,如果有问题请使用还原,撤销此次修改操作。
注:其他SVN 的插件大同小异。
二、多分支合并
参考单分支的分支操作,而多分支的情况简单来说有两种:
分支中的起始版本一致
比方说现在有两个分支,分支A 和分支B 。他们分别从主干T 创建分支。
主干T 版本100 ,分支A 的版本101 ,分支B 的版本号102 。
当分支A 和分支B 都各自完成开发,并且提交到SVN 上后。A 的版本号为110 ,而B 的版本号为115 。
分支起始版本一致
此时必须两步操作,并且操作在主干T 的工作副本内执行:
1) 主干T 合并分支A
起始URL 和版本
主干T 的URL 、版本100
结束的URL 和版本
分支A 的URL 、版本110
2) 合并分支A 后再继续合并分支B
起始URL 和版本
主干T 的URL 、版本100
结束的URL 和版本
分支B 的URL 、版本115
注意:完成第一步的时候不必提交。
分支中的起始版本不一致
比方说现在有两个分支,分支A 和分支B 。分支A 是从主干T 版本100 上创建,分支A 版本101 。创建分支A 后,主干上又做了其他修改,并且更新成版本102 。
然后主干T 版本102 的基础上创建分支B ,分支B 版本号为103 。
两个分支各自开发,最终分支A 版本号为110 ,而分支B 的版本号为120 。
分支起始版本不一致
此时合并操作应该为三步,多的一步其实就是把起始版本统一:
1) 分支A 更新主干100-101 的更新,在分支A 的工作副本内执行。
起始URL 和版本
主干T 的URL 、版本100
结束的URL 和版本
主干T 的URL 、版本101
无误后提交修改。分支A 此时最终版本修改为121 。
2) 主干T 合并分支A
起始URL 和版本
主干T 的URL 、版本102
结束的URL 和版本
分支A 的URL 、版本121
3) 主干T 合并分支B
起始URL 和版本
主干T 的URL 、版本102
结束的URL 和版本
分支B 的URL 、版本120
看起来比较繁琐,其实最终目的还是把起始的版本统一,然后再把主干和分支上的差异修改添加到主干之上。
分享到:
相关推荐
**svn合并** `svn merge`是Subversion(简称svn)中的关键命令,用于将一个分支或标记的修改合并到另一个分支。在版本控制系统中,合并是协同开发的核心操作,它允许团队成员同步各自的工作,避免代码冲突。以下是...
SVNMerge是SVN的一个辅助工具,主要用于合并分支或解决代码冲突。在这个特定的上下文中,"SVNMerge源代码"指的是该工具的原始编程语言代码,可能是用C、C++或者Python等语言编写的,它允许开发者深入理解工具的工作...
- **执行Merge**:执行Merge操作后,`branches/examples1` 的更改就会被合并到 `trunk/examples1`,最后通过 `svn commit` 将合并结果提交到服务器。 ```bash # 执行合并操作 svn merge ...
SVN合并操作是版本控制中的一个核心功能,允许开发者将分支上的改动合并回主干(trunk)或在分支之间进行改动的同步。本文档将详细介绍如何在SVN中执行合并操作以及解决可能出现的合并冲突。 首先,合并操作需要...
接下来,使用 `svn merge` 命令将开发分支的改动合并到主干分支副本。这里的 `-r` 参数指定了要合并的版本范围,从 r131781 到最新的 HEAD 版本: ```bash svn merge --r131781:HEAD ...
SVN(Subversion)是一个广泛使用的版本控制系统,它帮助开发者管理和维护不同版本的文件和代码库。在多人协同开发的项目中,版本控制显得尤为重要,但同时也可能会出现代码合并冲突的情况。当两个开发者对同一文件...
### SVN合并 合并分支到主干是将分支上的改动整合到主干的过程。这个过程可能涉及多个提交,所以需要确保每次合并都是基于最新的主干代码。合并命令如下: ```shell svn merge ...
3. 点击 Finish,完成,可以看到项目里出现了分支 merge_v1.0 分支中第 9026 次提交的东西最后提交即可,分支合并主干顺利完成。 四、冲突解决 在合并操作中,可能会出现冲突问题。冲突问题是指在合并过程中,出现...
#### 一、SVN合并机制简介 SVN的合并操作主要涉及到两个或多个版本间的差异比较和整合。当一个文件或目录在两个不同的分支中都有改动时,SVN会尝试自动合并这些改动。然而,当合并过程遇到无法自动解决的冲突时,即...
SVN分支的意义: 简单说,分支就是用于区分开发版本与当前发布版本的。 1、 主干负责新功能的开发 2.、分支负责修正当前发布版本的bug(对于可以放入下个发布版本的改进性bug可以直接在主干上开发) 3.、...
4. SVN合并: 当分支工作完成,需要将改动合并回主线。合并通常包括两个步骤:首先,更新主线工作副本以获取最新的代码;然后,将分支的改动合并到主线。 ``` # 更新主线工作副本 svn checkout ...
- 合并后,主干中的文件状态会改变,使用 SVN Commit 提交合并后的更改。 这个过程确保了团队成员可以同时工作,而不会互相干扰,通过合并将每个人的贡献整合到一起,形成一个统一的项目版本。在合并过程中,可以...
在 SVN 中,我们可以使用 merge 命令来进行合并。例如,我们可以使用以下命令来将 Facebook3 分支下的更改合并到 trunk 版本中: merge svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook@HEAD svn://192....
6. **分支与合并**: SVN支持分支和合并操作,通过`svn copy`创建分支,然后在分支上开发,完成后再用`svn merge`合并回主分支。 **团队项目整合开发** 1. **版本管理**: SVN使得团队成员可以各自独立工作,通过...
为了更好地管理合并过程,可以使用 `svnmerge.py` 工具。这是一个用 Python 编写的 Subversion 插件,可以自动追踪合并记录。 - 安装 `svnmerge.py` 工具: ```shell $ sudo aptitude install subversion-tools ...
使用 SVN 的 merge 命令,可以将分支上的修改合并回主分支或其他分支。在合并前应先更新本地工作目录,并确保没有冲突。 **7. 版本间的比较** 通过 TortoiseSVN 的 "Compare" 功能,可以直观地查看不同修订号之间...
#### 三、SVN合并方法 SVN (Subversion) 是一种流行的版本控制系统,用于管理软件开发过程中的源代码。SVN支持多种合并策略,其中最常用的是基于修订号的合并和基于分支的合并。 1. **基于修订号的合并**: - ...
除了上述基本操作,SVN 还支持其他功能,如更新(Update,获取他人最新更改)、合并(Merge,解决冲突)、回滚(Revert,撤销本地更改)、标签(Tag,创建项目快照)和分支(Branch,创建可独立开发的副本)。...
9. **分支与合并**:使用`svn copy`创建分支,使用`svn merge`将分支合并回主干。 #### 五、SVN的优势 1. **简单易用**:SVN具有直观的命令行界面,易于学习和上手。 2. **稳定性高**:SVN经过多年的实践验证,...