新建资源仓库时,可选择默认创建三个文件夹。这三个文件夹分别是【trunk】【branches】【tags】

【Trunk】

一般用于存放目前项目主线,也就是项目所有功能模块的集合体,一整个项目所有代码库。一般来说,存放在trunk中的代码都是稳定可正常运行的。

【Branches】

分支,其实也就是主线的拷贝,主要应用于在项目需要有新的开发时,不针对主线进行,而是在主线的基础上,拷贝一份或者多份。针对每个模块小组,均可根据自己的开发情况,创建自己的分支进行开发,最后将分支一起合并到trunk上来,从而最后合并为一个项目。

分支存在的意义就在于保证主线稳定版代码和新需求开发版代码的间的独立。目前在svn的使用上,最大的问题就是没有建立各自项目组的分支,所有模块均集中对trunk中主线进行操作。就像测试时直接操作生产数据库一样可怕,因为木有备份,出问题了恢复就比较麻烦。

【Tags】

标记是主线中一个特定版本的定型版。比如一个系统1.0开发完成,就会将主线的代码打一个tag,标记1.0开发完成。所以Tags中的代码只读的,也就是tags中的版本是不允许再动了。

下面就实际演示版本控制具体操作。

如何创建分支?

1、选择trunk中需要创建分支的主线文件夹,右击如下,选择Branch/tag: 

2、选择分支创建路径到branches文件夹下,版本号为当前最新版本 

3、分支创建完毕,then新功能的开发便可重新定位到分支URL进行代码的更新提交而不对主线造成任何改动。 

4、最后还可通过版本分支图查看各个版本分支记录,定位分支从哪一版本分出去的,当前只做了一个分支,如下: 

如何创建tag?

创建tag和分支的流程完全一致,唯一不同的便是填写不同的URL路径

创建成功后,查看服务端仓库,Tag 建立完成如下图:

如何将分支合并到主线?

1、右击需要合并的文件,选择merge 

选择合并类型:

【merge a range of revisions】——N to one

适用于新功能开发即有在分支中进行,又有在主线中进行,将某个分支或主线上提交的多个版本间的变化合并到另外一个分支上。

"Revision range to merge"就是你要将trunk的哪个版本所做的变化合并到branch中,可以是某一连串的revision,比如 4-7,15-HEAD,也可以是某个单独的某版本号。

【Reintegrate a branch】——One to One

适用于在分支中开发新功能,分支开发结束后将所有的改动合并回主线上。

在这里,"From URL"选择/branches/MyProject,无需选择版本号,Reintegrate会将branch上所有修改合并到 trunk。branch将成功合并到trunk,你需要做的只是将合并后的trunk立即 commit!如果新加的功能已经开发完成了,你可以选择在合并后删除相关分支。

当选择将分支合并到主线上【merge a range of revisions】,结果如下图:

最后将branches中代码提交即可。

总结:

SVN通过对三个文件的操作,主要目的还在于对历史版本的备份,三个版本相互独立,trunk负责保存当前稳定版本;branches 负责保持你分支版本,进行新需求开发;tags则保存最终发布上线版本,所以不可再修改。各司其职,各尽其责,使得开发过程中版本控制有条不紊,几十个人的合作开发也不成问题。

SVN版本控制—branches、trunk、tag篇的更多相关文章

  1. SVN中trunk、branches、tag的使用

     我相信初学开发在SVN作为版本管理时,都估计没可能考虑到如何灵活的运用SVN来管理开发代码的版本,下面我就摘录一篇文章来简单说明SVN里的trunk,branched,tags这个三个文件目录的用法 ...

  2. SVN组成中trunk,branches and tags功能用法详解

    SVN组成中trunk,branches and tags功能用法详解  我相信初学开发在SVN作为版本管理时,都估计没可能考虑到如何灵活的运用SVN来管理开发代码的版本,下面我就摘录一篇文章来简单说 ...

  3. svn三大目录trunk、branch和tag

    SVN中Branch和tag的比较在SVN中Branch和tag在一个功能选项中,在使用中也往往产生混淆.在实现上,branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般 ...

  4. SVN中的Trunk、Tag、Brance的用法

    在SVN中Branch/tag在一个功能选项中,在使用中也往往产生混淆.在实现上,branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别.至于何时用tag, ...

  5. SVN的branches、trunk、tags使用

    本文针对实际开发过程中,svn使用到的trunk.branches.tags情况进行操作模拟, 一.创建trunk.branches.tags文件夹 我们在上文的svn仓库下创建trunk.branc ...

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

    使用SVN+Eclipse做软件版本控制. (2009年5月) 1,SVN目录结构 Trunk : 主干目录,此目录下的文件为基准文件 Branches : 用于开发的分支目录 Tags : 用于发布 ...

  7. Git SVN 版本控制 简介 总结 MD

    Git 使用准备 主流的 Git 托管网站 GitLab,主流网站,私有仓库也完全免费,功能更强大,页面精美,操作方便 GitHub,最著名的免费Git托管网站,缺点是免费的不支持私有项目 OSChi ...

  8. [转]将已有项目代码加入svn版本控制

    原文链接:https://blog.csdn.net/aaroun/article/details/79074178 将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下 ...

  9. SVN将项目代码加入svn版本控制

    将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下SVN实用教程(以TortoiseSVN作为客户端(client)) 翻译: Bravo Young Next: 版本 ...

随机推荐

  1. linux查看物理cpu的核数,个数,逻辑cpu的个数

    # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...

  2. Egret入门学习日记 --- 第十四篇(书中 5.4~5.6节 内容)

    第十四篇(书中 5.4~5.6节 内容) 书中内容: 总结 5.4节 内容重点: 1.如何编写自定义组件? 跟着做: 重点1:如何编写自定义组件? 文中提到了重要的两点. 好,我们来试试看. 第一步, ...

  3. 【ARM-Linux开发】使用QT和Gstreanmer 遇到的一些问题

    1.如果出现错误,可能是在安装UCT PCRF时,相关组件不全,略举两个碰到的错误. 1)curl/curl.h:No such file or directory --可能原因是libcurl及相关 ...

  4. Spring 使用jsp

    1.New----新建项目 2.选择图中所示按钮,下一步 3.标记处修改工程名,下一步 4选中图中所示选项 5.完成 6.在main目录下新建目录webapp 7.自动导入 8.调整项目结构 9.选择 ...

  5. Druid基本配置

    最近公司要用Druid 所以看了下基本配置及配置过程中出现的问题 Druid是什么? Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时 ...

  6. setting中executable for debug session对话框

  7. JDBC(Java项目使用Oracle数据库)

    Java项目中使用Oracle数据库(Eclipse) 前言 这学期选了Oracle数据库这门课,于是自己下载了Oracle11gR2版本的数据库.在这之前我一直用的是MySQL.虽然两者教程差不多, ...

  8. gdb调试命令总结

    常用命令: l 列出源代码 每次默认列10行 list 行号   列出从第几行开始的源代码 list函数名     列出某个函数的源代码 r    运行程序 next(或n)     执行下一行语句 ...

  9. Composer安装yii2-imagine 压缩,剪切,旋转,水印

    安装:composer require --prefer-dist yiisoft/yii2-imagine 查看是否安装成功, 安装了两个目录分别是 vendor/imagine vendor/yi ...

  10. python2.7 编码问题

    python 2.7编码问题,着实令人头疼不已,这两天抽闲想真正弄明白.需要弄清楚这个问题,首先需要明白ASCII,Unicode 和 UTF-8之间的关系. 进行对上述几种概念进行描述之前,先进行简 ...