`

trunk:表示开发时版本存放的目录,即在开发阶段的代码都提交到该目录上。 branches:表示发布的版本存放的目录,即项目上线时发布的稳定版本存放在该目录

    博客分类:
  • SVN
阅读更多
trunk:表示开发时版本存放的目录,即在开发阶段的代码都提交到该目录上。

branches:表示发布的版本存放的目录,即项目上线时发布的稳定版本存放在该目录中。

tags:表示标签存放的目录。

在这需要说明下分三个目录的原因,如果项目分为一期、二期、三期等,那么一期上线时的稳定版本就应该在一期完成时将代码copy到branches 上,这样二期开发的代码就对一期的代码没有影响,如新增的模块就不会部署到生产环境上。而branches上的稳定的版本就是发布到生产环境上的代码,如 果用户使用的过程中发现有bug,则只要在branches上修改该bug,修改完bug后再编译branches上最新的代码发布到生产环境即可。 tags的作用是将在branches上修改的bug的代码合并到trank上时创建个版本标识,以后branches上修改的bug代码再合并到 trunk上时就从tags的version到branches最新的version合并到trunk,以保证前期修改的bug代码不会在合并。





一直以来用svn只是当作cvs,也从来没有仔细看过文档,直到今天用到,才去翻看svn book文档,惭愧

需求一:
有一个客户想对产品做定制,但是我们并不想修改原有的svn中trunk的代码。

方法:
用svn建立一个新的branches,从这个branche做为一个新的起点来开发
代码
svn copy svn://server/trunk svn://server/branches/ep -m "init ep" 
<script>render_code();</script>


Tip:
如果你的svn中以前没有branches这个的目录,只有trunk这个,你可以用
代码
svn mkdir branches 
<script>render_code();</script>
新建个目录


需求二:
产品开发已经基本完成,并且通过很严格的测试,这时候我们就想发布给客户使用,发布我们的1.0版本
代码
svn copy svn://server/trunk svn://server/tags/release-1.0 -m "1.0 released" 
<script>render_code();</script>


咦,这个和branches有什么区别,好像啥区别也没有?
是的,branches和tags是一样的,都是目录,只是我们不会对这个release-1.0的tag做修改了,不再提交了,如果提交那么就是branches

需求三:
有一天,突然在trunk下的core中发现一个致命的bug,那么所有的branches一定也一样了,该怎么办?
代码
svn -r 148:149 merge svn://server/trunk branches/ep 
<script>render_code();</script>
其中148和149是两次修改的版本号。
分享到:
评论

相关推荐

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

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

    svn trunk branches tags

    svn trunk branches tags

    svn目录使用规范.doc

    注:在这需要说明下分三个目录的原因,如果项目分为一期、二期、三期等,那么一期上线时的稳定版本就应该在一期完成时将代码copy到branches上,这样二期开发的代码就对一期的代码没有影响,如新增的模块就不会部署到...

    cda-TRUNK-SNAPSHOT.jar

    SNAPSHOT是快照的意思,项目到一个阶段后,就需要发布一个正式的版本(release版本)。一次正式的发布需要这样一些工作: 在trunk中,更新pom版本从1.0-SNAPSHOT到1.0 对1.0打一个svn tag 针对tag进行mvn deploy,...

    SVN 主干(trunk)、分支(branch )、标记(tag)

    4、然后在合并源ULR中 选择需要合并的分支不版本URL,最后在范围写上需要合并的版本号(可以多个), 5、再下一步进行合并。 6、合并完成后,注意 主干(trunk) 是需要提交的,当然也有可能出现冲突。 3.标记...

    TRUNK功能TRUNK功能

    TRUNK功能TRUNK功能TRUNK功能TRUNK功能TRUNK功能

    cocoapods-trunk:行李箱的CocoaPods插件

    安装将此行添加到您的应用程序的Gemfile中: gem 'cocoapods-trunk'然后执行: $ bundle或将其自己安装为: $ gem install cocoapods-trunk用法在本地安装trunk.cocoapods.org并运行它: $ env TRUNK_SCHEME_AND_...

    trunk:使bazel成为C ++ Java开发人员的即用型解决方案

    $ docker run --rm -ti bazelment/trunk:lrte $ bazel build examples/... 当前,C ++项目只能在Linux x64系统上构建。 C ++ tcmalloc,堆检查器,堆分析器和cpu分析器。 :版本1 re2 活泼的 愚蠢的支持图书馆。...

    weka-trunk:官方Weka颠覆存储库的只读镜像(trunk,又名开发人员版本)

    WEKA(开发版) Weka的Subversion版本库的只读git镜像。源代码可从以下URL获得开发人员版本的官方WEKA源代码:贡献/错误修复贡献和错误修复可以作为补丁文件贡献并发布到。链接

    jmeter-trunk:jmeter-trunk

    jmeter-trunk jmeter-trunk #在 Windows 安装程序上设置 Jmeter

    trunk版本.zip

    trunk.zip trunk.zip trunk.zip trunk.zip trunk.zip

    Spark: spark/trunk part002 第二部分

    Spark: svn co http://svn.igniterealtime.org/svn/repos/spark/trunk spark 辛辛苦苦从SVN上下载下来的SOURCE Spark 2.6.3 Spark: spark/trunk part002 第二部分

    VLAN,TRUNK,VTP VLAN

    在1900系列和2900系列交换机上TRUNK的配置 在1900系列和2900系列交换机上VTP的配置 在1900系列和2900系列交换机以及2600系列路由器上VLAN间路由的配置 实验条件:2900系列交换机两台,1900系列交换一台和2600系列...

    trunk:主机MUSH 4.0

    目前,该分支机构将合并并构建最新和最强大的版本,然后再发布给Master。幽灵维基我们已经在此站点上启动了一些有用的Wiki页面,以帮助Rhost游戏所有者。 单击右侧的Wiki链接以获取完整列表。 随时提交问题和建议以...

    chrome-headless-trunk:始终在Docker映像的主干中始终保持最新的Headless Chromium

    chrome-headless-trunk:始终在Docker映像的主干中始终保持最新的Headless Chromium

    防火墙Trunk浅谈

    trunk技术在防火墙中的具体应用及实例

    centos 7 下双网卡bond 与 trunk口的交换机通信(用作KVM虚拟机)

    网络工程师在两台交换机上做了两个trunk模式的vlan 两个口分别连接服务器的 1网卡和2网卡 这样做bond 可以防止一台交换机损坏的容灾 一、制作bond vim /etc/sysconfig/network-scripts/em1 vim /etc/sysconfig/...

    Spark: spark/trunk part003 第三部分

    Spark: svn co http://svn.igniterealtime.org/svn/repos/spark/trunk spark 辛辛苦苦从SVN上下载下来的SOURCE Spark 2.6.3 Spark: spark/trunk part003 第三部分

    基本实验2:Trunk配置

    【实验内容】 VLAN跨交换机时的通信。 【实验目的】 理解VLAN跨交换机之间的通信方式与配置。 【实现功能】 使在同一VLAN里的计算机能跨交换机进行相互通信。

Global site tag (gtag.js) - Google Analytics