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> まで電子メールを (英語で) 送ってください。