`

Subversion分支与合并

阅读更多

 

尽管svn没有作强制要求,但是一般svn版本库目录建议创建trunk、branches和tags三个目录。在实际操作时,trunk主干版本要时刻保持干净,即随时可以基于这个版本进行修改并将应用部署上线。branches是分支目录,存放并行开发的项目代码,因为分支是主干的廉价拷贝(相当只是提交了一次主干版本,增加了一个版本号,并没有取出版本库作镜像拷贝),所以你可以放心建立很多分支版本。不过 Subversion不支持跨版本库的拷贝,当使用svn copy时你只能在同一个版本库内操作。tags目录存放trunk某个的快照,比如说release-1.0即trunk处于1.0版本时的快照。

使用svn来作团队的代码管理,那么分支和合并将是非常常用的操作。下面是一个简单的示例。

1. 创建分支。这里假设你要负责一个叫theme的项目,分支号1.7.2。

   1. #这里的localhost是svn服务器地址
   2. svn copy -m "1.7.2 - theme" svn://localhost/www/trunk svn://localhost/www/branches/branch1.7.2-theme
   3. svn co svn://localhost/www/branches/branch1.7.2-theme

2. 从trunk中merge到分支。忙了一个星期终于开发完了,但是开发期间trunk版本有过改动,部署上线前你需要合并trunk的代码。

   1. #branch1.7.2-theme是分支目录,注意不可以进到分支子目录
   2. cd branch1.7.2-theme
   3. #前面的12972是开分支之前trunk的版本号,后面的12991是merge时trunk的版本号
   4. svn merge -r 12972:12991 svn://localhost/www/trunk

如果有冲突选择p(postpone),merge完了之后使用svn st|grep ^C查看冲突文件,然后比对修改冲突文件。解决冲突后再check in ,信息写上执行的merge操作。

   1. svn ci -m 'svn merge -r 12972:12991 svn://localhost/www/trunk'

3. 从分支merge到trunk。上线测试完毕,你很幸运,一切都如预期正常,这时就要将分支回归trunk,将trunk更新到最新。

   1. #先从trunk checkout一份新鲜的代码,然后cd到该版本目录下
   2. svn co svn://localhost/www/trunk
   3. cd trunk
   4. #12973是分支开始的版本号,13006是分支结束的版本号
   5. svn merge -r 12973:13006 svn://localhost/www/branches/branch1.7.2-theme

如步骤2一样解决冲突,解决冲突后再check in,信息写上执行的merge操作。

   1. svn ci -m "svn merge -r 12973:13006 svn://localhost/www/branches/branch1.7.2-theme"

相关的手册可以参阅svn文档,参见附件。

 

 

分享到:
评论

相关推荐

    Subversion配置和使用之分支与合并

    Subversion SVN 配置 使用 分支 合并

    使用Subversion进行版本控制(针对 Subversion 1.4)

    4. 分支与合并 什么是分支? 使用分支 创建分支 在分支上工作 分支背后的关键概念 在分支间复制修改 复制特定的修改 合并背后的关键概念 合并的最佳实践 手工跟踪合并 预览合并 合并冲突 关注还是忽视祖先 合并和...

    Apache-Subversion-1.14.2

    分支和合并:SVN 支持创建分支,让团队成员在独立的工作副本上进行开发,并在完成后将更改合并到主干代码中。这种分支和合并的功能使得团队可以并行开发不同功能或修复bug,而不会相互干扰。 文件和目录管理:SVN ...

    SVN分支/合并原理及最佳实践

    使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响,最主要的原因是,自己对分支的目的和合并的...

    svn拉分支合并文档

    eclipse 整理svn分支 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统

    关于配置管理工具subversion的批处理文件

    通过命令行的方式完成对配置库的初始化、分支、合并。

    Subversion的配置和使用说明(一)

    服务器端配置说明服务器软件下载服务器的安装建立版本库(Repository)配置用户和权限运行独立服务器客户端使用说明客户端下载客户端的安装初始化导入基本客户端操作分支与合并服务器端配置说明1,软件下载*下载...

    Git Community Book(中文版)

    分支与合并@基础 查看历史 -Git日志 比较提交 - Git Diff 分布式的工作流程 Git标签 4. 中级技能 忽略某些文件 rebase 交互式rebase 交互式添加 储藏 Git树名 追踪分支 使用Git Grep进行搜索 Git的撤消操作 - ...

    svn学习,svn学习,svn相关信息

    学习svn 目录 一、版本管理基础 ...四、分支与合并 1.版本库的概念 2.什么是分支? 3.使用分支 五、进阶 1.以后台服务方式启动 2.从CVS转换到SVN 六、附录 A. 参考资源 B. 相关资源

    subversion-TortoiseSVN-使用手册(CHM+HTML,中英完整版)

    2.2.3. 拷贝-修改-合并 方案 2.2.4. Subversion做了什么? 2.3. Subversion实战 2.3.1. 工作拷贝 2.3.2. 修订版本 2.3.3. 工作拷贝怎样追踪版本库 2.4. 摘要 3. 配置服务器 3.1. 以Apache为基础的服务器 3.1.1. 简介...

    SVN使用手册中文版快速入门

    4. 分支与合并 什么是分支? 使用分支 创建分支 在分支上工作 分支背后的关键概念 在分支间拷贝修改 拷贝特定的修改 合并背后的关键概念 合并的最佳实践 手工追踪合并 预览合并 合并冲突 关注还是忽视祖先 常见用例 ...

    SVN安装配置及使用说明

    《第三章 Subversion版本库备份手册》与《4.5 TortoiseSVN的基线分支合并》取自网络,由于时间太长了,具体出处我自己也不记得了。。。这里感谢二位前辈。 第一章 Subversion服务器及客户端软件安装 1 1.1 系统...

    SVN使用手册中文版.chm

    4. 分支与合并 什么是分支? 使用分支 创建分支 在分支上工作 分支背后的关键概念 在分支间拷贝修改 拷贝特定的修改 合并背后的关键概念 合并的最佳实践 手工追踪合并 预览合并 合并冲突 关注还是忽视祖先 常见用例 ...

    Java进阶版本管理工具Git全套视频教程

    7.5 分支的合并与删除 7.5.1合并 7.5.2删除分支 8.tag 标签 8.1 标签的概念 8.2 标签的创建(tag) 8.3 标签的切换与删除 9. 远程仓库 9.0 局域网仓库 9.0.1本地相对路径,多个文件夹之间共享代码 9.0.2开启局域网共享...

    TortoiseSVN-1.6.7.18415-win32(版本控制 含简体中文语言包)

    SVN,是SubVersion的简称。它是CVS的替代产物,同时也支持 SSL。...SVN作为跨平台多人协作的版本的管理方法,在多个团队成员管理同一段代码的过程中显得尤为重要,使用SVN可以方便的进行分支、合并,记录下所有的版本。

    使用android studio 版本合并遇到的问题

     这边我工作用的SVN版本控制,studio自带的版本合并工具在subversion的integrate Directory里,如左图所示,使用project形式,在项目顶层右键,开始合并版本。    弹出的对话框内,上面是主干版本地址,下面是...

    TortoiseSVN中Branching和Merging实践

    使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响,最主要的原因是,自己对分支的目的和合并的...

Global site tag (gtag.js) - Google Analytics