杜比环绕声 发表于 2009-02-18 13:02

访问FreeBSD的svn服务器

FreeBSD把源代码版本控制系统从cvs平滑转向svn,是一段时间的老新闻了,记得delphi博客上的很早的一篇博文,曾经介绍过在FreeBSD未决定平滑转向svn之前,FreeBSD一些开发人员对svn的态度。简单的说,svn在版本分支的管理上,的确是很有特点,从近几日浏览FreeBSD的svn服务器来看,从一个user的角度来说,在FreeBSD项目的透明度上的确有所提高,但对于熟悉kde svn服务器的user来说,FreeBSD在目录构架上有些自己的特点。FreeBSD在其上的努力,也给svn的使用提供了一个不同的范例:

1、svn服务器的地址:http://svn.freebsd.org

在这个地址上存在4个连接,

Roadmap 是 目录架构介绍,一个文本文件

SVN ViewVC browser (a little buggy, be careful please) 是源代码库的浏览界面,viewvc是一种类似websvn的浏览方式,可以浏览整个代码库,以及所有的提交事件,这种浏览方式一方面可以了解FreeBSD源代码库的整体结构,另一方面也可以观察所有的提交和修改。

SVN DAV tree 是FreeBSD源代码库的即时快照,通过这个连接可以访问代码库的当前状态

FreeBSD.org home 主页链接

2、FreeBSD代码库的分支

      head/   - equivalent of cvs HEAD revision.Exported to cvs.   相当于svn的thunk分支,简单的说就是current分支,通过这个分支可以访问到最新的current代码,目录结构和源代码树的目录结构相同

      stable/ - where the xxx-stable branches live.相当与svn的branch,简单的说就是FreeBSD的stable分支,通过这个分支可以访问到对应stable版的最新代码,目录按照stable x进行了细分,每个stable x里面包含着和源代码树同样的目录结构。

      release/ - where release branches live相当与svn的tags分支,简单的说就是FreeBSD的release分支,通过这个分支可以访问到release的代码,目录按照 release版本号进行划分。

      releng/ - where release engineering happens这个分支被称作release引擎,功能大致可以描述为“发行版准备分支”,例如FreeBSD 7.1 release这个版本,就是在releng展开,在达成release要求时,拷贝到release分支上去。个人理解,release版发布之前的beta版,rc版,就是在这上面进行的。

    这四个分支大体上这样的一种联系,head是current,用于最新的开发并提供测试,按照一定的计划,当current代码达到预定的目标时,提交并开启新的stable分支(也有直接到releng分支的)。releng分支是从stable分支分离出来的,作用是对代码进一步完善和修改,但不再引入新的特性,通过releng若干beta版,rc版的测试后,导入release分支,进行发布。releng分支在下一个版本提交前,进行已发布的release版修补(诸如安全漏洞),并提交到release分支。stable分支是生产适用分支,提供持续的功能改进和代码修补服务。

    除了这四个分支外,在FreeBSD的svn服务器上还有其他一些目录,但与FreeBSD源代码关系不大,就不做介绍了,感兴趣的可以去访问下。

    PS:以上对FreeBSD svn服务器分支的介绍,源自近日对svn服务器访问的小结,在理解上,尤其是在分支运作上,可能会存在理解上的偏差,所以不当之处还请谅解,错误之处欢迎指正 :-)

[ 本帖最后由 杜比环绕声 于 2009-2-18 13:35 编辑 ]

杜比环绕声 发表于 2009-02-18 13:26

Stable:
stable/2.0.5/
stable/2.1/
stable/2.2/
stable/3/
stable/4/
stable/5/
stable/6/
stable/7/

Releases:
release/2.0/   (branched from head/)
release/2.0.5/   (branched from releng/2.0.5/)
release/2.1.0/   (branched from stable/2.1/)
release/2.1.5/   (branched from stable/2.1/)
release/2.1.6.1/ (branched from stable/2.1/)
release/2.1.7/   (branched from stable/2.1/)
release/2.1.8/   (branched from stable/2.1/)
release/2.2.0/   (branched from stable/2.2/)
release/2.2.1/   (branched from stable/2.2/)
release/2.2.2/   (branched from stable/2.2/)
release/2.2.5/   (branched from stable/2.2/)
release/2.2.6/   (branched from stable/2.2/)
release/2.2.7/   (branched from stable/2.2/)
release/2.2.8/   (branched from stable/2.2/)
release/3.0.0/   (branched from stable/3/)
release/3.1.0/   (branched from stable/3/)
release/3.2.0/   (branched from stable/3/)
release/3.3.0/   (branched from stable/3/)
release/3.4.0/   (branched from stable/3/)
release/3.5.0/   (branched from stable/3/)
release/4.0.0/   (branched from stable/4/)
release/4.1.0/   (branched from stable/4/)
release/4.1.1/   (branched from stable/4/)
release/4.2.0/   (branched from stable/4/)
release/4.3.0/   (branched from stable/4/)
release/4.4.0/   (branched from releng/4.4/)
release/4.5.0/   (branched from releng/4.5/)
release/4.6.0/   (all below are from their releng/*)
release/4.6.1/
release/4.6.2/
release/4.7.0/
release/4.8.0/
release/4.9.0/
release/4.10.0/
release/4.11.0/
release/5.0.0/
release/5.1.0/
release/5.2.0/
release/5.2.1/
release/5.3.0/
release/5.4.0/
release/5.5.0/
release/6.0.0/
release/6.1.0/
release/6.2.0/
release/6.3.0/
release/7.0.0/

Release Engineering / Errata branches:
releng/ALPHA_2_0 (branched from head/)
releng/BETA_2_0(branched from head/)
releng/2.0.5   (branched from head/)
releng/4.3       (branched from stable/4/)
releng/4.4       (branched from stable/4/)
releng/4.5       (branched from stable/4/)
releng/4.6       (branched from stable/4/)
releng/4.7       (branched from stable/4/)
releng/4.8       (branched from stable/4/)
releng/4.9       (branched from stable/4/)
releng/4.10      (branched from stable/4/)
releng/4.11      (branched from stable/4/)
releng/5.0       (branched from head/)
releng/5.1       (branched from head/)
releng/5.2       (branched from head/)
releng/5.3       (branched from stable/5/)
releng/5.4       (branched from stable/5/)
releng/5.5       (branched from stable/5/)
releng/6.0       (branched from stable/6/)
releng/6.1       (branched from stable/6/)
releng/6.2       (branched from stable/6/)
releng/6.3       (branched from stable/6/)
releng/7.0       (branched from stable/7/)

lllaaa 发表于 2009-02-18 23:01

freebsd源代码里面有在windows下的非法文件名,无法用tortoisesvn在win下面checkout出完整的代码。cvs貌似没关系,遇到非法的也继续

axlrose 发表于 2009-02-25 22:03

FreeBSD 7.1 下面不知道如何使用起来,svn懂一些,能否介绍一下,代替原来的cvsup的升级方式

杜比环绕声 发表于 2009-02-25 22:56

原帖由 axlrose 于 2009-2-25 22:03 发表 http://bbs3.chinaunix.net/images/common/back.gif
FreeBSD 7.1 下面不知道如何使用起来,svn懂一些,能否介绍一下,代替原来的cvsup的升级方式

还不太清楚FreeBSD是否提供了类似csup或cvsup这样的工具来“无痛”更新svn服务器上的系统代码,平滑过渡估计需要一定的时间

kde桌面环境的kdesvn,是个不错的工具,我用它checkout,export系统代码很方便:mrgreen:

prolj 发表于 2009-02-25 23:02

直接 svn co 就可以,跟一般 svn 一样,要最新的还要经常 svn up ,如果有权限就 svn commit 。
NTFS 不支持大小写敏感就是:outu: ,这是微软特色:outu:

axlrose 发表于 2009-02-26 09:26

如果只是co代码这些就跟访问其他项目svn一样的了,这个以前小试过,不过svn远程访问的速度比较慢(相对git的速度感觉),初始化下载大项目中途 Ctrl + c 后不知道怎么恢复了
相信到时过渡后,能像csup那样升级的话,官方会相应的文档的
杜比兄第一篇delphi ? delphij ?

PS:发现杜比兄咋好像有N个blog,我在用抓虾慢慢抓 :mrgreen:

[ 本帖最后由 axlrose 于 2009-2-26 09:30 编辑 ]

杜比环绕声 发表于 2009-02-26 11:54

原帖由 axlrose 于 2009-2-26 09:26 发表 http://bbs3.chinaunix.net/images/common/back.gif
如果只是co代码这些就跟访问其他项目svn一样的了,这个以前小试过,不过svn远程访问的速度比较慢(相对git的速度感觉),初始化下载大项目中途 Ctrl + c 后不知道怎么恢复了
相信到时过渡后,能像csup那样升级的 ...

delphi是手误,少打了一个字母

svn访问速度还是可以的,快慢的因素也很多

关于博客,没N个那么夸张,技术方面的我以前用的是cu博客,后来也使用了cu提供的个人空间,内容大多是论坛的贴文,由于这两个博客系统对konq的兼容性不太好,也是因为我不喜欢那个“日历”,对这两个博客都不十分喜欢,blogspot解禁后,我开始使用现在这个博客,这个博客简单,对konq兼容非常好,免费的“风景幻灯片”可看之外还没广告,是我喜欢的风格,所以准备当blogspot的钉子户了,原来的那两个博客不再使用!

btw616 发表于 2012-11-05 00:14

好文,顶一下~!:D

btw616 发表于 2012-11-05 00:29

stable分支是生产适用分支,提供持续的功能改进和代码修补服务。

stable 应该也是开发分支吧,提交到 release 中的应该是生产适用的。个人见解。
页: [1] 2
查看完整版本: 访问FreeBSD的svn服务器