A.3. 使用Subversion

A.3.1. 介绍

自2012年7月起,FreeBSD储存所有FreeBSD的源码、文件与Port套件集均使用Subversion作为其唯一的版本控制系统。

注意:

Subversion只是一套开发人员工具。一般使用者可能会较喜欢使用freebsd-update第 23.2 节 “FreeBSD更新”)来更新FreeBSD基础系统及 portsnap第 4.5 节 “使用Port套件集”)来更新FreeBSD Port套件集。

本节将示范如何在FreeBSD系统安装Subversion以及使用它建立一个本地的FreeBSD档案库复本,也包含使用Subversion的其他信息。

A.3.2. 根SSL凭证

安装security/ca_root_nss可让Subversion能够验证HTTPS档案库服务器的身份。root SSL凭证可从Port安装:

# cd /usr/ports/security/ca_root_nss
# make install clean

或从套件:

# pkg install ca_root_nss

A.3.3. Svnlite

svnlite为轻量化版的Subversion,会随FreeBSD安装。Subversion的 Port 或 package 版本仅在要使用其 Python或 Perl API或想要使用最新版本 Subversion 时才需安装。

与正常Subversion唯一的差别只是指令名称改为svnlite

A.3.4. 安装

若无法使用svnlite或需要完整版本的Subversion就必须安装。

Subversion可从Port套件集安装:

# cd /usr/ports/devel/subversion
# make install clean

Subversion也可以以套件安装:

# pkg install subversion

A.3.5. 执行Subversion

要下载源码干净的复本到本地目录可使用svn。在此目录中的档案称作本地工作复本(Local working copy)

警告:

在第一次使用checkout前请先移动或删除目地现有的目录。

在现有非svn目录存在的情况下做取出(Checkout)的动作会导致现有档案与档案库中的档案发生冲突。

Subversion使用URL来指定档案库,使用的格式为protocol://hostname/path。路径的第一个部份为要存取的FreeBSD档案库,目前有三个档案库,base为FreeBSD基础系统源码、ports为Port套件集以及doc为说明文件。举例来说,URL https://svn.FreeBSD.org/ports/head/代表Port档案库的主要分支,使用https通信协定。

使用指令从指定的档案库取出(Checkout)源码如下:

# svn checkout https://svn.FreeBSD.org/repository/branch lwcdir

其中:

  • repository要是下列项目档案库其中之一:baseportsdoc

  • branch则依据使用的档案库来决定。portsdoc大部份的更新皆在head分支,而base则会将-CURRENT的最新版本存放在head下,-STABLE分支各自最新的版本则会放在stable/9(9.x)与stable/10(10.x)下。

  • lwcdir则是要存放指定分支内容的目标目录,通常ports会置于/usr/portsbase会置于/usr/src以及doc会置于/usr/doc

以下示例会使用HTTPS协定从FreeBSD的档案库取出Port套件集,并将本地工作复本放置于/usr/ports。若/usr/ports已存在,且不是由svn所建立的,记得要在取出之前重新命名或删除。

# svn checkout https://svn.FreeBSD.org/ports/head /usr/ports

由于首次取出的动作必须下载远端档案库中完整的分支,会需要花费一段时间,请耐心等候。

首次取出之后,往后要更新本地工作复本可以执行:

# svn update lwcdir

要更新上述示例所建立的/usr/ports可执行:

# svn update /usr/ports

因为只会传输有更新过的档案,更新的动作会比取出还要快速。

另一种在取出之后更新本地工作复本的方式是透过/usr/ports/usr/src以及/usr/doc目录所提供的Makefile。设定SVN_UPDATE并使用更新目标。例如要更新/usr/src

# cd /usr/src
# make update SVN_UPDATE=yes

A.3.6. Subversion镜像站点

FreeBSD SVN 仓库地址是:

svn.FreeBSD.org

这是一个可公开访问的镜像网络,使用 GeoDNS 选择适当的后端服务器。要通过浏览器查看 FreeBSDSubversion存储库, https://svnweb.FreeBSD.org/

HTTPS 是首选协议,但需要安装security/ca_root_nss软件包才能正常使用。

A.3.7. 取得更多资讯

有关使用 Subversion 的其他信息, 请参阅Subversion Book中标题为Version Control with Subversion的章节,或参阅Subversion Documentation

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.