[转载地址:http://blog.csdn.net/zhouyong0/article/details/7968667,原文地址不清楚]
下面我将step by step地演示如何一次完整的branching和merging,包括创建分支、分支开发、分支和主线同步,分支合并到主线的全过程,甚至包括如何在本地创建一个测试用的repository。
首先需要安装TortoiseSVN,我安装的版本是:TortoiseSVN 1.6.15, Build 21041 - 32 Bit , 2011/03/23 18:00:27
1、本地Repository的创建
repository的创建很简单,假设我要在D:\TortoiseSVN\TestRepository目录中创建repository,只需右键TestRepository目录,依次选择"TortoiseSVN" -> "Create repository here"便完成了repository的创建。
2、Check out
假设要check out到D:\TortoiseSVN\TestSVN,同样很简单,在D:\TortoiseSVN目录下创建TestSVN目录,然后在该目录上右键,选择"SVN Check out...",在弹出的窗口中的"URL of repository"中填入"file:///D:/TortoiseSVN/TestRepository",其他默认即可,最后点击ok。
3、trunk创建新项目MyProject
相当简单就不赘述了,只列出本次操作所作出的修改:
4、创建branch
在/trunk/MyProject目录上右键,依次选择"TortoiseSVN" -> "Branch/tag...",在弹出窗口的"To URL"中填入分支的地址,在这里目标revision选择HEAD revision,如下图所示,添加log后点击ok分支便建立了。这个操作速度非常快,新建的branch在repository中其实只是一个指向trunk某个revision的软连接而已,并没有真的复制文件。
5、Check out分支
右键TestSVN目录选择"TortoiseSVN Update"即可将刚刚建立的分支下载回本地。进入/branches/MyProject目录下你会发现其文件结构和/trunk/MyProject一模一样。
6、branch提交一个新文件
7、trunk紧接着提交一个修改
8、branch再次提交一个修改
9、将trunk中的修改同步到branch
6-8演示的是branch和trunk在独立、并行地开发。为了防止在“错误”的道路上越走越远,现在branch意识到是时候和trunk来一次同步了(将trunk合并到branch)。
首先,在本地trunk中先update一下,有冲突的解决冲突,保证trunk和repository已经完全同步,然后在/branches/MyProject上右键,依次选择"TortoiseSVN" -> “Merge...”,在弹出的窗口中选择第一项"Merge a range of revision",这个类型的Merge已经介绍得很清楚,适用于将某个分支或主线上提交的多个revision间的变化合并到另外一个分支上。
点击next后,出现如下窗口:
由于是要从trunk合并到branch,理所当然这里的"URL to merge from"应该填trunk的路径,"Revision range to merge"很好理解,就是你要将trunk的哪些revision所对应的变化合并到branch中,可以是某一连串的revision,比如4-7,15-HEAD,也可以是某个单独的revision号。由于在r4中,trunk修改了Person.java中的talk()方法,所以这里的revision只需填4即可。点击next后出现下图:
在这里只需保留默认设置即可。在点击Merge按钮前你可以先Test merge一把,看成功与否,以及merge的详细信息。点击Merge按钮后trunk所做的修改将同步到branch中。
10、提交合并后的branch
至此,branch已经完全和trunk同步,branch和trunk的代码相处很融洽,没有任何冲突,如果branch已经开发结束,那是时候将branch合并回trunk了,当然,如果branch还要继续开发,那你将不断地重复6-10这几个步骤。
11、将branch合并回trunk
在/trunk/MyProject上右键(注意是在主线的目录上右键),依次选择"TortoiseSVN" -> "Merge...",在弹出的窗口中,Merge type选择第二项"Reintegrate a branch",这种类型的合并适合在分支开发结束后将所有的改动合并回主线。
点击next后出现如下窗口:
在这里,"From URL"选择/branches/MyProject,无需选择revision号,Reintegrate会将branch上所有修改合并到trunk。后面的步骤和上文第9步中的一样,不再啰嗦了。如无意外,branch将成功合并到trunk,你需要做的只是将合并后的trunk赶紧commit!
12、提交合并后的trunk
合并后的项目上右键,Temp -> Commit。
13、删除branch
如果你认为你新加的功能已经开发完成了,你可以删除你的分支!
14、查看log信息
到这里,我已经给你演示完了整个过程,不过最后我们还是看看所有的log信息吧,通过log能发现我们干的所有事情:
r1-r7正是我上文在干的事情,从Message中你能发现我对trunk和branch都干了什么,另外,在Log Messages窗口的左下角勾选了"Include merged revisions"你还能看到额外的Merge information:
图中灰色的是和merge相关的log,共发生了两次merge,第一次是在r6,在r6中,branch合并了trunk在r4时提交的变化;第二次是在r7,在r7中,trunk合并了branch从r2到r6的所有变化。
相关推荐
本文将详细讲解如何进行SVN分支与主干的合并以及冲突处理,帮助开发者更好地理解和掌握这一核心操作。 ### SVN分支与主干的概念 在SVN中,"分支"和"主干"是两个重要的概念。主干(Trunk)通常代表项目的主要开发线...
本文将详细解释如何执行 SVN 分支合并,特别是如何将开发分支合并到主干分支。 首先,创建主干分支是合并过程的起点。在提供的示例中,开发人员使用 `svn cp` 命令从主干创建了一个新的分支。这一步骤确保了开发...
SVN分支的合并和同步 SVN(Subversion)是一种版本...* 不管是从trunk合并到分支还是最终从分支合并回trunk,在每次合并前最好先update,然后将本地的修改先全部commit,保护好现场,万一合并不理想随时都可以revert
"svn分支管理详解" svn分支管理是版本控制系统中的一种常用技术,用于管理项目的不同版本和变更。...通过创建分支、分支开发和分支合并到主干,我们可以更好地管理项目的变更和版本,提高开发效率和质量。
例如,如果你想将分支合并到主干,则应该在主干目录下使用Merge功能。 3. **理解From和To的意义**:在Merge操作中,`from` 和 `to` 容易引起混淆。实际上,`from` 可以理解为原始版本,而 `to` 则是最终状态。在...
合并分支则是在完成开发后将这些变更合并回主干;切换分支则可以让开发者轻松地在不同的版本间进行切换,以测试不同的功能或版本。在整个过程中,确保工作区是最新的状态是非常重要的,这有助于避免合并冲突和其他...
SVN 中的 Merge 功能可以帮助开发者将分支合并到主干中,以便实现新的功能或修复 bug。Merge 功能可以帮助开发者更好地管理代码的版本,并且可以避免编译错误等。 在 SVN 中,Branches 和 Tags 都可以帮助开发者更...
首先,合并操作需要确定合并的方向,即是从分支(branch)合并到主干(trunk),还是从主干合并到分支。确定方向后,需要获取合并对象的版本历史,以便了解希望合并的内容。通常,合并发生在两个修订版本(revision...
当分支上的开发工作完成后,需要将其合并回主干或另一个分支。Subversion提供了`svn merge`命令来实现这一操作。在合并之前,最好先更新本地工作副本以确保拥有最新的代码。 ```bash # 更新主干 svn update ...
Subversion 1.5 版本引入了对合并流程的改进,使得从主干合并到分支或从分支合并回主干变得更加简单: - **从主干合并到分支**: ```shell $ cd BRANCH_WORKING_COPY $ svn merge URL_TO_TRUNK ``` - **从分支...
这通常是主干与分支之间的双向过程。 ##### 主干合分支 当分支完成开发并通过测试后,需要将其合并回主干。具体步骤如下: 1. **切换到主干**:首先确保你位于主干目录下。 2. **执行合并命令**:使用SVN客户端...
- **代码基线与分支**:在SVN中,通常存在一个主干(Trunk),这是项目的主要开发路径。此外,还会根据不同的功能需求创建多个分支(Branches),这些分支用于实现特定的功能开发,一旦功能开发完成并通过测试验证后...
在软件开发过程中,版本控制系统是不可或缺的工具,其中...在实际操作中,团队可能还有其他的合并策略,如使用feature branch或者使用SVN的merge指令等。无论采用哪种方法,关键在于确保代码的一致性和可维护性。
2. 完成一定阶段的开发后,将分支合并到主干,形成稳定版本。 3. 从新主干上创建分支,继续开发,循环这个过程直至项目结束。 **分支合并流程** 例如,xb和lzj两人合作开发`onlytest`项目。他们分别在主干上创建...
5. **分支(Branch)**:在SVN中,分支允许你从主干(Trunk)创建一个独立的开发线,这样可以进行风险较高的开发而不会影响主线。 6. **合并(Merge)**:分支完成后,你需要将分支上的更改合并回主干,以便所有...
本文将详细介绍如何通过开源工具Subversion(SVN)与构建工具Ant结合使用来实现有效的代码分支、标记及合并操作,以支持并行开发。 #### 二、基础知识 ##### 1. SVN简介 Subversion(SVN)是一款非常流行的版本...
- 分支(Branch):创建项目的一个独立副本,用于开发新功能或修复,不干扰主干。 - 合并(Merge):将分支的更改合并回主干或其他分支,保持代码同步。 5. **SVN备份与恢复** - 备份:定期导出版本库到外部文件...