EN JA
RCSFILE(5)
RCSFILE(5) FreeBSD File Formats Manual RCSFILE(5)

名称

rcsfile - RCS ファイルの書式

解説

RCS ファイルの内容は、以下の文法に基づき記述されます。

テキストは、フリーフォーマットであり、文字列中のスペース、バックスペース、タブ、改行、垂直タブ、改頁、復帰 (まとめて、 空白類 と呼びます) は、意味を持ちません。例外として、id, num, sym 内では、空白類があってはならず、 RCS ファイルは、改行で終わらなければなりません。

文字列は、 @ で括られます。文字列が @ 自身を含む場合、2 重化されなければならず、それ以外は、任意のバイナリデータを含むことができます。

以下、簡便のためにメタ文法を用います。 `|' (縦棒) は、選言を分けます。 `{' と `}' は、省略可能な句を括ります。 `{' と `}*' は、0 回以上繰り返される句を括ります。 `{' と `}+' は、1 回以上繰り返される句を括ります。終端記号は、 ボールド体 (太字) で、非終端記号は、 イタリック体 (斜体) で表記します。


rcstext ::= admin { delta}* desc { deltatext}*

admin ::= head { num} ;
{ branch { num} ; }
access { id}* ;
symbols { sym : num}* ;
locks { id : num}* ; { strict ;}
{ comment { string} ; }
{ expand { string} ; }
{ newphrase }*

delta ::= num
date num;
author id;
state { id} ;
branches { num}* ;
next { num} ;
{ newphrase }*

desc ::= desc string

deltatext ::= num
log string
{ newphrase }*
text string

num ::= { digit | .}+

digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

id ::= { num} idchar { idchar | num}*

sym ::= { digit}* idchar { idchar | digit}*

idchar ::= special を除く任意の可視文字 (visible graphic character)

special ::= $ | , | . | : | ; | @

string ::= @{任意の文字、ただし @ は、2 重化される}* @

newphrase ::= id word* ;

word ::= id | num | string | :

識別子は、大文字小文字を区別します。キーワードは、小文字のみです。キーワードと識別子の集合は、重複可能です。ほとんどの環境では、RCS は、ISO 8859/1 エンコーディングを用います。このコードでは、可視文字のコードが 041-176 と 240-377 で、空白類の文字のコードが 010-015 と 040 です。

date キーワードの後に現れる日時は、 Y.mm.dd.hh.mm.ss という書式で、それぞれ Y が年を、 mm が月 (01-12) を、 dd が日 (01-31) を、 hh が時 (00-23) を、 mm が分 (00-59) を、 ss が秒 (00-60) を表します。 Y は、1900 年から 1999 年までは、年の最後の 2 桁で表し、それ以降は、年のすべての桁で表します。日付は、グレゴリオ暦を用い、時刻は、UTC (協定世界時) で表します。

文法中の newphrase は、RCS ファイル書式の今後の拡張のために予約されています。すでに使われているキーワードでは、 newphrase は、始まりません。

複数の delta ノードが集まって、木を形成します。単一の組からなる番号のノード (例えば 2.3, 2.1, 1.3 など) は、すべて幹 (trunk) であり、降順で next フィールドを通してリンクされています。 admin ノードの head フィールドは、このシーケンスの先頭 (head;すなわち最高位の組) を示します。 admin ノードの branch ノードは、ほとんどの RCS 操作が利用するデフォルトの枝 (もしくはリビジョン) を示します。もしこれが存在しなければ、幹の最高位の枝が用いられます。

2 n 個 ( n≥2) のフィールドからなる番号を持つ全 delta ノード (例えば 3.1.1.1, 2.1.2.2 など) は、次のようにリンクされます。すなわち、先頭の 2 n-1 個のフィールドの番号が等しい全ノードは、昇順で next フィールドを通してリンクされます。シーケンス中の delta ノードの番号の先頭 2 n-2 個分と等しい番号を持つ delta ノードは、そのシーケンスの分岐点と呼ばれます。ノードの branches フィールドは、そのノードが分岐点となっている全シーケンスに対し、最初のノード番号のリストを保持しています。このリストは、昇順で並べられています。

以下の図は、RCS ファイルの構成の例を示しています。


Head
|
|
v / --------- / /   /   | | /   / /   /   | 2.1 | /   / /   /   | | /   / /1.2.1.3  /1.3.1.1  | | /1.2.2.2  /1.2.2.1.1.1--------- --------- --------- --------- -------------
^ ^ | ^ ^
| | | | |
| | v | |
/   | --------- /   |
/   |   1.3 / /   |
/   ---------  / / -----------
/1.2.1.1    / /1.2.2.1---------  / ---------
^ | ^
| | |
| v |
| --------- |
|   1.2 / |
----------------------  /---------
  /
 /
|
|
v
---------
  1.1 /
  /
  /
 /


作者

Author: Walter F. Tichy, Purdue University, West Lafayette, IN, 47907.
 
Manual Page Revision: 79454; Release Date: 2001-07-09.
 
Copyright © 1982, 1988, 1989 Walter F. Tichy.
 
Copyright © 1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert.

関連項目

rcsintro(1), ci(1), co(1), ident(1), rcs(1), rcsclean(1), rcsdiff(1), rcsmerge(1), rlog(1)
 
Walter F. Tichy, RCS--A System for Version Control, Software--Practice & Experience 15, 7 (July 1985), 637-654.
2001-07-09 GNU