首页 技术 正文
技术 2022年11月19日
0 收藏 905 点赞 4,150 浏览 1393 个字

最近看了很多 Git 与 SVN 的比较,很多都说 SVN 做分支很慢,不知道是从何说起。有可能大家都不清楚,SVN 做分支的正确步骤,特此介绍一下。

SVN 服务器后台使用 Berkeley DB 数据库进行数据保存。当前版本、发行版本、分支版本,在 SVN 客户端处中一般只是当成普通目录。SVN 客户端有很多种,客户端处数据如何保存,没有明确的说法。

比如,SVN 版本库从客户端上看其根目录为:

http://zhegui-svn/svn

几个主要子目录为:

1) 当前开发主线目录 http://zhegui-svn/svn/trunk/
2) 之前正式发行版目录 http://zhegui-svn/svn/releases/
3) 之前或现在各分支版目录 http://zhegui-svn/svn/branches/
4) 每日构建目录 http://zhegui-svn/svn/builds/

创建分支,或创建发行版,只是一个目录复制操作。由于SVN服务器端的数据是保存在 Berkeley DB 数据库里,因此,目录复制,在数据库层面,只是保存一条“在某个目录下创建一个子目录,新的子目录的内容,等同于另一个目录的那个版本”信息。

那些认为 SVN 复制分支,需要复制整个目录里所有文件的人,或者说出“拉分支的时间较慢,因为拉分支相当于copy”之类话的,都可以从头学习数据库了。反正稍微熟悉一点数据库的一些基本概念的技术人员,都不会设计出“分支要在服务器上复制整个目录里所有文件”这么个逻辑来。

以下是操作步骤举例(使用的 SVN 客户端工具软件是 TortoiseSVN ):

SVN 创建发行版/分支版的步骤

之后选择目录复制的源头、源头目录版本(可以不用最新版,最新版可能有人新加了一个功能,还没做完)、目的地目录:

SVN 创建发行版/分支版的步骤

上述截图中,将项目的主开发目录 http://zhegui-svn/svn/trunk/zhegui_print_upload 对应版本 29423 ,复制到 http://zhegui-svn/svn/releases/zhegui_print_upload-v3.0,即完成了发行版本的服务器上复制功能。一般再大的项目,都是秒级完成。

SVN 创建发行版/分支版的步骤

实际的软件项目开发中,只有以下目录用得比较多:

1) 当前开发主线目录 http://zhegui-svn/svn/trunk/

以下目录用得比较少:

2) 之前正式发行版目录 http://zhegui-svn/svn/releases/
3) 之前或现在各分支版目录 http://zhegui-svn/svn/branches/
4) 每日构建目录 http://zhegui-svn/svn/builds/

这是因为,创建新发行版本,只是在 SVN 服务器上进行目录复制,相当于只是在Berkeley DB 数据库保存一条“在某个目录下创建一个子目录,新的子目录的内容,等同于另一个目录的那个版本”信息。

那把这句话保存在一个文本文件中,也不费什么事。

同理,每日构建目录的存在意义,也不大。

另一方面,如果是软件产品类开发,有多个不同客户,可能分别进行 bug 修复,则仍有必要使用发行目录:

2) 之前正式发行版目录 http://zhegui-svn/svn/releases/

希望以上介绍,能帮助到大家。

———————————

本文欢迎转载,转载请注明来源:https://www.cnblogs.com/jacklondon/

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,494
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295