CTM(5) | FreeBSD File Formats Manual | CTM(5) |
名称
ctm — ソースコードミラーシステム解説
ctm は CTM デルタと呼ばれる特別のファイルフォーマットでデータを送ります。CTM デルタは制御行とデータ塊を含みます。各制御行は“CTM”という文字で始まり、CTM 文と制御データが続いて、文字 '\n' で終ります。
データ塊は常に先行する制御行に属して、その制御行の最後のフィールドにはデータ塊のバイト数が入っています。後に続く改行文字 '\n' が各データ塊に続き、この改行は塊には含まれずバイト数にも数えられません。
CTM 文は以下の形式をとります。
- _BEGIN version name number timestamp prefix
- これが CTM デルタファイル全体の始まりです。 version フィールドはプログラムのバージョンと一致しなければなりません (現在は 2.0)。 name は名前で number は CTM サービスの通し番号です。通し番号はファイル .ctm_status と照合され、そのデルタがすでに適用されていないかの確認に使われます。 timestamp はデルタ生成日時の年、月、日、時、分、秒を参考のために含みます (文字‘Z’が続いて UTC のタイムスタンプであることを示します)。 prefix フィールドは現在実装されていません。
- _END md5
- この文で CTM デルタは終了します。 md5 は全体のチェックサムでデルタ全体の MD5 チェックサムと照合されます。デルタ全体とは ``_END'' に続く空白 (0x20) 文字までのことです。
- FM name uid gid mode md5 count
-
ファイル
name を作成します。元のファイルは uid として
uid (数値、 10進) を、 gid として
gid (数値、10進) を、モードとして
mode (数値、8進) を、そして MD5 チェックサムとして
md5 を持ちます。
続く count バイトのデータが新しいファイルの内容です。
- FS name uid gid mode md5before md5after count
-
ファイル
name の内容を置き換えます。元のファイルは新しい uid として
uid (数値、10進) を、新しい gid として
gid (数値、10進) を、新しいモードとして
mode (数値、8進) を、古い MD5 チェックサムとして
md5before を、そして新しい MD5 チェックサムとして
md5after を持ちます。
続く count バイトのデータが新しいファイルの内容です。
ファイルを編集するためのコマンドがファイルサイズを超えてしまい置き換えの方が効率的な場合に、ファイルの置き換えが使われます。
- FN name uid gid mode md5before md5after count
- ファイル name を編集します。引数は上にある通りですが、データ部分には diff(1) の -n スクリプトを含み該当ファイルに適用されます。
- FR name md5
- ファイル name を削除します。対象ファイルの MD5 チェックサムが md5 と一致しなければなりません。
- AS name uid gid mode
- 元のファイル name の所有者を uid に、グループを gid に、そして/またはモードを mode に変更します。
- DM name uid gid mode
- ディレクトリ name が作成されます。元々、ディレクトリの所有者は uid、グループは gid、そしてモードは mode でした。
- DR name
- ディレクトリ name を削除します。
使用例
以下の使用例では、長い行は表示できるように改行してあります (バックスラッシュを付けてあります)。
CTM_BEGIN 2.0 cvs-cur 485 19950324214652Z . CTMFR src/sys/gnu/i386/isa/scd.c,v 5225f13aa3c7e458f9dd0d4bb637b18d CTMFR src/sys/gnu/i386/isa/scdreg.h,v e5af42b8a06f2c8030b93a7d71afb223 CTMDM src/sys/gnu/i386/isa/Attic 0 552 775 CTMFS .ctm_status 545 552 664 d9ccd2a84a9dbb8db56ba85663adebf0 \ e2a10c6f66428981782a0a18a789ee2e 12 cvs-cur 485 CTMFN CVSROOT/commitlogs/gnu 545 552 664 \ 5d7bc3549140d860bd9641b5782c002d 7fb04ed84b48160c9b8eea84b4c0b6e3 394 a6936 21 ache 95/03/24 09:59:50 Modified: gnu/lib/libdialog kernel.c prgbox.c Log: [...] CTM_END 74ddd298d76215ae45a077a4b6a74e9c
歴史
最初の試用は FreeBSD 1.1.5 で行われて、多くのバグと手法が出されました。 CTM システムは、 FreeBSD 2.1 で公開されました。作者
CTM システムは、 <phk@FreeBSD.org>によって設計、実装が行われました。このマニュアルページは、
<joerg@FreeBSD.org>によって書かれました。March 25, 1995 | FreeBSD |