18.5. ソースの同期

訳: 岩崎 満 、1997 年 9 月 13 日

FreeBSD のソースの最新を追いかける方法は色々あります。 この節では、基本的なサービスである Subversion および CTM について説明します。

警告:

ソースツリーの一部を最新のものに更新することは可能です。 ただし、サポートされているアップデート手順は、 ソースツリー全体を最新のものに更新し、 /bin, /sbin といったユーザ空間で動作するもの、 およびカーネルソースを再構築することのみです。 ソースツリーの一部だけであったり、カーネルだけ、 もしくはユーザランドのプログラムだけを更新した場合は、 問題が生じることがよくあります。 この時に発生する問題はコンパイル時のエラーからカーネルパニック、 データの破壊とさまざまです。

Subversionpull 同期モデルを採用しています。 ユーザ (または cron スクリプト) が svn プログラムを起動し、 ローカルにあるソースを最新状態にします。 更新情報はその時点の最新のものであり、 いつダウンロードするかはユーザがコントロールするので、 Subversion はローカルのソースツリーをアップデートする好ましい方法です。 特定のファイルやディレクトリに限定して更新することも簡単にできます。 更新情報はサーバによって素早く生成されます。 Subversion によるソースの同期方法については、 Subversion を使う」 で説明されています。

一方、CTM はあなたが持っているソースとマスタアーカイブ上に あるそれとの対話的な比較をおこないませんし、 あるいは向こう側から変更点を pull したりもしません。 そのかわりに、前回の実行時からの変更を認識するスクリプトが マスタ CTM マシン上で一日に数回実行され、 すべての変更を compress して通し番号を振り、 さらに電子メールで、印字可能な ASCII キャラクタのみで転送できるようにエンコードします。 ダウンロードした後は、 これらの デルタ は、 自動的にデコード、検査してユーザのソースのコピーに変更を適用する ctm.rmail によって処理可能です。 この処理は Subversion よりずっと効率的であり、pull モデルというよりむしろ push モデルであるため、 サーバ資源の負荷は軽くなります。 CTM を用いたソースの同期方法については、 「CTM を使う」 をご覧ください。

Subversion であれば、 うっかりローカルのアーカイブの一部を消してしまっても、 壊れた部分を検出して再構築してくれます。 CTM はこれをやってくれません。 もしソースツリーの一部を消してしまい、 そしてバックアップを取っていないのであれば、最新の ベースデルタ を用いて、一からやり直し、 CTM を使ってすべてを再構築しなければなりません。

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

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

本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。