18.5. ソースの同期

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

インターネット接続または電子メールを使用して、FreeBSD プロジェクトのソースのある一部分または全体の最新を追いかける方法は色々あります。 基本的なサービスは SubversionCTM です。

警告:

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

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

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

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

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

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

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