平时在工作中使用 SVN 只是限于 commit,update 这样的操作,至多再 reslove 解决一下冲突,没有用过分支管理。开发过程中一般都是一个功能开发完成之后整体进行提交,而最近在项目中有一个比较大并且开发周期比较长的功能,所以在功能没有完成之前不方便进行提交,所以想到了使用分支管理,边学边用(所以工作最好一定要选开发流程规范的公司)。

/*环境:
* 服务器操作系统 - CentOS 6.6
* SVN 服务器 - Subversion 1.6.11
* 客户端操作系统 - Windows 10 64位
* SVN 客户端 - TortoiseSVN 1.9.2
*/

SVN 目录结构一般包含 Trunk,Branches,Tags 三个一级目录。

Trunk 表示主干目录,从这里创建分支

Branches 表示分支目录,放置项目的 release 版,开发人员在这些版本上进行开发和测试,完成之后需要合并到 Trunk 中

Tags 存储项目的发布版本,一般设置为只读

流程:

① 首先在服务器创建新的 SVN 仓库并且进行配置(见:http://www.cnblogs.com/dee0912/p/4376447.html

仓库名:svnproject

仓库路径:/usr/local/www/svnroot/svnproject

② 在客户端创建目录 svnproject

进入 svnproject,右键 SVN Checkout

③ 在 SVN 服务器创建 Trunk 目录

在客户端目录 svnproject 中右键 TortoiseSVN,选择 Repo-browser,在服务器仓库目录上右键,选择 Create folder

创建 Trunk 目录

④ 回到客户端,在 svnproject 目录中右键,选择 SVN Update

此时 svnproject 目录中就多了 Trunk 目录。

进入 Trunk 目录,新建项目文件夹 project,在 project 里创建 index.php

把 project 目录 add 并且 commit。

开始创建分支

在客户端 Trunk 目录上右键,选择 TortoiseSVN -- Branch/tag(也可以在服务器上进行 copy to)

在 To path 中填写 Branches 的路径名称

在 Create Copy in the repository from 中选择 HEAD revision in the repository,表示选择 Trunk 中最新的代码建立分支

ok -- ok

(服务器上的)分支建立完成。

可以在 svnproject/Trunk 上右键选择 TortoiseSVN -- Revision graph 查看分支示意图

⑥ 在客户端 svnproject 中 SVN Update,Branches 就从服务上更新了下来。

进入 Branches 目录,发现里面有一个完整的 project 项目

合并分支

在客户端中,编辑分支中的 svnproject/Branches/project/index.php

同时编辑主干中的 svnproject/Trunk/project/index.php

将两个修改过的文件全部 commit。

将分支合并到主干

在 svnproject/Trunk/project 上右键,选择 TortoiseSVN -- Merge

在 Merge type 中选择第二项 Merge two different trees

Next

在 From 和 To 中都选择要合并的分支目录

起始 URL :在 From 的 Revision 选择创建分支时的那个Revision:点击Show log,选择最下面一条,原因是该版本是分歧的起始点

结束 URL :在 To 的 Revision 选择 HEAD Revision,也就是最新操作,即分歧的结束点

Next -- Merge

此时 svnproject/Trunk/Project/index.php 已经发生改变

参考:

1.关于SVN中的Branches与Tags

2.SVN的标准目录结构:trunk、branches、tags

3.SVN版本控制与分支设置

4.使用TortoiseSVN新建及合并分支图文教程

5.企业使用SVN策略

6.svn 版本控制 trunk branch tag

7.Subversion版本控制 — 分支和合并(三)

8.解决版本冲突-使用SVN主干与分支功能

9.实例剖析TortoiseSvn分支合并

SVN 分支管理的更多相关文章

  1. SVN分支管理策略个人见解

    本篇目录 前言 SVN分支管理策略 VisualSVN Server TortoiseSVN客户端 Repository的创建 Check out trunk创建新项目MyProject trunk更 ...

  2. svn分支管理进行迭代开发

    [root@ok svndata]# svn co svn://192.168.1.111/app01 # checkout项目到本机 开始规划我们的svn项目目录: [root@ok svndata ...

  3. git 教程(12)--分支管理

    分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并 ...

  4. Git 分支管理详解

    大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 Cen ...

  5. Atitit 版本管理----分支管理

    Atitit 版本管理----分支管理 版本管理系统"(Version Control System Branch/tag在一个功能选项中,在使用中很容易产生混淆. 分支(Branch)管理 ...

  6. Git之(四)分支管理

    当我们初始化Git仓库的时候,Git会默认创建一个名为master的主分支.在实际工作中,主分支要求是一个稳定.健壮.安全的主线,一般不允许在主分支上直接进行开发,而是拉取一个新的分支,开发.测试完成 ...

  7. git(二) 分支管理

    概念 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇 ...

  8. git 入门教程之分支管理

    背景 什么是分支?简单地说,分支就是两个相对独立的时间线,正常情况下,独立的时间线永远不会有交集,彼此不知道对方的存在,只有特定情况下,两条时间线才会相遇,因为相遇,所以相知,因为相知,所以改变! 正 ...

  9. 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

随机推荐

  1. HttpHandler与HttpModule的用处与区别

    问题1:什么是HttpHandler? 问题2:什么是HttpModule? 问题3:什么时候应该使用HttpHandler什么时候使用HttpModule? 答案1:HttpHandler,Http ...

  2. web开发的基础知识:http请求

    引用自:http://blog.csdn.net/yefan2222/article/details/6198098 http://baike.baidu.com/view/1628025.htm?f ...

  3. UVa1486 Transportation(最小费用最大流)

    题目大概说有n个城市,m条有向边连着它们,每条边都有两个属性一个是ai一个是ci,ai表示运送x单位货物时花费ai*x*x的价钱,ci表示边最多能运送的货物数量(<=5).问从城市1运送k单位货 ...

  4. JQuery EasyUI window 用法

    var $win; $win = $('#test-window').window({ title: '添加课程设置信息', width: 820, height: 450, top: ($(wind ...

  5. How to retrieve instance parameters from an uninstantiated (uninserted) family

    The trick to be able to read the default values for instance parameters is to get to the FamilyManag ...

  6. 【原】iOS学习38网络之数据解析

    1. 解析的基本的概念 解析:从事先规定好的格式中提取数据 解析前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照格式获取数据 iOS开发常见的解析:XML解析.JOSN解析 2. X ...

  7. 【转】crontab定时任务中文乱码问题

    转载:http://blog.163.com/rettar@126/blog/static/1216503422012135511740/ 手动执行都很正常的的脚步,添加到定时任务中一直执行失败,日志 ...

  8. 定期来一次“绩效谈话”(摘自易中)

    值得借鉴学习 管理者和下属直接的互动关系当中,需要有一个定期的反馈机制.员工在工作当中需要管理者给他持续地反馈.以下是一个绩效谈话的标准程序: 一:说明会谈的目的和时间:我们用10分钟对你上一阶段的工 ...

  9. error===>ld: 2 duplicate symbols for architecture x86_64

    一,经历 1> 出现了以下错误,感觉像是GiftAnimationView文件的问题 /Users/liuzhu/Library/Developer/Xcode/DerivedData/test ...

  10. Hibernate中主键生成策略

    主键生成策略 increment identity sequence native uuid assigned 1) increment 由hibernate完成 主键递增, 原理:select ma ...