来源:
http://www.blogjava.net/superliuwr/archive/2009/05/06/269214.html
创建分支
创建分支最快捷简便的方法就是直接对url操作,然后从新的url co出工作拷贝。在Subversion server上,用硬链接的方式处理不同version之间相同的文件。
svn copy http://svn.example.com/svnroot/comet/trunk http://svn.example.com/svnroot/comet/branches/2.8 –m “creating a private branch of comet”
合并一个分支上的修改到主干
Subversion的分支合并不是一个高风险的事情。其实Subversion并没有真正意义的分支概念,只有copy,但每个copy都会保留其所有的历史信息。像Clearcase那样的单独一个维度的version tag是不存在的,Subversion中的tag只是用来做快照而已,而且本质上也是copy,如果你提交新东西,那它就和branch是一样的。
简单地说,它一共只做了两件事。第一,比较两个版本的不同,这和你用svn diff得到的结果是一样的,只是svn diff会把changes打印出来。第二,把changes应用到你指定的工作拷贝上去,这表现为你的工作拷贝的本地修改,你可以在这个基础上再做修改,或是检查有没有问题,然后再提交。Subversion server并不关心你的提交是来自svn merge的修改,还是你自己改的代码。如果对结果不满意或者后悔了,一样可以用svn revert取消本地修改。
一个好的习惯是,提交的时候在注释中写清楚是从那个版本merge过来的。
Best practice 关于从某分支上merge changes到主干:
step1:找到前一次合并到主干时的version(341)
svn log –v –-stop-on-copy http://svn.example.com/svnroot/comet/branches/2.8
step2:切换到trunk的本地工作目录
step3:update到最新,获得当前HEAD的version(405)
svn update
我们只用比较分支的初始状态和最终状态,然后把这些changes merge到主干上去,而不是分支的初始状态和主干的最终状态。
step4:merge
svn merge –r 341:405 http://svn.example.com/svnroot/comet/branches/2.8
此处省略了目标工作拷贝,默认是当前目录的工作拷贝,也可以指定
svn merge –r 341:405 http://svn.example.com/svnroot/comet/branches/2.8 my_trunk_copy
step5:查看merge后的状态
svn status
step6:编译测试看有无问题
step7:提交
svn commit –m “Merged 2.8 changes r341:405 into the trunk.”
分享到:
相关推荐
**Subversion 分支与合并详解** Subversion(简称SVN)是一种版本控制系统,它用于管理对源代码等文件的修改历史,便于团队协作和代码管理。在这个系统中,分支和合并是两个至关重要的概念,它们在多用户协作环境中...
以下是对SVN创建、合并和切换分支操作的详细解释: ### SVN目录结构 1. **trunk**:这是主开发分支,通常存放项目的主线开发代码。日常开发工作在此分支上进行,确保最新的稳定代码在这里。 2. **branches**:分支...
### Subversion (SVN) 在 Eclipse ...此外,还深入探讨了 Subversion 中的分支和合并操作,这些是日常开发中经常需要用到的功能。通过本文的学习,开发者应该能够掌握 Subversion 的基本用法,并将其应用到实际项目中。
Subversion(SVN)是一种版本控制系统,用于管理代码和其他文件的变更历史。在软件开发过程中,分支和合并是常见的操作,它们允许团队成员并行工作...理解和熟练掌握分支与合并操作对于有效地使用Subversion至关重要。
综上所述,Subversion提供了一套完整的版本控制解决方案,不仅支持基础的操作,还具备高级的功能如分支和合并,适用于各种规模的项目管理和团队协作。通过掌握Subversion的核心概念和操作,开发者能够有效地管理项目...
本讲解将深入探讨SubVersion的基础概念、安装配置、基本操作以及在实际项目中的应用。 ### 1. SubVersion 基础 SubVersion的核心思想是版本化文件系统,它记录了文件和目录的历史版本,允许用户随时回滚到之前的...
4. **更好的分支和标签支持**:Subversion 1.6加强了对分支和标签的管理,使得创建、合并和管理分支变得更加便捷,鼓励敏捷开发中的频繁分支和合并。 5. **修订日志查询**:提供了强大的命令行工具`svn log`,可以...
有许多工具和插件与Subversion集成,如TortoiseSVN(Windows shell扩展),AnkhSVN(Visual Studio集成),以及Eclipse和IntelliJ IDEA的插件,它们提供了图形化的用户界面来操作Subversion。 7. **迁移和升级**:...
在Subversion中,分支是指从主线分离出来的另一个工作流,允许团队成员在一个隔离的环境中进行实验性或并行的开发。 ##### 4.2 使用分支 - **建立分支**:使用`svn copy`命令可以轻松地从主线上创建一个新的分支。...
通过以上内容,你可以全面了解和掌握Subversion的基本操作和高级特性,从而在实际项目中有效地进行版本控制和团队协作。无论是个人开发者还是大型团队,Subversion都能提供稳定、高效的代码版本管理服务。
1. 分支管理:Subversion支持分支策略,如特性分支、维护分支等,方便多线程开发。 2. 版本标签:标记特定版本,用于发布或里程碑。 3. 版本回溯:通过`svn log`查看历史记录,`svn diff`对比版本差异,`svn revert`...
通过深入学习《Version Control with Subversion for Subversion 1.6》,读者不仅能掌握Subversion的基本操作,还能了解到如何在实际项目中有效利用其特性,提升团队协作效率。这本书是任何使用或计划使用Subversion...
- Git:Git是分布式版本控制系统,相比Subversion,它提供了更快的速度、更强大的分支管理和离线工作能力,但学习曲线较陡峭。 - Mercurial:另一款分布式版本控制系统,与Git类似,但相对简单易用。 6. **安装和...
5. **执行Subversion操作**:在构建步骤中,选择"Checkout from Subversion",并指定要检出的分支或标签。 遵循正确的安装顺序和配置方法,Jenkins与Subversion的集成将能够顺利进行,实现自动化构建和测试,提高...
TortoiseSVN 1.8.6 是一个与Subversion集成的Windows shell界面客户端,使得用户可以方便地在Windows资源管理器中直接进行版本控制操作。 Subversion(简称svn)的核心特性包括: 1. **版本化文件和目录**:...
7. **分支与合并**:Subversion支持创建分支(branch)和合并(merge),允许开发人员在不影响主分支的情况下进行独立开发,然后将分支的改进安全地合并回去。 8. **URL路径**:Subversion使用URL来标识资源的位置...
TortoiseSVN是Subversion的一个图形化客户端工具,它作为Windows资源管理器的扩展,提供了直观的操作界面,使得用户可以轻松地执行版本控制操作,如导入(Import)、检出(Checkout)、更新(Update)、提交(Commit...
3. 合并:当分支上的工作完成后,可以通过合并操作将改动合并回主分支。Subversion提供了强大的冲突解决机制,帮助处理不同人对同一文件的不同修改。 在解压"subversion-1.14.2.tar.gz"后,你将得到一个名为...
3. **更好的分支和标签策略**:Subversion 1.5引入了“便宜的分支”(cheap copies)特性,创建分支和标签的操作变得更加快速且资源效率更高。这意味着用户可以更频繁地创建和管理分支,以支持敏捷开发方法。 4. **...