创建并控制“源代码控制系统”(SCCS)文件。
admin { -n -i[FileName ] } [ -a { User | GroupID } ] ... [ -f HeaderFlag[Value ] ... ] [ -r SID ] [ -t FileName ] [ -m ModificationRequestList ] [ -y[Comment ] ] File ...
注:不要在标志和可选的(括在中括号中)变量之间留有空格。
admin [ -a { User | GroupID } ] ... [ -e { User | GroupID } ] ... [ { -d HeaderFlag | -f HeaderFlag[Value ] ... } ] [ -m ModificationRequestList ] [ -t[FileName ] ] [ -y[Comment ] ] File ...
注:不要在标志和可选的(括在中括号中)变量之间留有空格。
admin -h File ...
admin -z File ...
admin 命令创建新的“源代码控制系统”(SCCS)文件或在现有的 SCCS 文件中更改指定的参数。
admin 命令可以更改控制 get 命令如何构建您能编辑的文件的参数。这些参数还能设置有关谁可以访问此文件以及可以编辑文件的哪个版本的条件。
如果 File 参数指定的文件存在,则 admin 命令修改标志指定的文件。如果此文件不存在,且您提供了 -i 或 -n 标志,则 admin 命令就创建一个新的文件并提供未指定标志的缺省值。
如果为 File 参数指定了目录名称,则 admin 命令就在该目录中的所有 SCCS 文件上执行请求的操作。所有 SCCS 文件的文件名称前面均包含 s. 前缀。如果对 File 参数使用 -(减号),则 admin 命令读取标准输入并将每行解释为是 SCCS 文件名称。文件结束字符结束输入。
要创建文件,您必须具有在此目录中的写权限。所有 SCCS 文件名称必须具有格式 s.Name。使用只读许可权来创建新的 SCCS 文件。admin 命令写至临时“x 文件”,此文件调用 x.Name。如果它已经存在,则“x 文件”和原始 SCCS 文件具有相同的许可权。如果 admin 命令必须创建新文件,则“x 文件”是只读的。admin 命令成功完成后,“x 文件”更改为 SCCS 文件的名称。这确保了只有当 admin 命令在运行时未检测到任何错误,才对 SCCS 文件进行更改。
包含 SCCS 文件的目录应使用许可代码 755(所有者的读、写和执行许可,组成员和其它人的读和执行许可)来创建。SCCS 文件本身应创建为只读文件(444)。由于这些许可,只有所有者可以使用非 SCCS 命令来修改 SCCS 文件。如果一个组可以访问并修改 SCCS 文件,则目录应包含组的写许可权。
admin 命令还使用临时锁文件(称为 z.Name)来防止不同用户对 SCCS 文件的同时更新。
可以按任何顺序输入标志和输入文件名称。所有标志适用于所有文件。不要在标志和可选的变量(括在中括号中的变量)之间留有空格。报头标志可以用 -f 标志设置并用 -d 标志取消设置。报头标志控制用 get 命令创建的“g 文件”的格式。
-a User 或 -a GroupID | 将指定用户添加到可以对 SCCS 文件进行成组更改(增量)的用户的列表中。User 的值可以是用户名或组标识。指定组标识和指定该组中所有用户的名称是一样的。可以在单个 admin 命令行上指定一个以上的 -a 标志。如果 SCCS 文件包含空的用户列表,则任何人都可以添加增量。如果文件有用户列表,必须在列表中包含此文件的创建者以使该创建者可以对文件进行增量操作。如果 User 或 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 [Comment] | 将指定的注释插入初始增量,此方式与 delta 命令的做法相同。仅当创建 SCCS 文件时才可使用此标志。如果不指定注释,则 admin 命令将插入以下格式的一行:
登录时创建的日期和时间 YY/MM/DD HH:MM:SS 注释可包含 MBCS(多字节字符集)字符。不要在标志和 FileName 变量之间留有空格。 |
-z | 重新计算 SCCS 文件的校验和并将其存储在 SCCS 文件的第一行(请参阅 -h 标志)。
注意:在已毁坏的文件上使用带有 -z 标志的 admin 命令可以防止以后检测到此损坏。只有 SCCS 文件因为严重错误而通过非 SCCS 命令来更改时,才应使用此标志。 |
File | 指定 admin 命令创建或更改的文件名称。如果指定了 -(减号),则 admin 命令从标准输入读取。文件结束符结束标准输入。 |
以下列表包含了可以用 -f 标志设置或用 -d 标志取消设置的报头标志。报头标志控制用 get 命令创建的“g 文件”的格式。
b | 让您使用 get 命令的 -b 标志来创建分支增量。 |
c Number | 使 Number 变量成为 get -e 命令可以使用的最高发行版号。Number 变量的值必须大于 0 且小于或等于 9999。(缺省值是 9999。) |
d SID | 使 SID 变量成为提供给 get 命令的缺省增量。 |
f Number | 使 Number 变量成为 get -e 命令可以检索的最低发行版号。Number 变量必须大于 0 且小于 9999。(缺省值是 1。) |
i [String] | 将以下 get 或 delta 命令发出的参考性消息作为错误消息:
文件中没有 SCCS 标识关键字。(cm7) 在缺省此标志的情况下,此消息仅作为警告消息。如果未在存储于 SCCS 文件或在 SCCS 文件中的检索文本中找到 SCCS 标识关键字,则发出此消息(请参考 get 命令)。如果提供字符串,则关键字必须和给出的字符串完全匹配。此字符串必须包含关键字且没有嵌入的新行。 |
j | 允许同时执行多个 get 命令来编辑 SCCS 文件的同一个 SID。j 报头标志的使用允许对同一个版本的 SCCS 文件进行多个同时更新。 |
lList | (小写 L)锁定 List 变量指定的版本使其不能编辑,这样与这些发行版之一相对的 get -e 命令会失败。此列表具有以下语法:
<List> : : = <Range> | <List> , <Range> <Range> : : = SID | a |
m Module | 用 Module 变量代替 get 命令检索的 SCCS 文本文件中 67 关键字的所有具体值。缺省 Module 变量是不带 s. 前缀的 SCCS 文件的名称。module 名称可以包含 MBCS(多字节字符集)字符。 |
n | 当在新的发行版中添加增量时,使 delta 命令在任何跳过的发行版中创建空的增量。例如,如果在增量 2.7 后增加增量 5.1,则发行版 3 和 4 将是空的。发行版 3 和 4 将作为 s. 文件的增量表中的空增量条目来创建。最终生成的空增量可以作为构建分支增量的点。如果没有此标志,则跳过的发行版不会出现在 SCCS 文件中。 |
q Text | 用指定文本代替 get 命令检索的 SCCS 文本文件中 关键字的所有具体值。 |
t Type | 用指定类型代替 get 命令检索的“g 文件”的所有 关键字。 |
v [Program] | 使 delta 命令提示“修改请求”(MR)号作为创建增量的原因。Program 变量指定 MR 号有效性检验程序的名称。如果在 SCCS 文件中设置 v 标志,则还必须使用 -m 标志,即使其值是空的。此程序的名称可以包含 MBCS(多字节字符集)字符。 |
虽然 SCCS 提供一些错误保护,您可能需要恢复意外受损的文件。此损害可能由于系统故障、操作程序错误或未使用 SCCS 命令修改 SCCS 文件而引起。
SCCS 命令使用校验和来确定最近一次使用文件后是否对其进行过修改。唯一处理受损文件的 SCCS 命令是和 -h 或 -z 标志一起使用的 admin 命令。-h 标志指示 admin 命令将存储于 SCCS 文件报头中的校验和与计算所得的校验和进行比较。-z 标志指示此命令重新计算校验和并将它存储在文件报头中。
该命令返回以下退出值:
0 | 成功完成。 |
>0 | 发生错误。 |
这些示例使用名为 test.c 的虚构的文本文件和编辑器(比如 ed)来编辑文件。
$ admin -n s.test.c
使用带有 -n 标志的 admin 命令来创建空的 SCCS 文件。
$ admin -itest.c s.test.c 在文件中没有 SCCS 标识关键字(cm7) $ ls s.test.c test.c
如果使用 -i 标志,则 admin 命令将从指定文件创建增量 1.1。创建了增量 1.1 以后,重命名原始文本文件,这样它就不会干扰 SCCS 命令了:
$ mv test.c back.c
消息:文件中没有 SCCS 标识关键字(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 开始。
$ admin -itest.c -r3 s.test.c
要将更改 SCCS 文件的许可权限制到一个特定的用户标识集,请通过使用 admin 命令的 -a 标志来列出 SCCS 文件的用户列表中的用户标识或组标识号码。此标志可能在命令行上多次出现。这些标识随后会出现在 SCCS 文件报头中。如果未用 -a 标志来限制访问,则所有的用户标识都可以更改 SCCS 文件。
$ admin -adan s.test.c
$ admin -h s.file1 s.file2 ... $ admin -h directory1 directory2 ...
如果 admin 命令找到一个文件,其中计算的校验和不等于在 SCCS 文件报头中列出的校验和,它将显示此信息:
ERROR [s. filename]: 1255-057 此文件受损。(co6)
如果文件受损,请尝试再次编辑此文件或读取备份副本。在修复此文件之后,请运行带有 -z 标志的 admin 命令和已修复文件的名称:
$ admin -z s.file1
此操作使用基于当前文件内容的新校验和来替换 SCCS 文件报头中旧的校验和。其它 SCCS 命令现在就可以处理此文件了。
/usr/bin/admin | 包含 SCCS 的 admin 命令。 |
delta 命令、ed 命令、get 命令、prs 命令、sccshelp 命令、what 命令。
sccsfile 文件格式。
AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 的 List of SCCS Commands。
AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 的 Source Code Control System (SCCS) Overview。