`

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的批处理文件

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

    Setup-Subversion-1.6.23.msi

    相较于RCS、CVS,SVN提供了更高效的版本控制功能,可以跟踪文件的修改历史,并提供回滚、分支、合并等操作。此外,SVN还采用了客户端/服务器体系,项目的各种版本都存储在服务器上,开发者可以在客户端进行独立的...

    Setup-Subversion-1.7.22.msi

    相较于RCS、CVS,SVN提供了更高效的版本控制功能,可以跟踪文件的修改历史,并提供回滚、分支、合并等操作。此外,SVN还采用了客户端/服务器体系,项目的各种版本都存储在服务器上,开发者可以在客户端进行独立的...

    subversion64_itmop.com.zip

    相较于RCS、CVS,SVN提供了更高效的版本控制功能,可以跟踪文件的修改历史,并提供回滚、分支、合并等操作。此外,SVN还采用了客户端/服务器体系,项目的各种版本都存储在服务器上,开发者可以在客户端进行独立的...

    SVN中的Branches分支以及Tags标签详解与应用举例

    例如,将 Branches/v1.0 下面的文件 test.txt 修改后签入到 SVN 服务器中,然后使用 Merge 功能将分支合并到主干中。 SVN 中的 Merge 功能可以帮助开发者将分支合并到主干中,以便实现新的功能或修复 bug。Merge ...

    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. 简介...

    VisualSVN-Server-2.5.13.msi

    相较于RCS、CVS,SVN提供了更高效的版本控制功能,可以跟踪文件的修改历史,并提供回滚、分支、合并等操作。此外,SVN还采用了客户端/服务器体系,项目的各种版本都存储在服务器上,开发者可以在客户端进行独立的...

    VisualSVN-Server-2.1.16.msi

    相较于RCS、CVS,SVN提供了更高效的版本控制功能,可以跟踪文件的修改历史,并提供回滚、分支、合并等操作。此外,SVN还采用了客户端/服务器体系,项目的各种版本都存储在服务器上,开发者可以在客户端进行独立的...

    VisualSVN-Server-3.4.0-x64.msi

    相较于RCS、CVS,SVN提供了更高效的版本控制功能,可以跟踪文件的修改历史,并提供回滚、分支、合并等操作。此外,SVN还采用了客户端/服务器体系,项目的各种版本都存储在服务器上,开发者可以在客户端进行独立的...

Global site tag (gtag.js) - Google Analytics