訳: 岩崎 満 <iwasaki@jp.FreeBSD.org>
、1997 年 9 月
13 日
インターネット接続 (または電子メール) を使用して、 あなたの興味の対象によって FreeBSD プロジェクトのソースのある一部分または全体の最新を 追いかける方法は色々あります。 私たちが提供している基本的なサービスは Subversion、Anonymous CVS、CVSup と CTM です:
警告ソースツリーの一部を最新のものに更新することは可能です。 ただし、サポートされているアップデート手順は、 ソースツリー全体を最新のものに更新して、 ユーザランド (/bin や /sbin にあるような、ユーザが実行するプログラム全体のこと) およびカーネルのソースから再構築することのみであることに注意してください。 カーネルだけ、あるいはユーザランドだけというように、 ソースツリーの一部を更新した場合は、問題が生じることがよくあります。 この時に発生する問題はコンパイル時のエラーからカーネルパニック、 データの破壊とさまざまです。
Subversion, Anonymous CVS と CVSup は pull 同期モデルを採用しています。 Subversion の場合、ユーザ (または cron スクリプト) が svn を起動し、ファイルを最新状態にします。 Subversion は、 ローカルのソースツリーをアップデートする最も好ましい方法です。 cvsup および cvs も同様の原理で動作しますが、 Subversion への移行に伴い廃止されました。 届けられる更新情報はその時点の最新のものであり、 また必要な時にだけ取り寄せられます。 興味のある特定のファイルやディレクトリに限定して更新することも簡単にできます。 クライアント側のソースツリーの状態・ 設定ファイルの指定に従い、サーバによって更新情報が素早く生成されます。 本当にやむを得ない理由がない限り、同期システムとして、 Subversion を用いるべきです。 他の同期メカニズムは廃止されており、将来停止する予定です。
一方、CTM はあなたが持っているソースとマスタアーカイブ上に あるそれとの対話的な比較をおこないませんし、 あるいは向こう側から変更点を pull したりもしません。 そのかわりに、前回の実行時からの変更を認識するスクリプトが マスタ CTM マシン上で一日に数回実行され、 すべての変更を compress して通し番号を振り、 さらに電子メールで転送できるようにエンコードします (印字可能な ASCII キャラクタのみです)。受信した後は、 これらの “CTM のデルタ” は自動 的にデコード、検査してユーザのソースのコピーに変更を適用する ctm_rmail(1) によって処理可能となります。 この処理は CVSup や Anonymous CVS よりずっと効率 的であり、pull モデルというよりむしろ push モデルで あるため、私たちのサーバ資源の負荷は軽くなります。
もちろん他のトレードオフもあります。うっかりアーカイブ の一部を消してしまっても、CVSup は壊れた部分を検出して再構築してくれます。 CTM はこれをやってくれませんし、 Anonymous CVS はおそらく他の何よりも深く混乱してしまうことが多いでしょう。 もしソースツリーの一部を消してしまったら、(最新の CVS “ベースデルタ” から) 一からやり直し、 CTM か Anonymous CVS を使って悪い部分を消去し、再同期させることによって すべてを再構築しなければなりません。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で)
連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で)
送ってください。