主干(trunk)、分支(branch )、标记(tag) 用法示例 + 图解

转载自:http://www.cnblogs.com/YingYue/p/6118972.html,收藏在此,感谢原创。

主干(trunk)、分支(branch )、标记(tag) 用法示例 + 图解

以svn为例,git的master相当于trunk,dev分支相当于branches

-------------------------------------------------------------------------------------------------------------------------------------------- 

trunk:是用来做主方向开发的一直向前进行,一个新模块的开发,这个时候就放在trunk,当模块开发完成后,需要修改,就用branch。  

branch:是用来做并行开发的,这里的并行是指和trunk进行比较。  

tag:是用来做一个milestone(里程碑)的,不管是不是发布版本,但都是一个可用的版本,不需要修改如果要修改就要选一个tag进行branche开发。  

--------------------------------------------------------------------------------------------------------------------------------------------

为什么要分3个目录?且都是重复的代码Copy有意义吗?来看下下面这个例子就明白这样做的好处了。

例如:开发一个聊天软件QQ,第一期只要求软件具有基本的聊天功能,后期会加入视屏聊天、魔法表情、换皮肤等功能。

当第一期开发完,经测试人员测试后没问题。此时应该给予当前代码库打tag命名为QQ_tag_release_v1.0.0,同时trunk如火如荼进入v2.0.0开发,但是此时经广大用户反馈v1.0.0的QQ登录后经常闪退,由于v2.0.0正在开发即使bug改了也发布不了。那么就要基于QQ_tag_release_v1.0.0的标记(tag)做一个分支(branch)命名为QQ_branch_bugfix_v1.0.0并基于这个分支快速进行BUG修改,等到BUG修改结束后做一个tag命名为QQ_tag_release_v1.0.1,根据需要决定QQ_branch_bugfix_v1.0.0是否合并(Merge)并入主干(trunk)。

--------------------------------------------------------------------------------------------------------------------------------------------

步骤:

1、新建svn仓库单项目/多项目仓库都可以,结构如下图这样

2、新建资源库

填写URL仓库地址点击“Finish”

如下

新建qq项目导入svn的trun目录(选中项目右键Team-->Share Projects...)

导入后项目后的svn仓库如下

由于紧锣密鼓的工作v1.0.0终于开发完(v1.0.0只有基本的聊天功能),经测试没有发现问题可以提供给用户使用,同时在此代码库上打一个tag版本命名为QQ_tag_release_v1.0.0  

选中项目右键 “Team--> 分支/标记... ” 填写要打tag的版本号后点击”Next“

下一步”Next“

填写注释后点击”Finish“

这时svn资源库tag目录下会多了个QQ_tag_release_v1.0.0

同时trunk如火如荼进入v2.0.0开发,视屏聊天功能正在开发

看一下这时的svn资源库

此时经广大用户反馈v1.0.0的QQ登录后经常闪退,由于v2.0.0正在开发即使bug改了也发布不了。那么就要基于QQ_tag_release_v1.0.0的标记(tag)做一个分支(branch)命名为QQ_branch_bugfix_v1.0.0

选择项目右键 ”Team“-->”切换(S...)“ 选择tags的QQ_tag_release_v1.0.0

更改路径后点击”OK“

已经切换到标记的QQ_tag_release_v1.0.0

接下来要以QQ_tag_release_v1.0.0 为基础创建一个branch名为QQ_branch_bugfix_v1.0.0并基于这个分支快速进行BUG修改

选中项目右键 “Team--> 分支/标记... ” 点击 ”浏览...“ 选择branches目录

填写要创建分支(branch)名为 ”QQ_branch_bugfix_v1.0.0“ 后点击 ”Next“

点击”Next“

填写注释后选中 ”切换工作复本为新的分支/标记“ 后 点击 ”Finish“

看下工作空间的和svn资源库的变化

在branch分支名为 ”QQ_branch_bugfix_v1.0.0“ 中修改bug

提交修改bug后的代码

提交后

闪退bug已经修改可以提供给用户使用了,接下来要再打一个tag命名为 ”QQ_tag_release_v1.0.1“

选中名为”QQ_branch_bugfix_v1.0.0“ 的分支项目右键 “Team--> 分支/标记... ” 点击 ”浏览...“ 选择tags目录

填写要创建标记(tag)名为 ”QQ_tag_release_v1.0.1“ 后点击 ”Next“

点击”Next“

填写注释信息后点击”Finish“

来看看资源库中有什么变化,tags目录下多了一个名为”QQ_tag_release_v1.0.1“ 的标记

--------------------------------------------------------------------------------------------------------------------------------------------

下面演示 将 分支(branches) 合并到 主干(trunk)

根据需要决定将分支名为 ”QQ_branch_bugfix_v1.0.0“ 的branch 合并(Merge)并入主干(trunk)。 

步 骤:

1. 要想将分支合并到主干,首先需要切换到主干。
在项目上面点右键,选择Team — 切换,URL地址为主干的访问路径

(略过。。。 上面有)

2. 在项目上面点右键,选择 ”Team“--> ”合并(M)...“ ,选中“Reinitegrate a branch”。

3. 选择要合并到主干的分支”QQ_branch_bugfix_v1.0.0“

4. 点击”Finish“ 结束合并

5. 点击”OK“

6. 如果想要撤销合并选中项目右键”Undo merge...“ 

 7. trunk中的qq项目下就会多了从分支”QQ_branch_bugfix_v1.0.0“里Merge合并的代码

8. 提交合并后的代码

9. 提交后如下

--------------------------------------------------------------------------------------------------------------------------------------------

一般的,我们的所有的开发都是基于trunk进行开发,当一个版本/release开发告一段落(开发、测试、文档、制作安装程序、打包等)结束后,代码处于冻结状态(人为规定,可以通过hook来进行管理)。此时应该基于当前冻结的代码库,打tag。当下一个版本/阶段的开发任务开始,继续在trunk进行开发。
此时,如果发现了上一个已发行版本(ReleasedVersion)有一些bug,或者一些很急迫的功能要求,而正在开发的版本(DevelopingVersion)无法满足时间要求,这时候就需要在上一个版本上进行修改了。应该基于发行版对应的tag,做相应的分支(branch)进行开发。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在 Linux 上使用 SVN 创建主干分支是非常简单的。以下是创建主干分支的基本步骤: 1. 首先,确保你已经安装了 SVN 客户端工具。如果没有安装,可以使用以下命令进行安装: ``` sudo apt-get install subversion ``` 2. 创建一个新的 SVN 仓库。可以使用以下命令在指定路径下创建一个新的仓库: ``` svnadmin create /path/to/repository ``` 3. 在仓库中创建主干trunk)目录。可以使用以下命令创建一个名为 "trunk" 的目录: ``` svn mkdir file:///path/to/repository/trunk -m "Creating trunk directory" ``` 4. 创建分支branches)目录。可以使用以下命令创建一个名为 "branches" 的目录: ``` svn mkdir file:///path/to/repository/branches -m "Creating branches directory" ``` 5. 现在你已经创建了主干分支目录,可以将你的项目代码导入主干目录。假设你的代码位于 /path/to/project 目录下,可以使用以下命令导入代码: ``` svn import /path/to/project file:///path/to/repository/trunk -m "Initial import of project code" ``` 6. 接下来,你可以在分支目录下创建一个新的分支。假设你要创建一个名为 "feature-branch" 的分支,可以使用以下命令: ``` svn copy file:///path/to/repository/trunk file:///path/to/repository/branches/feature-branch -m "Creating feature branch" ``` 7. 现在你已经成功创建了主干分支。你可以在主干上进行主要的开发工作,而在分支上进行特定功能的开发。 以上就是在 Linux 上使用 SVN 创建主干分支的基本步骤。希望对你有所帮助!如果你有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值