博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SVN 中的 truck、branch 和 tag
阅读量:6250 次
发布时间:2019-06-22

本文共 1292 字,大约阅读时间需要 4 分钟。

问题

使用 SVN 进行项目的版本管理时, truck(主干)、branch(分支) 和 tag(标签) 是如何区别?何时使用他们?

branch/tag

版本控制系统的一个特性是能够把各种修改分离出来放在开发品的一个分割线上。这条线被称为 branch。 branch 经常被用来试验新的功能,而不会对开发有编译错误的干扰。当新的功能足够稳定之后,开发品的 branch 就可以 merge(合并)回 主branch(trunk)。

版本控制系统的另一个特性是能够标记特殊的版本(例如某个发布版本),所以你可以在任何时候重新建立一个特定的构件和环境。这个过程被称作 tag。

Subversion 没有特殊的命令用于 branch 或 tag,而是使用所了所谓的“cheap copies(廉价拷贝)”。廉价拷贝类似于 UNIX 的硬链接,这意味着并不会在存储库中做一个完整的副本,而是创建了一个内部链接,用于指向一个特定的树/修订。这样, branch 或 tag 就能非常快的创建,几乎不会占用没有额外存储库的空间。

创建一个branch 或 tag

如果你用推荐的目录结构导入了一个工程,那么创建 branch 或 tag 就非常简单:

在你当前的工作副本中给你你想要复制的 branch 或 tag 选择一个目录,然后选择命令TortoiseSVNBranch/Tag...

默认的目标 URL 将会是你当前工作副本所处的源 URL。你必须给你的branch 或 tag 编辑一个新路径。来取代

http://svn.collab.net/repos/ProjectName/trunk

你可以使用这样的设置

http://svn.collab.net/repos/ProjectName/tags/Release_1.10

如果你忘记了你上一次使用的命名约定,可以用鼠标右键打开版本库浏览器来察看已经存在的版本库结构。

现在你必须选择要复制的源位置。在这里你有三个设置选项:

  • HEAD revision in the repository: 新 branch 直接从仓库中的 HEAD revision 里复制出来。不需要从你的工作副本中传输任何数据,这个 branch 的建立是非常快的。

  • Specific revision in the repository: 在仓库中直接复制建立一个新 branch 同时你也可以选择一个旧版本。假如在你上周发布了项目时忘记了做 tag ,这将非常有用。如果你记不起来版本号,通过点击鼠标右键来显示版本日志,同时从这里选取版本号。和上次一样不需要从你的工作副本中传输任何数据,这个 branch 建立起来是非常快的。

  • Working copy: 新的 branch 是一个完全等同于你的本地工作副本的一个副本。如果你更新了一些文件到你的工作副本的某个旧版本里,或者你在本地做出了修改,这些改变将准确无误的进入副本中。自然而然地这种综合的 branch 会包含正在从工作副本传输到版本库的数据,如果这些数据还不存在的话。

参考

转载地址:http://hrfsa.baihongyu.com/

你可能感兴趣的文章
Document对象中的一些重要的属性和方法(笔记)
查看>>
学习Raft算法的笔记
查看>>
[LeetCode]题解(python):053-Maximum Subarray
查看>>
SharePoint中的用户信息和检索的有关知识
查看>>
Linux系统在启动过程中grub引导文件丢失的解决方法
查看>>
day15-JavaScript条件语句和函数的定义
查看>>
使用acl网络通信库的 redis c++ 模块开发 redis 应用
查看>>
Geek的入门神器:micropython-能跑python的stm32开发板
查看>>
利用脚本获取mysql的tps,qps等状态信息
查看>>
Python Json数据排序
查看>>
[原创] zabbix学习之旅七:如何远程操作被监控机器
查看>>
第十一周编程总结
查看>>
PhoneURLConnectGEt
查看>>
darknet源码学习
查看>>
dl,dt,dd的用法
查看>>
外面的世界很精彩,然而等待你的人却可能已不在
查看>>
成为一名阿里P7Java架构师需要的技术准备(转载)
查看>>
华为oj 挑7
查看>>
【吴恩达机器学习】学习笔记——1.5无监督学习
查看>>
使用pjax实现类似github无刷新更改页面url
查看>>