Svn目录结构:trunk;tags;branches

2024-03-25 17:08

本文主要是介绍Svn目录结构:trunk;tags;branches,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Svn目录结构:trunk;tags;branches

在Svn世界中,目录没有特殊的含义(都是人为赋予的),也就是说,所谓的目录结构并不是必须的,而是一种***约定俗成的***,大家都这么使用的“事实上的标准”。

你不这么构造目录结构,也完全可以。

但是出于各方面考虑,还是建议遵从一般的约定来构造Svn目录的。

假设有一个repo为:svn://ip:port/,其中有一个项目是myproj,那么这个项目的url为:

svn://ip:port/myproj

标准地来说,在myproj目录下应该至少有三个目录:trunk,tags以及branches。

svn://ip:port/myproj/trunk
svn://ip:port/myproj/tags
svn://ip:port/myproj/branches

trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。

trunk:

是svn开发的主干,日常开发都是从这里出库最新代码,然后合并到主干中。

tags:

milestone。是各种具有一定意义的,阶段性的发布版,比如有个1.0版本,可以打一个tag,有个2.0版本,再打一个tag,等等。

branches:

trunk是主干,那么branches相对来说就是分支了。例如某些版本还需要继续维护和开发,可以放在branches中(注:tags中通常不再对其修改);例如某些版本是为了某些客户专门修改过的,也可以放置在branches中。

通常来说tags目录是只读的,可以使用svn的authz来对其进行限制。

tags的作用:

在经过了一段时间的开发后,项目到达了一个里程碑阶段,你可能想记录这一阶段的代码的状态,那么你就需要给代码打上标签。

branches的作用可以用下面例子来解释:

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

branches还可以:

有个客户想要定制化的产品,但是我们并不想修改svn中trunk中的代码,因为不能因为一个客户影响了整个项目的日常开发呀。

于是我可以建个branch,然后从trunk中copy一份到branch,继而进行客户定制化开发。

当发现阶段性的tag存在一个bug,想要修复,我可以把它branch出来,单独修复bug,完事之后再打一个tag,标识这个是修复好的版本,然后可以将这个修复merge到trunk。

我们公司当前的结构基本是:

这里写图片描述

还是那句话,svn不强制要求如何如何规定目录结构,怎么用还是在于个人。

参考来源:

1.http://www.cnblogs.com/newstar/archive/2011/01/04/svn.html
2.http://www.jianshu.com/p/15b60bdfa856
3.http://blog.csdn.net/pttaag/article/details/8076210

这篇关于Svn目录结构:trunk;tags;branches的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/845670

相关文章

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

SpringBoot利用树形结构优化查询速度

《SpringBoot利用树形结构优化查询速度》这篇文章主要为大家详细介绍了SpringBoot利用树形结构优化查询速度,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一个真实的性能灾难传统方案为什么这么慢N+1查询灾难性能测试数据对比核心解决方案:一次查询 + O(n)算法解决

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2