admin 命令 (SCCS)
用途
创建并控制“源代码控制系统”(SCCS)文件。
语法
- 要创建新的 SCCS 文件
admin { -n -i[FileName ] } [ -a { User | GroupID } ] ... [ -f HeaderFlag[Value ] ... ] [ -r SID ] [ -t FileName ] [ -m ModificationRequestList ] [ -y[Comment ] ] File ...注:不要在标志和可选的(括在中括号中)变量之间留有空格。- 要修改现有 SCCS 文件
admin [ -a { User | GroupID } ] ... [ -e { User | GroupID } ] ... [ { -d HeaderFlag | -f HeaderFlag[Value ] ... } ] [ -m ModificationRequestList ] [ -t[FileName ] ] [ -y[Comment ] ] File ...注:不要在标志和可选的(括在中括号中)变量之间留有空格。- 检查损坏的 SCCS 文件
admin -h File ...- 要更正损坏的 SCCS 文件
admin -z File ...
描述
admin 命令创建新的“源代码控制系统”(SCCS)文件或在现有的 SCCS 文件中更改指定的参数。
admin 命令可以更改控制 get 命令如何构建您能编辑的文件的参数。 这些参数还可以设定谁可以访问文件以及可以编辑哪些文件版本的条件。
如果 File 参数指定的文件存在,那么 admin 命令修改标志指定的文件。 如果文件不存在,并且您提供了 "-i或 "-n标志,"admin命令会创建一个新文件,并为未指定的标志提供默认值。
如果为
File 参数指定了目录名称,那么 admin 命令就在该目录中的所有 SCCS 文件上执行请求的操作。 所有 SCCS 文件的文件名称前面均包含 s. 前缀。 如果在文件参数中使用 "-(减号),"admin命令将读取标准输入,并将每一行解释为 SCCS 文件的名称。 文件结束符结束输入。
要创建文件,您必须具有在此目录中的写许可权。 所有 SCCS 文件名称必须为 s.Name 格式。 使用只读许可权来创建新的 SCCS 文件。 admin命令写入一个临时 x 文件,并将其命名为 "x.。 如果存在,x 文件的权限与原始 SCCS 文件相同。 如果 admin 命令必须创建新文件,那么“x 文件”是只读的。 成功完成 "admin命令后,x 文件将移至 SCCS 文件名下。 这确保了只有当 admin 命令在运行时未检测到任何错误,才对 SCCS 文件进行更改。
包含 SCCS 文件的目录应以权限代码 755(所有者的读取、写入和执行权限,组员和其他人的读取和执行权限)创建。 SCCS 文件本身应创建为只读文件(444)。 由于这些许可,只有所有者可以使用非 SCCS 命令来修改 SCCS 文件。 如果一个组可以访问并修改 SCCS 文件,那么目录应包含组的写许可权。
admin命令还使用一个临时锁定文件(称为 "z.名称),以防止不同用户同时更新 SCCS 文件。
可以按任何顺序输入标志和输入文件名称。 所有标志适用于所有文件。 标志和可选变量(用括号括起来的变量)之间不要有空格。 标题标志可以用 "-f标志设置,也可以用 "-d标志取消设置。 标题标志控制着用 "get命令创建的 g 文件的格式。
标志
| 项 | 描述 |
|---|---|
| -a User 或 -a GroupID | 将指定用户添加到可以对 SCCS 文件进行成组更改(增量)的用户的列表中。 User 的值可以是用户名或组标识。 指定组标识和指定该组中所有用户的名称是一样的。 可以在单个 admin 命令行上指定多个 -a 标志。 如果 SCCS 文件包含空的用户列表,那么任何人都可以添加增量。 如果文件有用户列表,文件的创建者必须包含在列表中,创建者才能对文件进行删除。 如果用户 GroupID参数前有一个 (感叹号),那么拒绝指定用户进行增量操作的许可权。 例如,输入 "-a
!User。 |
| -d HeaderFlag | 使指定的报头标志在 SCCS 文件中不起作用。 可以仅用现有 SCCS 文件指定此标志。 还可以在单个 admin 命令中指定多个 -d 标志。 请参考随后的报头标志列表来获得受支持值的更多信息。 |
| -e User 或 -e GroupID | 从允许对 SCCS 文件进行删除的用户列表中删除指定用户。 指定组标识等同于指定该组共有的所有 User 名称。 您可以在单个 admin 命令行上指定多个 -e 标志。 |
| -f HeaderFlag[Value] | 激活 SCCS 文件中的指定报头标志和值。 可以在单个 admin 命令中指定多个报头标志。 有 12 种报头标志。 请参考随后的报头标志列表来获得受支持值的更多信息。 不要在 HeaderFlag 和 Value 变量之间留有空格。 |
| -h | 检查 SCCS 文件的结构,并将新计算出的校验和与存储在 SCCS 文件第一行的校验和进行比较。 当此校验和的值不正确时,文件已经被不正当修改或已损坏。 该标记可帮助您检测因不当使用非 SCCS 命令修改 SCCS 文件而造成的损坏,以及意外损坏。 -h 标志阻止写至文件,所以它取消了任何其他标志提供的效果。 如果返回表明文件已受损的错误消息,请使用 -z 标志来重新计算校验和。 然后再次使用 "-h标记测试文件是否已更正。 |
| -i[FileName ] | 从 FileName 变量获取新的 SCCS 文件的文本。 此文本是该文件的第一个增量的内容。 如果指定了 -i 标志但省略了文件名,那么 admin 命令将从标准输入中读取文本,直到它到达文件结束符为止。 如果不指定 -i 标志,但指定了 -n 标志,那么该命令创建空的 SCCS 文件。 admin 命令一次仅能创建一个包含文本的文件。 如果一次调用 "admin命令创建两个或多个 SCCS 文件,则必须使用 "-n标记,这样创建的 SCCS 文件将是空的。 FileName变量指定的文件的每一行不能超过 512 个字符。 文件名称可以包含 MBCS(多字节字符集)字符。 不要在标志和 FileName 变量之间留有空格。 |
| -m ModificationRequestList | 指定要插入 SCCS 文件作为创建初始增量的原因的“修改请求”(MR)列表。 空表可看作是有效的,这取决于所使用的验证程序。 必须设置 v 报头标志。 如果 v 报头标志有值(MR 号码验证程序的名称),那么 MR 号码是有效的。 如果 v 头标志未设置或 MR 验证失败, admin 命令将报错。 |
| -n | 创建新的空 SCCS 文件。 当不带 -i 标志使用 -n 标志时,创建的 SCCS 文件具有控制信息,但没有任何文件数据。 |
| -r SID | 指定要创建的 SCCS 标识字符串(SID)文件版本。 SID 变量接受具有四个级别的增量:发行版、级别、分支和顺序,例如:3.2.5.1。 如果仅指定发行版,那么 admin 命令会自动采用级别 1。 如果未指定 -r 标志,那么初始增量将变为发行版 1 级别 1 (即 1.1)。 有关指定 SID 的更多详细信息,请参考 get 命令中描述的“SID 确定”表。 如果您还指定了 -i 或 -n 标志,那么您只可以指定 -r 标志。 仅当创建 SCCS 文件时才可使用此标志。 |
| -t [FileName] | 从FileName变量指定的文件中获取 SCCS 文件的描述性文本。 如果在创建新的 SCCS 文件时使用了 -t 标志,那么必须提供文件名称。 在存在 SCCS 文件的情况下:
不要在标志和 FileName 变量之间留有空格。 |
| -y[评论] | 将指定的注释插入初始增量,此方式与 delta 命令的做法相同。 仅当创建 SCCS 文件时才可使用此标志。 如果不指定注释,那么 admin 命令将插入以下格式的一行:
注释可包含 MBCS(多字节字符集)字符。 不要在标志和 FileName 变量之间留有空格。 |
| -z | 重新计算 SCCS 文件的校验和并将其存储在 SCCS 文件的第一行(请参阅 -h 标志)。 请注意:在损坏的文件上使用带有 "-z标志的 "admin命令,可以防止将来检测到损坏。 只有在因严重错误而使用非 SCCS 命令更改 SCCS 文件时,才应使用此标记。
|
| 文件 | 指定 "admin命令创建或更改的文件名。 如果指定了 -(减号),那么 admin 命令从标准输入读取。 文件结束符结束标准输入。 |
- 标题标志
下面列出了可以用 "-f标记设置、用 "-d标记取消设置的页眉标记。 标题标志控制着用 "get命令创建的 g 文件的格式。
表 2. 标题标志 项 描述 b 使用 get 命令的 -b 标志创建分支三角洲。 c 编号 使Number变量成为 "get -e命令可以使用的最高版本号。 Number 变量的值必须大于 0 且小于或等于 9999。 (缺省值是 9999。) d SID 使SID变量成为 "get命令的默认 delta。 f 编号 使Number变量成为 "get -e命令可以获取的最低版本号。 Number 变量必须大于 0 且小于 9999。 (缺省值是 1。) i[字符串] 将以下 get 或 delta 命令发出的参考性消息作为错误消息:
在缺省此标志的情况下,此消息仅作为警告消息。 如果在 SCCS 文件中检索或存储的文本中未发现 SCCS 识别关键字(请参阅 "get命令),则会发出该信息。 如果提供字符串,那么关键字必须和给出的字符串完全匹配。 此字符串必须包含关键字且没有嵌入的新行。There are no SCCS identification keywords in the file. (cm7)j 允许同时执行多个 get 命令来编辑 SCCS 文件的同一个 SID。 j 报头标志的使用允许对同一个版本的 SCCS 文件进行多个同时更新。 l列表 (小写 L)锁定List变量指定的版本以防编辑,这样针对其中一个版本的 "get -e命令就会失败。 此列表具有以下语法:
其中列表中的字符<List> : : = <Range> | <List> , <Range> <Range> : : = SID | aa等同于为指定的 SCCS 文件指定所有发行版。m 模块 将 SCCS 文本文件中所有出现的 " 59关键字替换为模块变量,该文本文件由 "get命令获取。 缺省 Module 变量是不带s.前缀的 SCCS 文件的名称。 module 名称可以包含 MBCS(多字节字符集)字符。n 当在新的发行版中添加增量时,使 delta 命令在任何跳过的发行版中创建空的增量。 例如,如果在增量 2.7 后增加增量 5.1,那么发行版 3 和 4 将是空的。 发行版 3 和 4 将作为 s.文件的增量表中的空增量条目来创建。 最终生成的空增量可以作为构建分支增量的点。 如果没有此标志,那么跳过的发行版不会出现在 SCCS 文件中。q 文本 用指定文本替换 SCCS 文本文件中所有出现的 "关键字,该文件由 "get命令获取。 t 类型 用 get 命令替换 g 文件中所有 关键字的指定类型。 v[程序] 使 delta 命令提示“修改请求”(MR)号作为创建增量的原因。 Program 变量指定 MR 号有效性检验程序的名称。 如果在 SCCS 文件中设置 v 标志,那么还必须使用 -m 标志,即使其值是空的。 此程序的名称可以包含 MBCS(多字节字符集)字符。 - 查找损坏的 SCCS 文件
虽然 SCCS 提供一些错误保护,您可能需要恢复意外受损的文件。 造成这种损坏的原因可能是系统故障、操作错误或在未使用 SCCS 命令的情况下更改了 SCCS 文件
退出状态
本命令返回以下退出值:
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 成功完成。 |
| >0 | 发生错误。 |
示例
这些示例使用了一个名为test.c和一个编辑器(如 "ed)来编辑文件。
- 首先,创建一个普通的 SCCS 文件。 要创建名为
s.test.c的空 SCCS 文件,请输入:
使用带有 -n 标志的 admin 命令会创建一个空的 SCCS 文件。$ admin -n s.test.c - 要将现有的文本文件转换为 SCCS 文件,请输入:
如果使用 -i 标志,那么 admin 命令将从指定文件创建增量 1.1。 创建了增量 1.1 以后,重命名原始文本文件,这样它就不会干扰 SCCS 命令了:$ admin -itest.c s.test.c There are no SCCS identification keywords in the file (cm7) $ ls s.test.c test.c
信息 "$ mv test.c back.cThere are no SCCS identification keywords in the file (cm7)不表示错误。 当在文件中没有标识关键字时,SCCS 就会写此消息。 标识关键字是可置于 SCCS 文件中的变量。 这些变量的值提供了诸如日期、时间、SID 或文件名称的信息。 有关标识关键字的解释,请参阅 get 命令。 如果不存在标识关键字,那么 SCCS 会写此消息。 但是,如果在 "s.文件中设置了 "i头标志,该信息就会导致错误。 此标志由用户设置。给 SCCS 文件取任意名称,以 "
s.开头。 在前面的示例中,原始文件和 SCCS 文件具有相同的名称,但是这不是必需的。因为没有指定版本号,admin 命令给 SCCS 文件 1.1 的 SID。 SCCS 不使用数字 0 来标识增量。 因此,文件不能具有,诸如 1.0 或 2.1.1.0 的 SID。 所有新的发行版以级别 1 开始。
- 启动test.c文件的版本号为3.1,使用 "-r标志和 "admin命令,如下图所示,然后回车:
要将更改 SCCS 文件的权限限制在一组特定的用户 ID 上,可使用 "admin命令的 "-a标志在 SCCS 文件的用户列表中列出用户 ID 或组 ID 编号。 此标志可能在命令行上多次出现。 这些标识随后会出现在 SCCS 文件报头中。 如果未用 -a 标志来限制访问,那么所有的用户标识都可以更改 SCCS 文件。$ admin -itest.c -r3 s.test.c - 要限制用户 ID "
dan的编辑权限,请输入$ admin -adan s.test.c - 定期检查 SCCS 文件是否可能损坏。 最简单的方法是在所有 SCCS 文件或 SCCS 目录中运行带有 -h 标志的 admin 命令,如下所示:
如果 admin 命令找到一个文件,其中计算的校验和不等于在 SCCS 文件报头中列出的校验和,它将显示以下消息:$ admin -h s.file1 s.file2 ... $ admin -h directory1 directory2 ...
如果文件受损,请尝试再次编辑此文件或读取备份副本。 修复该文件后,运行带有 -z 标志和已修复文件名的 admin 命令:ERROR [s. filename]: 1255-057 The file is damaged. (co6)
此操作使用基于当前文件内容的新校验和来替换 SCCS 文件报头中旧的校验和。 其他 SCCS 命令现在就可以处理此文件了。$ admin -z s.file1
文件
| 项 | 描述 |
|---|---|
| /usr/bin/admin | 包含 SCCS admin 命令。 |