分支常用的两个场景:
发布新版本和给开发者一个实验的空间。
箴言:
谨记,当需要创建多个分支,特别分支是为了并行多个开发而不是发布版本时,往往意味事情有些不对了。
创建分支
# svn mkdir -m "Creating branches directory" http://192.168.1.200/svn/aladdin/branches
# svn copy -m "Creating release branch for 1.0" http://192.168.1.200/svn/aladdin/trunk http://192.168.1.200/svn/aladdin/branches/RB-1.0
签出一个发布分支
# svn co http://192.168.1.200/svn/aladdin/branches/RB-1.0 rb1.0
把工作拷贝转到发布分支
# cd aladdin
# svn switch http://192.168.1.200/svn/aladdin/branches/RB-1.0
switch命令还接受--revision参数,用来指定你想要转换哪个版本的分支。默认情况下,subversion转向到分支的最新版本(即HEAD版本)。
发布
# svn mkdir -m "Creating tags directory" http://192.168.1.200/svn/aladdin/tags
# svn copy -m "Tag release 1.0.0" http://192.168.1.200/svn/aladdin/branches/RB-1.0 http://192.168.1.200/svn/aladdin/tags/REL-1.0.0
发布小版本(标签)
在软件开发中,有一种情况经常出现。虽然这不是什么好现象,但我们经常不得不去面对。1.0.0版本已经发布几个月,团队修正了一些小Bug,把版本号升到了1.0.5。一个重要客户需要给1.0.0修正一个bug,但是他又不想等1.0.6出来在修正它。
# svn co http://192.168.1.200/svn/aladdin/tags/REL-1.0.0 client-fix
# cd client-fix
修改完后发布
# svn copy -m "Tagging client's 1.0.0 fix" client-fix http://192.168.1.200/svn/aladdin/tags/REL-1.0.0-clientfix
在发布分支中修正Bug
1、修改正简单的bug
# svn co http://192.168.1.200/svn/aladdin/branches/RB-1.0
# cd RB-1.0
修正bug后提交
# svn commit -m "Fix bug 3065"
验证bug已修正后,将改动合并的主干
。
# cd ../aladdin
# svn update
# svn merge -r37:38 http://192.168.1.200/svn/aladdin/branches/RB-1.0
# svn commit -m "Merge r38 (fix bug 3065)"
2、复杂的bug
# svn copy -m "create bugfix branch" http://192.168.1.200/svn/aladdin/branches/RB-1.0 http://192.168.1.200/svn/aladdin/branches/BUG-10252
用标签PRE-10252标记bug修正的开始
# svn copy -m "tag fixbug start" http://192.168.1.200/svn/aladdin/branches/BUG-10252 http://192.168.1.200/svn/aladdin/tags/PRE-10252
在分支BUG-10252中修改bug
# svn co http://192.168.1.200/svn/aladdin/branches/BUG-10252
通过大家多次的修改测试bug终于修正了,协同工作时多次提交BUG-10252中产生了很多版本号。因此,需要给修正bug的分支打上标签,从而可以识别出bug修正的结束。
# svn copy -m "tag fixbug finish" http://192.168.1.200/svn/aladdin/branches/BUG-10252 http://192.168.1.200/svn/aladdin/tags/POST-10252
将bug修正代码合并到发布分支
# svn co http://192.168.1.200/svn/aladdin/branches/RB-1.0
# cd RB-1.0
# svn update
# svn merge http://192.168.1.200/svn/aladdin/tags/PRE-10252 http://192.168.1.200/svn/aladdin/tags/POST-10252
测试工作拷贝中合并后代码,确认没问题后提交合并代码。
# svn commit -m "Merge fix for bug 10252"
分享到:
相关推荐
Subversion(SVN)是一种版本控制系统,用于管理代码和其他文件的变更历史。在软件开发过程中,分支和合并是常见的操作,它们允许团队成员并行工作...理解和熟练掌握分支与合并操作对于有效地使用Subversion至关重要。
相较于CVS,Subversion具有以下优势:更高的安全性,支持更复杂的目录操作,优化的二进制文件处理机制,更高效的网络传输速度,以及更加灵活的分支和标签管理。这些改进使得Subversion成为了现代软件开发中的首选...
**Subversion使用简介** Subversion(SVN)是一款开源的版本控制系统,用于管理软件项目中的文件和目录。它跟踪文件的更改,使团队成员可以协同工作,同时保持代码历史的一致性和可追溯性。在本简介中,我们将深入...
- **使用分支和标签**:对于大型项目来说,使用分支和标签管理不同的开发阶段是非常重要的。 - **权限控制**:合理分配用户的访问权限,避免不必要的安全风险。 - **定期清理无用分支**:长期不用的分支应该及时清理...
Subversion 使得分支和标签操作变得快速和方便。这些动作没理由耗时,所以我们不再让它们耗时。 天然的 client/server 结构 Subversion 从设计之初即采用 client/server 机构;因此避免了困扰 CVS 了许久的一些...
Subversion鼓励使用特定的目录结构来组织项目,如 trunk(主线)、branches(分支)和tags(标签)。trunk存放主要开发的代码,branches用于创建临时的开发分支,tags则用于标记重要的里程碑版本。 5. Subversion...
分支和标签 元数据属性 解决冲突 二进制文件和行结束标记转换 版本化的模块 认证 迁移CVS版本库到Subversion C. WebDAV和自动版本 什么是WebDAV ? 自动版本化 客户端交互性 独立的 WebDAV 应用程序 Microsoft ...
**版本控制:Subversion使用指南** Subversion,简称SVN,是一种开源的版本控制系统,用于管理文件和目录的变更历史,使得多人协作开发时能够高效地处理代码版本问题。Subversion提供了一种集中式的版本控制模型,...
4. 分支与标签:掌握如何创建、合并分支和标签,以支持并发开发。 5. 权限管理:学习如何设置 SVN 用户和组的访问权限。 **svnbook**: 《svnbook》是官方的 Subversion 参考手册,包含了全面的 SVN 使用教程和高级...
Subversion的分支和标签功能使得团队成员可以并行开发,同时保持主线代码的稳定性。分支允许开发者创建独立的工作线,而标签则用于创建特定修订版的快照,以记录项目的重要状态。书中详细解释了如何有效地管理和维护...
- **利用分支和标签**:合理地使用分支和标签可以帮助团队更好地组织代码,尤其是对于大型项目。 - **访问控制**:设置适当的权限,限制不同团队成员对仓库的不同部分的访问。 总之,Subversion作为一种成熟且功能...
备份的目标是确保所有提交的历史记录以及分支和标签都得以保留。 2. **备份策略** - **完整备份**:定期进行完整备份,保存仓库的所有内容,包括历史记录。 - **增量备份**:在完整备份的基础上,只备份自上次...
7. 分支和标签(Branching and Tagging):分支允许开发人员创建项目的一个独立分支来尝试新的特性或修复,而不影响主分支。标签是某个特定时间点项目的快照,通常用于标记发布版本。这两个功能极大地提高了团队协作...
4. **分支和标签**:Subversion的分支和标签功能允许团队创建项目的不同版本。分支用于平行开发,而标签则用于标记特定版本,通常是发布里程碑。 5. **冲突处理**:在多人同时编辑相同文件的情况下,Subversion会...
3. 分支和标签:分支允许开发者在不干扰主线开发的情况下进行实验性更改,标签则用于创建项目的重要里程碑快照。 二、svnadmin介绍 svnadmin是一个命令行工具,用于创建、备份、恢复和检查Subversion仓库。以下是...
4. **更好的分支和标签支持**:Subversion 1.6加强了对分支和标签的管理,使得创建、合并和管理分支变得更加便捷,鼓励敏捷开发中的频繁分支和合并。 5. **修订日志查询**:提供了强大的命令行工具`svn log`,可以...
Subversion支持分支和标签,用于隔离开发和测试环境。创建分支使用`svn copy`,合并使用`svn merge`。 - **创建分支**:`svn copy --create-branch-revs=no URL_of_trunk URL_of_branch` - **合并分支**:`svn ...
SubVersion(简称SVN)是一种广泛使用的版本控制系统,它能够跟踪文件和目录的变更,使多个用户协同工作在同一个项目上成为可能。本讲解将深入探讨SubVersion的基础概念、安装配置、基本操作以及在实际项目中的应用...