kazmax - Linux で自宅サーバー

rcsfile - ファイルのフォーマットと規約の説明 - Linux コマンド集 一覧表

  1. 名称
  2. 解説
  3. 作者
  4. 関連項目

名称

rcsfile - RCS ファイルの書式

解説

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

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

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

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

2rcstext	::=	2admin {2delta}* 2desc {2deltatext}*
2admin	::=	3head	{2num}3;
		{ 3branch	{2num}3; }
		3access	{2id}*3;
		3symbols	{2sym 3: 2num}*3;
		3locks	{2id 3: 2num}*3;  {3strict  ;}
		{ 3comment	{2string}3; }
		{ 3expand	{2string}3; }
		{ 2newphrase }*

2delta	::=	2num
		3date	2num3;
		3author	2id3;
		3state	{2id}3;
		3branches	{2num}*3;
		3next	{2num}3;
		{ 2newphrase }*

2desc	::=	3desc	2string

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

2num	::=	{2digit | 3.}+

2digit	::=	30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39

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

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

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

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

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

2newphrase	::=	2id 2word* 3;

2word	::=	2id | 2num | 2string | 3:

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

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

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

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

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

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

                                  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  /
                                 \     /
                                  \   /
                                   \ /

作者

\$2 Author: Walter F. Tichy, Purdue University, West Lafayette, IN, 47907.
Manual Page Revision: (Rv; Release Date: (Dt.
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, r-A System for Version Control, "Software-Practice & Experience"15,7 (July 1985), 637-654.