18.6. ソースの同期

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