创建指定版本的 SCCS 文件。
get [ -g ] [ -m ] [ -n ] [ -p ] [ -s ] [ -c Cutoff ] [ -iList ] [ -r SID ] [ -t ] [ -x List ] [ -w String ] [ -l [ p ] ] [ -L ] File ...
get [ -e ] [ -k ] [ -b ] [ -s ] [ -c Cutoff ] [ -i List ] [ -r SID ] [ -t ] [ -x List ] [ -l [ p ] ] [ -L ] File ...
get 命令读取“源代码控制系统(SCCS)”文件的指定版本,并根据指定的标志创建 ASCII 文本文件。然后 get 命令将每一个文本文件写入与原 SCCS 文件同名但不含 s. 前缀的文件(g 文件)。
标志与文件可按任意顺序指定,所有标志应用于所有指定的文件。如果为 File 参数指定一个目录,则 get 命令在该目录下以 s. 前缀开头的所有文件上执行请求的操作。如果指定 -(减号)给 File 参数,则 get 命令读取标准输入并将每行解释为 SCCS 文件名。get 命令继续读取输入,直到它读到文件结束符。
如果有效用户在包含 SCCS 文件的目录下具有写权限,而实际用户却没有,则当使用 -e 标志时只可以指定一个文件。
get 命令创建文件的只读版本和可编辑版本。当应用程序不要求改变文件内容时则应使用文件的只读版本。可编译源代码文件的只读版本。文本文件可从只读版本显示或打印出来。
在使用标识关键字时可编辑版本与只读版本之间的区别是很重要的。标识关键字是当 get 命令检索只读文件时扩展到一些文本值的符号。在可编辑版本中,不扩展关键字。标识关键字可出现在 SCCS 文件的任何位置。有关标识关键字的进一步信息,请参阅 prs 命令。
除了具有 s. 前缀的文件(s 文件),get 命令还创建多个辅助文件:g 文件、l 文件、p 文件 和 z 文件。这些文件由它们的标记(连字号前面的字母)标识。get 程序通过将 SCCS 文件名中前面的 s. 替换为适当的标记来命名辅助文件,g 文件 例外,它是通过除去 s. 前缀来命名。例如,名为 s.sample 的文件,辅助文件名应为 sample、l.sample、p.sample 和 z.sample。
这些文件服务于以下用途:
当使用 get 命令时,它显示正在访问的 SID 以及从 SCCS 文件所创建的行数。如果指定 -e 标志,则所要作的变动的 SID 出现在访问 SID 之后和创建行数之前。如果指定不止一个文件、目录或标准输入,则 get 命令在处理每个文件之前显示文件名。如果指定 -i 标志,则 get 命令列出在 Included 字之下包含的变化量。如果指定 -x 标志,则 get 命令列出在 Excluded 字下排除的变化量。
下表举例说明了 get 命令如何决定它所检索文件的 SID 以及暂挂 SID。“指定的 SID”列显示了用 -r 标志指定 SID 的不同方法。下两栏举例说明了可能存在的各种情况,包含 -b 标志是否与get -e 命令一起使用。“检索的 SID”列表示构成 g 文件的文件的 SID。“要创建的变化量的 SID”列表示当应用 delta 命令时将会创建的版本的 SID。
1 仅当-d(缺省 SID)标志在文件之中不存在时应用(请参阅admin 命令)。
2 mR 表示现有最高发行版本。
3 在新的发行版中第一个变化量的强制创建。
4 hR 是比指定的不存在的发行版本 R 低的现有的最高发行版本。
标识关键字
通过在每次标识关键字出现时替换它们的值把标识信息插入到从 SCCS 文件检索的文本之中。下列关键字可用于存储在 SCCS 文件中的文本:
-b | 指定要创建的 delta 在新分支中应该有一个 SID。新 SID 根据“SID 确定”表中给出的规则编号。可仅与 -e 标志一起使用 -b 标志。仅当想从叶增量(无后续作业的变化量)分支时才需要它。尝试在非叶增量上创建变化量会自动产生分支,即使未设置 b 头标志。如果在 SCCS 文件中不指定 b 头标志,get 命令将忽略 -b 标志,因为该文件不允许分支。 |
-c Cutoff | 指定切断的日期和时间,格式为 YY[MM[DD[HH[MM[SS]]]]]。get 命令不包含在 g 文件中指定切断后对 SCCS 文件所创建的变化量。Cutoff 变量中任何未指定项的值缺省为其最大许可值。这样,一个只指定了年份的切断日期与时间将指定该年的最后的一个月份、日、小时、分钟和秒。任意数量的非数字字符可分隔 Cutoff 变量日期和时间的两位项。这就允许用若干种方法指定日期和时间,如下所示:
-c85/9/2,9:00:00 -c"85/9/2 9:00:00" "-c85/9/2 9:00:00" |
-e | 表示正在创建的 g 文件将由用户通过应用 get 命令来编辑。之后由 delta 命令记录变化量。get -e 命令创建 p 文件以防止其他用户发出另一个 get -e 命令以及在 delta 命令运行之前于同一个 SID 上编辑第二个 g 文件。文件所有者可以通过使用带 -fj 标志的 admin 命令来允许在同一个 SID 上的联合编辑从而覆盖此限制。其他用户可在得到许可的条件下,通过不带 -e 标志的 get 命令获取只读副本。get -e 命令执行用顶、底和 SCCS 文件中授权用户列表来指定的 SCCS 文件保护。请参阅 admin 命令。
注:
如果意外破坏了用 get -e 命令创建的 g 文件,可以通过 get -k 命令重新创建该文件。 |
-g | 禁止 g 文件的实际创建。首先用 -g 标志创建 l 文件或验证特殊 SID 的存在。请不要将其与 -e 标志一起使用。 |
-i List | 指定要包含在 g 文件的创建之中的变化量列表。SID 列表格式由逗号分隔的各 SID 的组合以及由连字符分隔的两个 SID 表示的 SID 范围构成。可以用如下任一命令行来指定同一个 SID。
get -e -i1.4,1.5,1.6 s.file get -e -i1.4-1.6 s.file 可以通过上表所示的“指定的 SID”列中的任一形式来指定变化量的 SCCS 标识。get 命令解释部分的 SID,如“检索的 SID”列中所示。 |
-k | 禁止在 g 文件中用它们的值来替换标识关键字。-k 标志由 -e 标志来暗示。如果意外破坏了用 get -e 命令创建的 g 文件,可以通过重新发出 get 命令和 -k 标志来重新创建文件而不用 -e 标志。 |
-l[ p ] | 将变化量摘要写入到 l 文件中。如果指定 -lp,则变化量摘要写到标准输出,且 get 命令不创建 l 文件。用该标志来决定将哪些变化量用于创建当前正在使用的 g 文件。有关 l 文件的格式,请参阅 sccsfile 文件。另见 -L 标志。 |
-L | 将变化量摘要写到标准输出。指定 -L 标志与使用 -lp 标志相同。 |
-m | 在 g 文件每行文本之前写入将行插入到 SCCS 文件之中的变化量的 SID。格式为:
SID 制表符文本行 |
-n | 在 g 文件文本的每行之前写入 02 关键字的值。格式是 02 的值后跟水平制表符,后跟文本行。当同时使用 -m 和 -n 标志时,格式为:
02 值 制表符 SID 制表符 文本行 |
-p | 将从 SCCS 文件创建的文本写到标准输出并且不创建 g 文件。所有通常发送到标准输出的信息输出被发送到标准错误,除非指定 -s 标志和 -p 标志。这时,通常发送到标准输出的输出在任何地方都不会出现。 |
-r SID | 指定要创建的 SCCS 文件版本的 SCCS 标识字符串(SID)。SID 确定表显示创建的文件的版本并将暂挂变化量的 SID 显示为指定 SID 的函数。 |
-s | 禁止通常要写入到标准输出的所有输出。错误消息(写到标准错误输出),不受影响。 |
-t | 访问给定发行版本中创建的最新的变化量或为给定发行版本和级别创建的最新的变化量。 |
-w String | 用 String 的值替换 g 文件中不用于编辑的 src/idd/zh_CN/cmds/aixcmds2/get.htm, idaixcmds2, iddt9n52H, 0431B_IDDzhCN 关键字。 |
-x List | 排除 g 文件创建中指定的变化量列表。有关 SID 列表格式,请参阅 -i 标志。 |
此命令返回以下出口值:
0 | 成功完成。 |
>0 | 发生错误。 |
下列描述与示例说明了只读与可编辑版本文件之间的区别。
7/29/04 1.32
7/29/04 是当前日期的符号,1.32 是 SID 符号。当 get 命令检索可编辑文件时,它将符号留在文件之中,不执行文本值替换。
$ ls s.test.c $ get s.test.c 3.5 59 line $ ls s.test.c test.c
$ get -r1.3 s.test.c 1.3 67 lines $ get -r1.3.1.4 s.test.c 1.3.1.4 50 lines
$ get -r2 s.test.c 2.7 21 lines
$ get -r9 s.test.c 7.6 400 lines
$ get -t -r3 s.test.c 3.2.1.5 46 lines
$ ls s.test.c $ get -e s.test.c 1.3 new delta 1.4 67 lines $ ls p.test.c s.test.c test.c
工作文件为 test.c。如果编辑该文件并用 delta 命令保存更改,则 SCCS 会创建具有 SID 1.4 的新变化量。文件 p.test.c 为临时文件,由 SCCS 用于跟踪文件版本。
在上述示例中,还可以用 -r 标志获取特定的版本。假设发行版 1 是现有的最高发行版,而变化量 1.3 早已存在并且是发行版本中最高的变化量,则以下三种 get 命令的用法是等效的:
$ get -e s.test.c $ get -e -r1 s.test.c $ get -e -r1.3 s.test.c
$ get -e -r2 s.test.c 1.3 new delta 2.1 67 lines
注意 get 命令表示当 delta 命令存储对 SCCS 文件的更改时将要创建的新变化量的版本。
$ get -e -r1.3 s.test.c 1.3 new delta 1.3.1.1 67 lines
用相同方法在分支上创建变化量。
要编辑一个文件,用 get -e 命令获取文件版本并用 delta 命令保存更改。可存在 SCCS 文件的多个不同可编辑版本,只要它们在不同目录之中。如果试图(用 get 命令)而不用 delta 命令将可编辑文件版本的副本放入一个目录下,则 SCCS 写入一个错误消息。
要不止一次获取同一个可编辑文件版本,在 SCCS 文件中用 admin 命令设置 j 头标志。通过使用 -f 标志设置 j 选项。可从不同目录下多次获取同一个 SID,为每个 get 命令创建一个独立的文件。尽管文件起源于单个 SID,SCCS 给每一个文件唯一的新 SID。
$ pwd /home/marty/sccs $ admin -fj s.test.c
$ get -e s.test.c 1.1 new delta 1.2 5 lines
$ cd /home/new $ get -e /home/marty/sccs/s.test.c 1.2 new delta 1.1.1.1 5 lines
注意 SCCS 从 1.1 的单个原始文件版本创建两个变化量,1.2 和 1.1.1.1。请参照文件 p.test.c。它显示当前使用中的每个版本的独立条目。p.test.c 文件保留在目录中直到您用 delta 命令或 unget 命令来处理两个文件版本。
/usr/bin/get | 包含 get 命令。 |
admin 命令、delta 命令、prs 命令和 sact 命令、sccshelp 命令、unget 命令、what 命令。
AIX 5L Version 5.2 Files Reference 中的 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。