sccsfile 文件格式

用途

描述源代码控制系统 (SCCS) 文件的格式。

描述

SCS 文件是由以下逻辑部分组成的 ASCII 文件:

描述
校验和 除第一行中的字符以外的所有字符的逻辑和
增量表 有关每个增量的信息,包括类型, SCCS 标识 (SID) 编号,创建日期和时间以及有关增量的注释
用户名 允许在 SCCS 文件中添加或除去增量的用户的登录名,组名或数字组标识
头标志 定义某些 SCCS 命令如何使用 SCCS 文件的标志,或定义文件中标识关键字的值
注释 有关文件的描述性信息
主体 实际文本行与控制行混合
注: SCCS 文件中的几行以 ASCII SOH (标题开头) 字符 (八进制 001) 开头。 此字符称为 控制字符 ,在以下文本中以图形方式表示为 @ (at 符号)。 以下文本中描述的任何不以控制字符开头的行都包含源文件中的文本。 文本行不能以控制字符开头。

校验和

校验和是 SCCS 文件的第一行。 此行具有以下格式:

@h编号

校验和行中的控制字符和变量具有以下含义:

描述
@h 指定神奇数字 064001 八进制 (或 0x6801)。
编号 表示 SCCS 文件中所有字符的逻辑和 (不包括此行中的字符)。 每次使用 SCCS 命令更新 SCCS 文件时,都会重新计算该文件,并用于检测可能由非 SCCS 命令对 SCCS 文件进行的破坏性更改。

增量表

每次对 SCCS 文件进行一组更改 (称为增量) 时,增量表都会创建一个新条目。 每个条目都包含有关增量的描述性信息。 @s (at 符号,字母 s) 字符定义增量表条目的开头, @e (at 符号,字母 e) 字符定义条目的结尾。 对于创建的每个增量,存在以下格式的增量表条目:

@s NumberLinesInserted/NumberLinesDeleted/NumberLinesUnchanged
@d DeltaType SIDDate Time UserID Number PreNumber
@i NumbersIncluded . . .
@x NumbersExcluded . . .
@g NumbersIgnored . . .
@m ModificationRequestNumber
@c Comments . . .

增量表条目中的控制字符和变量具有以下含义:

描述
@s 指定每个条目的第一行,其中包含插入的行数,删除的行数以及与先前增量相比未更改的行数。
@d 指定每个条目的第二行,其中包含以下变量:
DeltaType
增量类型。 字母 d 指定正常增量; 字母 r 指定已通过 rmdel 命令除去的增量。
SID
增量的 SCCS 标识 (SID)。
日期
创建增量的日期,采用 YY/MM/DD 格式。
时间
创建增量的时间,采用 HH:MM: SS 格式。
UserID
与创建增量时的实际用户标识相对应的登录名。
编号
增量的序列号。
PreNumber
增量的先行作业的序列号。
@i 指示通过使用带有 -i 标志的 get 命令创建此增量时包含的增量的序列号。 此行可以包含多个增量数字,并且是可选的。
@x 指示通过使用带有 -x 标志的 get 命令从创建此增量中排除的增量的序列号。 此行可以包含多个增量数字,并且是可选的。
@g 指示在使用带有 -g 标志的 delta 命令创建此增量时忽略的增量的序列号。 此行可以包含多个增量数字,并且是可选的。
@m 指示与增量关联的修改请求 (MR) 编号。 在一个 SCCS 文件中可以有几个 MR 行,每个都包含不同的 MR 号。 这些行是可选的。
@c 与增量关联的注释行。 在 SCCS 文件中可以有几个注释行。 这些行是可选的。
@e 结束增量表条目。

用户名

文件的此部分包含可以向文件添加增量的用户的登录名,组名或数字组标识的列表。 名称和标识以换行符分隔。 此部分使用以下控制字符:

描述
@u 指示用户名列表开头的括号行。 此行显示在列表中的第一行之前。
@U 指示用户名列表末尾的花括号行。 此行显示在列表中的最后一行之后。

空列表允许任何用户进行增量。 使用带有 -a-e 标志的 admin 命令来更改列表。

头标志

标记控制命令并定义在 SCCS 内部使用的关键字。 头标志是使用带有各种标志的 admin 命令设置的。 每行的格式为:

@f Flag Text

标题标志部分中的控制字符和变量具有以下含义:

描述
@fb 分支。 允许使用 get 命令的 -b 标志来导致增量树中的分支。
@fc 天花板 定义可由 get 命令检索以进行编辑的从 0 到 9999 的最高发行版号。 此发行版号称为 上限 发行版号
@fd 缺省 SCCS 标识。 定义未使用 get 命令指定 SID 时要使用的缺省 SID。 如果未设置此标志,那么 get 命令将使用最近创建的增量。
@ff 地板 定义可由 get 命令检索以进行编辑的从 0 到 9999 的最低发行版号。 此发行版号称为 楼层 发行版号
@fi 标识关键字。 控制No ID keywords错误警告消息。 如果未设置此标志,那么消息仅为警告。 设置此标志时,缺少标识关键字会导致错误和增量失败。
@fj 联合编辑。 使 get 命令允许对同一基本 SID 进行并发编辑。
@fl 锁定释放。 定义无法使用 get 命令使用 -e 标志编辑的发行版列表。
@fm 模块名称。 定义替换 11 标识关键字的模块名称。 此值用于覆盖缺省值。
@fn 没有任何更改。 当创建新发行版的增量时,使 delta 命令为任何跳过的发行版插入空增量 (没有更改的增量条目)。 例如,增量 5.1 是在增量 2.1之后创建的,跳过发行版 3 和 4。 当省略此标志时,将从增量表中省略跳过的发行版。
@fq 用户定义的标志。 定义 标识关键字的替换。
@ft 程序的类型。 定义 标识关键字的替换。
@fv 程序名。 控制除增量创建注释之外的 MR 编号提示。 如果指定了值,那么它将定义 MR 编号有效性检验程序。

注释

当使用带有 -t 标志选项的 admin 命令从包含描述性文本的文件中获取注释时,该文件的内容将显示在注释部分中。 通常,注释部分包含整个文件用途的描述,并使用以下控制字符:

描述
@t 用于指示注释部分开头的括号行。 此行显示在第一个注释行之前。
@T 指示注释部分结束的括号行。 此行显示在最后一个注释行之后。

主体

主体由两种类型的行组成: 控制行和文本行。 控制行将文本行括在方括号中。 文本行包含针对特定版本的文件插入或删除的文本片段。 用于将一段文本括起来的控制行指示是插入还是删除了一段文本,以及在哪个版本中。 从 SCCS 文件创建特定版本的文件时,控制行将标识应该为该版本的文件添加或删除的文本片段。

控制行可以相互嵌套,因此文本的同一部分可以由几组控制行括起。 长 SCCS 文件的主体可能非常复杂。 但是, SCCS 命令提供了更好的方法来了解 SCCS 文件的不同版本。

描述
@I编号 指示插入控制行。 Number 变量指示与控制线的变化量相对应的序列号。 插入在此控制线与具有相同序列号的末端控制线之间的文本作为与相同序列号对应的增量的一部分插入。
@D编号 指示删除控制行。 Number 变量指示对应于控制线变化量的序列号由 Number 变量指示。 在此控制行与具有相同序列号的结束控制行之间删除的文本已作为与相同序列号对应的增量的一部分删除。
@E编号 指示结束控制线。 对应于控制线变化量的序列号由 Number 变量指示。 这指示要插入或删除的文本部分的末尾。

在文本中还包含特定于 SCCS 文件系统的标识关键字。 这些关键字表示有关 SCCS 文件的标识信息。 当使用不带 -e-k 标志的 get 命令时,这些关键字将被它们的值替换。 由于不同版本具有不同的标识信息,因此标识关键字为 SCCS 文件系统提供了一种简单的方法,以便为 get 命令所请求的任何版本的文件提供正确的标识信息。 关键字可用于提供多种类型的信息:

  • 版本标识信息:
    关键词
    %M% 模块名称; SCCS 文件中 m 头标志的值
    %I% SID (1100)
    %R% 解除
    %L% 级别
    %B% 分支
    %S% 序列
  • 时间和日期信息:
    关键词
    11月10日,24年 当前 get 命令的日期 (YY/MM/DD)
    2011年10月24日 当前 get 命令的日期 (MM/DD/YY)
    01:02:56 当前 get 命令的时间 (HH:MM: SS)
    2010年5月11日 创建最新应用增量的日期 (YY/MM/DD)
    2011年5月10日 创建最新应用增量的日期 (MM/DD/YY)
    06:12:56 创建 最新应用 增量的时间 (HH:MM: SS)
  • 名称信息:
    关键词
    /family/aix/vc/8/9/7/3/s.11 SCCS 文件名
    /family/aix/vc/8/9/7/3/s.11 SCS 文件的完整路径名
  • FLAG VALUES:
    关键词
    -q SCS 文件中 -q 头标志的值。
    -t 模块类型; SCCS 文件中 -t 头标志的值。
  • 行号:
    关键词
    562 当前行号。 此关键字标识程序输出的消息。 不应在每行上使用它来提供序号。
  • 构造 内容 字符串:
    关键词
    src/idd/en_US/files/aixfiles/sccsfile.ide, idaixfiles , idd71D 用于构造特定于其他操作系统的程序文件的 哪些内容 字符串的速记符号。 其值等于以下键字母:
    src/idd/en_US/files/aixfiles/sccsfile.ide, idaixfiles, idd71D = @(#)11<tab>1.14
    @ (#) 11 1.14@ (#) 另一个用于构造特定于此操作系统的程序文件的 哪些内容 字符串的速记符号。 其值为字符和键字母:

    @(#) 11 1.14@(#) = @(#) 11 1.14 @(#)

    @(#) 假设 命令识别的 4-character string @ (#) (at 符号,左括号,磅符号,右括号)。