A.3. Subversion を使う
戻る〓 | 付録A FreeBSD の入手方法 | 〓次へ

## A.3. Subversion を使う

### A.3.1. はじめに

2012 年 7 月から、FreeBSD はすべてのソースコード、ドキュメント、Ports Collection を管理するバージョン管理システムに Subversion を使っています。

### 注記:

一般的には Subversion は開発者向けのツールです。 ユーザは、FreeBSD のベースシステムのアップデートに `freebsd-update` (「FreeBSD Update」)、 Ports Collection のアップデートには `portsnap` (「Ports Collection の利用」) を使うことを好むでしょう。

この節では、FreeBSD システムへの Subversion のインストール方法、および FreeBSD リポジトリをローカルに作成する方法について説明します。 さらに Subversion を利用するための情報についても紹介します。

### A.3.2. ルート SSL 証明書

security/ca_root_nss をインストールすることで、 Subversion は、 HTTPS リポジトリサーバを検証できます。 ルート SSL 証明書は、 port からインストールできます。

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

または package からインストールしてください。

    # pkg install ca_root_nss

### A.3.3. Svnlite

FreeBSD には、Subversion より軽い `svnlite` がインストールされています。 Subversion の port または package は、 Python もしくは Perl API が必要な時や、 最新の Subversion を使用したい時のみ必要となります。

通常の Subversion と、 `svnlite` との違いは、 使用する時のコマンド名が異なるだけです。

### A.3.4. インストール

`svnlite` を利用できない場合や、 フルバージョンの Subversion を使いたいのであれば、 事前に Subversion をインストールしておく必要があります。

Subversion は Ports Collection からインストールできます。

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

package を使って Subversion をインストールすることもできます。

    # pkg install subversion

### A.3.5. Subversion の実行

ローカルディレクトリにソースコードをダウンロードするには、 `svn` コマンドを使ってください。 このディレクトリにあるファイルを、 ローカル作業コピー と呼びます。

### 警告:

`checkout` をはじめて使う前に、 ローカルディレクトリを移動するか削除してください。

`svn` 以外の方法で用意されたディレクトリでチェックアウトすると、 すでに存在するファイルと、 リポジトリから持ってきたファイルとの間で衝突が起きてしまいます。

Subversion では、リポジトリの指定に `protocol://hostname/path` 形式の URL を用います。 以下に記載されているように、 アクセスする FreeBSD リポジトリは、パス (path) の最初で指定します。 リポジトリは 3 つあります。 `base` は FreeBSD ベースシステムのソースコード、 `ports` は Ports Collection、 そして `doc` はドキュメントのリポジトリです。 たとえば、 `https://svn.FreeBSD.org/ports/head/` という URL は、`https` プロトコルによる ports リポジトリのメインブランチを示しています。

以下のように入力して、リポジトリからチェックアウトしてください。

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

ここで、`repository`, `branch` および `root` は以下のとおりです。

- `repository` には、 プロジェクトリポジトリの `base`, `ports` または `doc` のどれかひとつを指定します。

- `branch` は、使うリポジトリによります。 `ports` および `doc` では、ほとんどの変更が `head` ブランチで行われます。 `base` リポジトリでは、`head` ブランチで -CURRENT の最新バージョンを管理しています。 -STABLE ブランチの最新バージョンは、 9.`x` は `stable/9`, そして 10.`x` は `stable/10` で管理しています。

- `lwcdir` は、 指定したブランチの中身が置かれるターゲットのディレクトリです。 通常 `ports` は `/usr/ports`、 `base` は `/usr/src`、 そして `doc` では `/usr/doc` と指定します。

以下の例では、Ports Collection を HTTPS プロトコルを使って、 FreeBSD リポジトリからチェックアウトします。 そしてそれらは、 `/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` を設定して `update` ターゲットを使ってください。 たとえば、`/usr/src` をアップデートするには、以下のようにしてください。

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

### A.3.6. Subversion ミラーサイト

FreeBSD Subversion リポジトリは、

    svn.FreeBSD.org

です。これは、公にアクセス可能なミラーネットワークで、 GeoDNS を用いて適切なバックエンドサーバを選択しています。 ブラウザを用いて FreeBSD の Subversion リポジトリを参照するには、https://svnweb.FreeBSD.org/ を利用してください。

HTTPS は推奨されているプロトコルです。 自動的に証明書を検証するために、security/ca_root_nss port をインストールする必要があります。

### A.3.7. より詳しい情報

Subversion の利用に関する他の情報は、 Version Control with Subversion や Subversion Documentation といった 「Subversion Book」 をご覧ください。

戻る〓 | 上に戻る | 〓次へ
A.2. FTP サイト〓 | ホーム | 〓A.4. rsync を使用する

本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。