SVN中tag branch trunk用法详解

SVN的branch tag trunk的用法详解 当一个团队进行项目开发时,往往会遇到这两个问题,1、正在开发新版本的时候,发现上一个版本有bug,这时候怎么办;2、多人如何同时开发一个项目,如何解决同步问题,这边文章介绍主要解决了这两个方面的问题,希望对大家有帮助 阅读详情

转自:http://developer.51cto.com/art/201005/201718.htm 


本节主要讲解一下SVN中tag branch trunk的用法,在SVN中Branch/tag在一个功能选项中,在使用中也往往产生混淆。这里就向大家简单介绍一下,欢迎大家能和我一起学习SVN中tag branch trunk的用法。
在实现上,branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别。至于何时用tag,何时用branch,完全由人主观的根据规范和需要来选择,而不是强制的(比如cvs)。一般情况下,tag,是用来做一个milestone的,不管是不是release,都是一个可用的版本。这里,应该是只读的。更多的是一个显示用的,给人一个可读(readable)的标记。branch,是用来做并行开发的,这里的并行是指和trunk进行比较。比如,3.0开发完成,这个时候要做一个tag,tag_release_3_0,然后基于这个tag做release,比如安装程序等。trunk进入3.1的开发,但是3.0发现了bug,那么就需要基于tag_release_3_0做一个branch,branch_bugfix_3_0,基于这个branch进行bugfix,等到bugfix结束,做一个tag,tag_release_3_0_1,然后,根据需要决定branch_bugfix_3_0是否并入trunk。对于svn还要注意的一点,就是它是全局版本号,其实这个就是一个tag的标记,所以我们经常可以看到,什么什么release,基于xxx项目的2xxxx版本。就是这个意思了。但是,它还明确的给出一个tag的概念,就是因为这个更加的可读,毕竟记住tag_release_1_0要比记住一个很大的版本号容易的多。

branches:分枝
SVN中tag branch trunk的用法,首先看一下branches的介绍。当多个人合作,可能有这样的情况出现:John突然有个想法,跟原先的设计不太一致,可能是功能的添加或者日志格式的改进等等,总而言之,这个想法可能需要花一段时间来完成,而这个过程中,John的一些操作可能会影响Sally的工作,John从现有的状态单独出一个project的话,又不能及时得到Sally对已有代码做的修正,而且独立出来的话,John的尝试成功时,跟原来的合并也存在困难。这时最好的实践方法是使用branches。John建立一个自己的branch,然后在里面实验,必要的时候从Sally的trunk里取得更新,或者将自己的阶段成果汇集到trunk中。
(svncopySourceURL/trunkDestinationURL/branchName-m"Creatingaprivatebranchofxxxx/trunk.")

trunk:主干
主干,一般来说就是开发的主要呆的地方,
tag:  图标
在经过了一段时间的开发后,项目到达了一个里程碑阶段,你可能想记录这一阶段的代码的状态,那么你就需要给代码打上标签。
(svncpfile:///svnroot/mojavescripts/trunkfile:///svnroot/mojavescripts/tags/mirrorutils_rel_0_0_1-m"tagedmirrorutils_rel_0_0_1")另有一说,无所谓谁对谁错。
trunk:表示开发时版本存放的目录,即在开发阶段的代码都提交到该目录上。
branches:表示发布的版本存放的目录,即项目上线时发布的稳定版本存放在该目录中。
tags:表示标签存放的目录。
在这需要说明下分三个目录的原因,如果项目分为一期、二期、三期等,那么一期上线时的稳定版本就应该在一期完成时将代码copy到branches上,这样二期开发的代码就对一期的代码没有影响,如新增的模块就不会部署到生产环境上。而branches上的稳定的版本就是发布到生产环境上的代码,如果用户使用的过程中发现有bug,则只要在branches上修改该bug,修改完bug后再编译branches上最新的代码发布到生产环境即可。tags的作用是将在branches上修改的bug的代码合并到trunk上时创建个版本标识,以后branches上修改的bug代码再合并到trunk上时就从tags的version到branches最新的version合并到trunk,以保证前期修改的bug代码不会再合并。
-------------------------------------------------------------------------------------------
介绍SVN中tag branch trunk用法时,一直以来用svn只是当作cvs,也从来没有仔细看过文档,直到今天用到,才去翻看svnbook文档,惭愧
需求一:
有一个客户想对产品做定制,但是我们并不想修改原有的svn中trunk的代码。
方法:
用svn建立一个新的branches,从这个branche做为一个新的起点来开发
svncopysvn://server/trunksvn://server/branches/ep-m"initep"
Tip:
如果你的svn中以前没有branches这个的目录,只有trunk这个,你可以用
svnmkdirbranches新建个目录

需求二:
产品开发已经基本完成,并且通过很严格的测试,这时候我们就想发布给客户使用,发布我们的1.0版本
svncopysvn://server/trunksvn://server/tags/release-1.0-m"1.0released"咦,这个和branches有什么区别,好像啥区别也没有?
是的,branches和tags是一样的,都是目录,只是我们不会对这个release-1.0的tag做修改了,不再提交了,如果提交那么就是branches

需求三:
有一天,突然在trunk下的core中发现一个致命的bug,那么所有的branches一定也一样了,该怎么办?
svn-r148:149mergesvn://server/trunkbranches/ep其中148和149是两次修改的版本号。SVN中tag branch trunk用法介绍完毕。


SVN 项目版本管理之trunk(主线) branch(分支) tag(标记)使用 应用场景: 优异的跨平台支持,对windows平台支持非常友好。 简单易用,安装后稍微培训下就知道怎么操作。 代码,需求,文档,涉及稿都可以用svn进行管理,适合不同部门的技术非技术的同事协作。 当研发成本比较低,协作开发人数不多,开发人员对于版本管理的水平参差不齐的时候,或者对于代码的安全性要求更高一点的时候,适合用svn SVN仓库目录结构Repository: truck(主干|主... 阅读详情

相关推荐

Windows环境下Collabnet_Subversion_Edge与Trac集成安装方法

Collabnet Subversion Edge版SVN服务器安装很省心而且免费,但是在这个上面再集成安装TRAC的时候,却会发现装不成功,经多次试验,总算找到了解决方法,实现了Collabnet Subversion Edge版SVN服务器与Trac的集成安装。 由于Collabnet Subversion Edge版SVN服务器用的也是Apache集成SVN,所以可以和TRAC使用同一套用户帐号,用户管理也因此方便多了。

SVN服务器配置

SVN安装后的目录位置及说明 ./var/opt/CollabNet_Subversion         //存放SVN的日志文件 ./opt/CollabNet_Subversion            //存放SVN的可执行程序 ./etc/opt/CollabNet_Subversion         //存放SVN的配置文件 比较有用的权限配置的文件就是 ./etc/opt/

dingyun00196932的专栏 824

CollabNetSubversionEdge-5.1.0_setup-x86_64

CollabNetSubversionEdge-5.1.0_setup-x86_64客户端官网地址,Subversion Edge 是一个版本控制软件的集成包,集成了包括 Subversion、Apache 和 ViewVC 三个软件。安装简单、管理方便。

CollabNetSubversionEdge错误集合

subversion client 不能连接到服务器,Unable to connect to a repository at URL一、现象 无论TortoiseSVN还是subclipse都不能连接到subversion server,想改密码也改不了。 报错:Unable to connect to a repository at URL,could not connect to serv

TX的博客 1330

Wireshark 4.6 TCP 流图解析:3种拥塞控制算法可视化对比

本文深入解析Wireshark 4.6的TCP流图功能,通过可视化对比Reno、Cubic和BBR三种主流拥塞控制算法的性能特征。文章提供详细的实验环境搭建方法、流图分析工具使用技巧,以及算法调优建议,帮助网络工程师优化TCP性能。

weixin_29291573的博客 446

空天大模型详解

空天大模型是指面向空天信息领域(如卫星遥感、导航、气象等)设计的多模态人工智能模型,能够处理海量遥感数据、多传感器信息及跨时空分析任务。多模态融合:整合可见光、雷达、热红外、多光谱等多源遥感数据,构建统一表征空间,例如“空天·灵眸”3.0版支持航空、卫星及无人机数据的自动化解译。轻量化与高效推理:针对星载计算场景,采用分层量化、跨模态蒸馏技术压缩模型参数(如JigonGPT从1.02B压缩至0.23B,性能仅牺牲5.2%)18,并通过热传导架构提升计算速度2.4倍。神经符号结合。

zxy98的专栏 1566

配置 collabnet subversion

collabnet subversion 1.6.12 配置 apache

四眼咕喱 1537

COMSOL新手必看:手把手教你搭建锂电池P2D模型(附完整参数设置)

本文为COMSOL新手提供了搭建锂电池P2D仿真模型的详细指南。文章从模型原理入手,逐步讲解软件设置、几何构建、关键参数配置及后处理分析,并探讨了如何将仿真结果与智能电池管理中的SOC、SOH估算相结合,为电池性能分析和BMS算法开发提供实用洞见。

transformer2023的博客 232

CollabNetSubversionEdge-1.3.1安装与配置 使用

1、双击CollabNetSubversionEdge-1.3.1_setup.exe按默认进行安装 2、安装完成后重启操作系统,否则SVN服务不能正常启动 3、通过http://localhost:3343/csvn访问管理界面,用户名密码为admin/admin。 CollabNet Subversion Edge使用 2010年12月21日 星期二 21:12 1...

の原為じ簡單 359

基于simulink的变压器保护仿真设计【MATLAB源码+Word文档】

电力系统变压器保护MATLAB/simulink仿真设计。纵联差动保护-过电流保护-距离保护

weixin_761237174的博客 1270

深入解析ADC采样电容:从充电误差到LSB精度的关键设计

本文深入解析了ADC采样电容在模数转换中的核心作用,重点探讨了充电时间常数与采样误差的博弈关系。通过推导最小采样时间公式,揭示了精度、速度、源阻抗与内部电容之间的制约关系,并提供了从理论计算到外部驱动电路设计的实战指南,是确保ADC达到LSB精度的关键。

android的专栏 1103

svn服务端异常处理--所有用户登录不上

-----------------------------------------建议每日自动备份配置文件------------------------------------------------3.打开VisualSVN-GlobalWinAuthz.ini搜索 http,将该条相关信息删除掉,然后重启svn服务即可正常使用;3.重启svn服务,尝试登录看是否正常,如正常需要排查其它账号密码是否保存了乱码。如遇svn服务端异常(所有用户登录不上);如上面方法不好用尝试用下述方法。

weixin_59450851的博客 736

RISC-V内核移植实战:从零开始手把手实现RT-Thread上下文切换(附GD32VF103代码解析)

本文详细解析了在RISC-V架构上移植RT-Thread实时操作系统的核心步骤,重点聚焦于上下文切换机制的实现。通过对比ARM Cortex-M与RISC-V在中断处理和寄存器管理上的关键差异,并以GD32VF103开发板为例,手把手指导开发者完成libcpu抽象层适配、线程栈初始化以及三种上下文切换方式的代码编写与调试,为嵌入式开发者从ARM转向RISC-V平台提供了实战指南。

fern8的博客 739

SVN中的trunk、branch、tag都是什么?

通过这种结构,团队可以高效管理代码的并行开发、版本发布和历史回溯。是三个核心目录,用于组织和管理代码的不同版本。在 SVN(Subversion)版本控制系统中,来实现版本控制策略。

m0_69752994的博客 1628

2026爬虫反爬终极对抗:AST解混淆+算法还原+Python复现全流程实战

本文分享了破解JS加密参数的完整流程,重点介绍AST解混淆和算法还原方法。针对电商网站常见的混淆手段(变量名混淆、控制流平坦化、字符串加密等),作者提出一套高效解决方案:通过AST解析还原可读代码,结合Chrome断点调试定位加密函数,最后用Python精准复现加密逻辑。文章包含具体的代码实现,如字符串数组还原的AST操作示例,并详细说明了从样本采集到验证测试的全流程。该方法已成功应用于10多个网站,将破解时间从一周缩短至一天,为处理JS加密参数提供了可复用的技术方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1522

【大数据Java基础-Java基础01】环境搭建(一)Sublime Text3搭建Java编译环境(Windows系统)

1. 首先配置好Java环境变量 我的jdk版本是1.8.0_191,存放目录是C:\Program Files\Java,因此添加以下环境变量 (1)系统变量→新建 JAVA_HOME 变量,变量值为: C:\Program Files\Java\jdk1.8.0_191 (2)系统变量→找到 Path 变量→编辑,末尾加入: ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 如果Path变量末尾本身有“;”,则上述路径前面则不需要加“;” (3)系统变量→新建 CL

微信搜:import_bigdata,大数据领域硬核原创作者 552

SVN中tag、 branch 、trunk的区别

下文转自: http://developer.51cto.com/art/201005/201718.htm ---------------------------------------------------------------------------------------------------------------------------------- 在实现上,br

WOSHICAIXIANFENG的专栏 930

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【SVN】trunk、branch、tag是什么呢?

为什么用trunk、branch、tag 合作开发一个项目,一个项目上线后,上可能还是会有问题的或者还需要继续开发功能,那我们总不能在原项目上修改及开发呀,这样又影响使用,又影响开发,可能出现冲突,所有就会有trunk、branch、tag了,那么关于SVN中的trunk、branch、tag是什么呢,代表什么呢,有什么作用呢?下面就来仔细认识一下吧! trunk、branch、tag是什么 ...

像风走过八千里 1880

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SVN之Cornerstone从trunk、tag、branch到merge

版本管理思想 版本管理者(一般是项目经理)首先要创建SVN项目分类 trunk/tags/branches 项目的整个生命周期肯定都存放在trunk中。 tags文件夹下存放的都是各版本上线后的稳定版本 trunk和tags文件夹中项目由版本管理者进行维护;其他开发者只在branches文件夹下进行开发更新,避免直接更改tags和trunk中的代码,防止代码混乱。 操作步骤 项目管理者创建项目分类文

MayerF的专栏 4608

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SVN中trunk,branch,tag

SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤_svn 分支-优快云博客trunk(主线):主方向开发,新功能的开发放在主线上,模块开发完成后,需要修改,就用branch.branchs(分支):分支开发和主线开发可以同时进行,分支常用于修复bug.tags(标记):标记某个可用的版本,可以标记已经上线发布的版本,也可以标记正在测试的版本.

weixin_51883798的博客 740

SVN的trunk branch tag

SVN的trunk branch tag http://lelglin.iteye.com/blog/1450654   Subversion有一个很标准的目录结构,是这样的。 比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是 svn://proj/|                  +-trunk                  +-branche...

nethub2的专栏 91
上一篇: TortoiseSVN中Branching和Merging实践
下一篇: SVN merge 三种方式
primer_programer
博客等级 码龄20年 283粉丝 180原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值