热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SVN的branchtagtrunk的用法详解

SVN开发中,trunk,tags,branchs使用的场景:当我们项目的某个版本开发结束后,比如1.0版本的开发结束之后,并且项目已经上线了,此时我们接到了新的需求,要增加一些新的功能

SVN开发中,trunk,tags,branchs使用的场景:

       当我们项目的某个版本开发结束后,比如1.0版本的开发结束之后,并且项目已经上线了,此时我们接到了新的需求,要增加一些新的功能,假设我们将正在开发新功能的版本定为2.0版本。当我们对新版本的开发已经进行了一段时间的时候,刚好碰到有很多客户反映1.0版本存在bug,并且需要立马解决问题并上线;这个时候我们该怎么进行修改呢,是在正在增加新功能的2.0版本的基础上修改吗?答案肯定是否定的,因为新功能还没开发完成,更没有进行测试,怎么可能立马就可以上线;再次,如果修改bug的地方与新开发的功能涉及到同一处的代码,并且产生了冲突该怎么办呢。所以最好的办法就是我们对已经发布的1.0版本进行修改。这样的好处是:1、bug修复好了之后就可以立马上线,不需要等到新功能开发测试完成才可以上线2、在原来版本上进行修复,可以避免对正在开发的新版本(2.0版本)产生影响,因为如果在新的版本上进行修改,可能会带来新的bug。

下面是这一场景的执行流程:

1、开始一个项目(1.0版本) 项目名称为:trunk_1.0

2、项目开发结束(1.0版本) 发布新版本,将该版本复制到 tags中, 项目名称为:tags_release_1.0

3、准备增加新功能(2.0版本)

4、开发2.0版本的过程中发现1.0版本有bug,将tags_release_1.0复制到branch中进行修复,项目名称为:branch_fix_1.0

5、1.0版本修复完成,发布新版本,将该版本复制到tags中,项目名称为:tags_release_1.1

6、将branch中的branch_fix_1.0与trunk中正在开发的2.0版本进行合并(merge)。

注意:

1、开发2.0版本和修复1.0版本的bug的过程是两个互不干扰的过程,我们可以把他们看做两个不同的项目,他们都可以由多人进行协同开发。

2、在进行同时进行2.0开发与1.0版本bug修复的时候,因为他们两个是并行开发,为了保证trunk与branchs中的项目不会越走越远,我们需要让trunk与branchs时常能够感知对方,即branchs要时常和trunk保持同步,那如何保持branchs与trunk的同步呢,那就是merge(合并),没错就是合并,将trunk合并到branchs中。

参考资料:

SVN中trunk,branches,tags用法详解

http://www.cnblogs.com/dafozhang/archive/2012/06/28/2567769.html

svn的merge使用例子

http://blog.csdn.net/keda8997110/article/details/21813035

SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤

http://blog.csdn.net/vbirdbest/article/details/51122637



推荐阅读
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 先记住几个专用名词,如下:Workspace:工作区IndexStage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个G ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • GSIOpenSSH PAM_USER 安全绕过漏洞
    漏洞名称:GSI-OpenSSHPAM_USER安全绕过漏洞CNNVD编号:CNNVD-201304-097发布时间:2013-04-09 ... [详细]
  • 本文介绍了使用jQuery实现图片预加载和等比例缩放的方法,同时提供了演示和相关代码。该方法可以重置图片的宽度和高度,并使图片在水平和垂直方向上居中显示。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • loader资源模块加载器webpack资源模块加载webpack内部(内部loader)默认只会处理javascript文件,也就是说它会把打包过程中所有遇到的 ... [详细]
  • asp中如何嵌入python的简单介绍
    本文目录一览:1、如何在IIS中执行Python脚本 ... [详细]
  • 初始化初始化本地空版本库,仓库,英文名repositorymkdirtest&&cdtestgitinit克隆项目到本地gitclone远程同 ... [详细]
  • 建立的索引后,select语句中,where条件和排序条件必须完全和索引一样,索引才能真正起到作用,并且排序条件的先后顺序必须和索引一致.where的字段必须处于索引最开始的位置, ... [详细]
author-avatar
他丶是我唯一的执着_490
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有