2012 年 7 月から、FreeBSD はすべてのソースコード、ドキュメント、Ports Collection を管理するメインのバージョン管理システムに Subversion (svn) を使っています。
一般的には Subversion は開発者向けのツールです。 大部分のユーザは、FreeBSD のベースシステムのアップデートに FreeBSD Update、 Ports Collection のアップデートには Portsnap を使うべきでしょう。
Subversion では、リポジトリの指定に
protocol://hostname/path
形式の URL を用います。
以下に記載されているように、
ミラーサイトは異なる複数のプロトコルに対応しています。
アクセスする FreeBSD のリポジトリは、パス (path) の最初で指定します。
リポジトリは 3 つあります。
base
は FreeBSD ベースシステムのソースコード、
ports
は Ports Collection、
そして doc
はドキュメントのリポジトリです。
たとえば、
svn://svn0.us-east.FreeBSD.org/ports/head/
という URL は、svn
プロトコルによる svn0.us-east.FreeBSD.org
ミラー上の
ports リポジトリのメインブランチを示しています。
リポジトリの中身をチェックアウトできるよう、事前に Subversion をインストールしておく必要があります。 もし、すでに ports ツリーが用意してあれば、 以下のようにして Subversion をインストールできます。
#
cd /usr/ports/devel/subversion
#
make install clean
もし ports ツリーを利用できなければ、package から Subversion をインストールできます。
#
pkg_add -r subversion
もし、packages の管理に pkgng を使っているのであれば、かわりに以下のようにして Subversion をインストールできます。
#
pkg install devel/subversion
svn
コマンドを使って、
必要なリポジトリのソースコードを以下のようにしてダウンロードします。
このディレクトリにあるファイルを
ローカル作業コピー と呼びます。
すでにローカルディレクトリが存在していても、
それが svn
によって生成されたディレクトリでなければ、
チェックアウトする前に名前を変更するか、削除してください。
svn
以外の方法で用意されたディレクトリでチェックアウトすると、
すでに存在するファイルと、
リポジトリから持ってきたファイルとの間で衝突が起きてしまいます。
以下のように入力して、リポジトリからチェックアウトしてください。
#
svn checkout svn-mirror/repository/branch lwcdir
ここで、repository
,
branch
および root
は以下のとおりです。
svn-mirror
は、
Subversion
ミラーサイト のひとつの URL です。
repository
には、
プロジェクトのリポジトリ、すなわち base
,
ports
, または doc
のどれかひとつを指定します。
branch
は、使うリポジトリによります。
ports
および doc
では、ほとんどの変更が
head
ブランチで行われます。
base
リポジトリでは、head
ブランチで -CURRENT の最新バージョンを管理しています。
-STABLE ブランチの最新バージョンは、
8.x
は stable/8
,
9.x
は stable/9
,
そして
10.x
は stable/10
で管理しています。
lwcdir
は、
指定したブランチの中身が置かれるターゲットのディレクトリです。
通常 ports
は /usr/ports
、
base
は /usr/src
、
そして doc
では /usr/doc
と指定します。
以下の例では、Ports Collection を western US リポジトリから
HTTPS プロトコルを使って、チェックアウトします。
そしてそれらは、
/usr/ports
のローカル作業コピーに置かれます。
もし /usr/ports
がすでに存在して、
それが svn
によって生成されたものでなければ、
チェックアウトする前に、名前を変更するか削除してください。
#
svn checkout https://svn0.us-west.FreeBSD.org/ports/head /usr/ports
初めてチェックアウトする際には、 リモートリポジトリのすべてのブランチをダウンロードするので時間がかかります。 どうぞ我慢してください。
初めてのチェックアウト後は、 以下を実行することでローカル作業コピーをアップデートできます。
#
svn update lwcdir
この例で作成された
/usr/ports
をアップデートするには、
以下のようにしてください。
#
svn update /usr/ports
アップデートはチェックアウトにくらべ、 変更点のあるファイルのみが転送されるので高速です。
チェックアウト後、ローカル作業コピーをアップデートするもうひとつの方法は、
/usr/ports
,
/usr/src
または
/usr/doc
ディレクトリの
Makefile
で提供されています。
SVN_UPDATE
を設定して
update
ターゲットを使ってください。
たとえば、/usr/src
をアップデートするには、以下のようにしてください。
#
cd /usr/src
#
make update SVN_UPDATE=yes
Subversion の利用に関する他の情報は、Version Control with Subversion や Subversion Documentation といった 「Subversion Book」 をご覧ください。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。