AIX命令参考大全,卷 2,d - h - get 命令

[ 页的底部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]

AIX命令参考大全,卷 2,d - h

get 命令

用途

创建指定版本的 SCCS 文件。

语法

获取 SCCS 文件的只读版本

get [ -g ] [ -m ] [ -n ] [ -p ] [ -s ] [ -c Cutoff ] [ -iList ] [ -r SID ] [ -t ] [ -x List ] [ -w String ] [ -l [ p ] ] [ -L ] File ...

获取 SCCS 文件的可编辑版本

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 命令支持用 w 标志指定的文件名和字符串数据的“多字节字符集(MBCS)”。

获取只读文件版本

get 命令创建文件的只读版本和可编辑版本。当应用程序不要求改变文件内容时则应使用文件的只读版本。可编译源代码文件的只读版本。文本文件可从只读版本显示或打印出来。

在使用标识关键字时可编辑版本与只读版本之间的区别是很重要的。标识关键字是当 get 命令检索只读文件时扩展到一些文本值的符号。在可编辑版本中,不扩展关键字。标识关键字可出现在 SCCS 文件的任何位置。有关标识关键字的进一步信息,请参阅 prs 命令。

SCCS 文件

除了具有 s. 前缀的文件(s 文件),get 命令还创建多个辅助文件:g 文件l 文件p 文件z 文件。这些文件由它们的标记(连字号前面的字母)标识。get 程序通过将 SCCS 文件名中前面的 s. 替换为适当的标记来命名辅助文件,g 文件 例外,它是通过除去 s. 前缀来命名。例如,名为 s.sample 的文件,辅助文件名应为 samplel.samplep.samplez.sample

这些文件服务于以下用途:

s 文件 包含原文件文本以及所有对文件所作的更改(变化量)。它还包括如下信息:谁能更改文件内容,谁进行了更改,什么时候进行的这些更改以及所作更改的本质。因为是只读文件,所以不能直接编辑该文件。然而,它包含 SCCS 命令构建您可编辑的 g 文件所需的信息。
g 文件 ASCII 文本文件,它包含用 -r 标志指定的 SCCS 文件版本(或标志缺省时为最新的干线版本)。该文件可以直接编辑。当完成了所有更改并要对文件进行新的更改时,则在此文件上运行 delta 命令。get 命令在当前目录创建 g 文件

它每次运行时,get 命令会创建一个 g 文件,除非指定了 -g 标志或 -p 标志。实际用户拥有它(而非有效用户)。如果不指定 -k -e 标志,则文件为只读文件。如果指定了 -k -e 标志,则所有者具有 g 文件的写权限。要创建 g 文件,必须在当前目录下具有写权限。

l 文件 当指定了 -l 标志时,get 命令创建 l 文件l 文件是只读文件。它包含显示生成 g 文件时应用的变化量的表。要创建 l 文件,必须在当前目录下具有写权限。l 文件中的行具有以下格式:
  • 如应用了变化量,则为空格字符,否则为星号。
  • 如应用了变化量或不应用并忽略变化量时,为空格字符。如不应用且不忽略变化量,则出现星号。
  • 一个代码表明变化量应用与否的特殊原因:
    空格
    通常包含或排除
    I
    使用 -i 标志包含
    X
    使用 -x 标志排除
    C
    使用 -c 标志切断
  • SID。
  • 文件创建的日期与时间。
  • 变化量创建者的登录名。

注释与“修改请求(MR)”数据跟在后续行之后,缩进一个水平制表符。每个条目以空行结束。例如,要用 -c 标志切断变化量,则 l 文件中的条目可能为:

**C 1.3 85/03/13 12:44:16 pat

且初始变化量的条目可能为:

1.1 85/02/27 15:42:20 pat
创建日期和时间 85/02/27 15:42:20 由 pat 创建
p 文件 当指定了 -e-k 标志时,get 创建 p 文件p 文件get -e 命令生成的信息传递到 delta 命令。p 文件还在运行 delta 命令或者将联合编辑键字母(j)设置在 SCCS 文件中之前防止对相同的 SID 执行后续的 get -e 命令。j 键字母允许在同一 SID 上运行多个 get 命令。p 文件创建于包含 SCCS File 的目录中。要在 SCCS 目录中创建 p 文件,必须具有该目录下的写权限。除其所有者之外,p 文件的许可权代码对所有人都是只读的,且它属有效用户所有。p 文件不应直接由其所有者编辑。p 文件包含:
  • 当前 SID
  • 要创建的新变化量的 SID
  • 用户名
  • get 命令的日期与时间
  • -i 标志,如果存在
  • -x 标志,如果存在

p 文件包含具有文件的每个暂挂变化量的前导信息的项。任意两行不能有相同的新变化量 SID。

z 文件 z 文件是相对同时更新的锁定机制。z 文件包含创建它的 get 命令的二进制进程编号。该文件创建在包含 SCCS 文件的目录里,仅当 get 命令运行时存在。

当使用 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。

SID 确定
指定的 SID 使用的 -b 其它条件 检索的 SID 要创建的变化量的 SID
1 R 缺省为 mR 2 mR.mL mR.(mL+1)
1 R 缺省为 mR mR.mL mR.mL.(mB+1).1
R R>mR mR.mL R.1 3
R R=mR mR.mL mR.(mL+1)
R R>mR mR.mL mR.mL.(mB+1).1
R R=mR mR.mL mR.mL.(mB+1).1
R N/A R<mR 和 R 不存在 hR.mL 4 hR.mL.(mB+1) .1
R N/A 在 >R 的发行版和 R 中的干线后续作业 R.mL R.mL.(mB+1).1
R.L. 无干线后续作业 R.L. R.(L+1)
R.L. 无干线后续作业 R.L. R.L(mB+1).1
R.L. N/A 在 > 或 = R 的发行版中的干线后续作业 R.L. R.L.(mB+1).1
R.L.B. 无分支后续作业 R.L.B.mS R.L.B.(mS+1)
R.L.B. yes 无分支后续作业 R.L.B.mS R.L.(mB+1).1
R.L.B.S. 无分支后续作业 R.L.B.S. R.L.B.(S+1)
R.L.B.S. 无分支后续作业 R.L.B.S. R.L.(mB+1).1
R.L.B.S. N/A 分支后续作业 R.L.B.S. R.L.(mB+1).1
注:
在“SID 确定”表中,字母 R、L、B、S 表示 SID 的发行版、级别、分支和序列组件。字母 m 表示最大值。

1 仅当-d(缺省 SID)标志在文件之中不存在时应用(请参阅admin 命令)。

2 mR 表示现有最高发行版本。

3 在新的发行版中第一个变化量的强制创建。

4 hR 是比指定的不存在的发行版本 R 低的现有的最高发行版本。

标识关键字

通过在每次标识关键字出现时替换它们的值把标识信息插入到从 SCCS 文件检索的文本之中。下列关键字可用于存储在 SCCS 文件中的文本:

关键字
02 模块名称:文件中的 m 标志的值,或者,如果不存在,则为除去带 s. 的 SCCS 文件的名称。
1.32 检索文本的 SCCS 标识(SID)(1.321.32.0.0)。
1 发行版。
%L % 级别。
0 分支。
0 序列。
04/07/29 当前日期,格式为 YY/MM/DD
7/29/04 当前日期,格式为 MM/DD/YY。
09:44:00 当前时间,格式为 HH:MM:SS
04/07/29 创建最新应用的变化量的日期,格式为 YY/MM/DD
7/29/04 创建最新应用的变化量的日期,格式为 MM/DD/YY
模块类型:SCCS 文件中 t 标志的值。
/family/aix/vc/12/2/6/1/s.02 SCCS 文件名。
/family/aix/vc/12/2/6/1/s.02 SCCS 绝对路径名。
文件中 -q 标志的值。
387 当前行号。此关键字用于标识程序输出的消息,比如这本不应该发生错误消息。388 不会用于每行来提供序列号。
@(#) 四字符字符串 @(#),可通过 what 识别。
src/idd/zh_CN/cmds/aixcmds2/get.htm, idaixcmds2, iddt9n52H, 0431B_IDDzhCN 构造 what 字符串的速记符号:src/idd/zh_CN/cmds/aixcmds2/get.htm, idaixcmds2, iddt9n52H, 0431B_IDDzhCN = @(#)02<tab>1.32
@(#) 02 1.32@(#) 另一个构造 what 字符串的速记符号:@(#) 02 1.32@(#) = @(#) 02 1.32@(#)

标志

-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 发生错误。

示例

下列描述与示例说明了只读与可编辑版本文件之间的区别。

  1. 要打印文件中的当前日期与 SID,请将以下符号置于文件之中;

    7/29/04 1.32

    7/29/04 是当前日期的符号,1.32 是 SID 符号。当 get 命令检索可编辑文件时,它将符号留在文件之中,不执行文本值替换。

  2. 以下 get 命令的示例构建了最高的 SID 版本,因为该示例未指定文件的版本:

    $ ls
    s.test.c
    $ get s.test.c
    3.5
    59 line
    $ ls
    s.test.c test.c
  3. 在下两个示例中,-r 标志指定了要获取的版本:

    $ get -r1.3 s.test.c
    1.3
    67 lines
     
    $ get -r1.3.1.4 s.test.c
    1.3.1.4
    50 lines
  4. 如果仅指定了 SID 的发行版号,则 get 命令在发行版号之内查找最高级别的文件。

    $ get -r2 s.test.c
    2.7
    21 lines
  5. 如果指定的 SID 大于现有最大 SID,则 get 命令将获取该现有最大 SID。如果指定的 SID 小于现有最小 SID,则 SCCS 写入一个出错消息。在以下示例中,发行版 7 是现有的最高发行版:

    $ get -r9 s.test.c
    7.6
    400 lines
  6. -t 标志在给定的发行版或级别中获取最高版本。最高版本是最近创建的变化量,与其位置无关。在下一个示例中,发行版 3 中现有的最高变化量为 3.5,而最新创建的变化量为 3.2.1.5。

    $ get -t -r3 s.test.c
    3.2.1.5
    46 lines
  7. 上述示例使用 get 命令获取只读文件。要创建可编辑并可用于创建新变化量的文件副本,请使用带 -e 标志的 get 命令。用 unget 来撤销 get -e 命令的作用并废弃创建变化量之前对文件所作的任何更改。以下示例显示如何使用 -e 标志:

    $ 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
  8. 要开始使用新的(更高值)发行版号,请用 -r 标志获取该文件,并指定一个比当前最高发行版号更高的发行版号。在下一个示例中,发行版 2 还不存在:

    $ get -e -r2 s.test.c
    1.3
    new delta 2.1
    67 lines

    注意 get 命令表示当 delta 命令存储对 SCCS 文件的更改时将要创建的新变化量的版本。

  9. 要创建一个分支变化量,请使用 -r 标志并指定出现分支处的发行版和级别。在下一个示例中,变化量 1.31.4 已经存在。

    $ 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。

  10. 在以下示例中,pwd 命令显示了当前目录。然后用 admin 命令设置 j 选项:

    注:
    在本例当中您必须具备两个目录下的写权限来以发出命令。

    $ pwd
    /home/marty/sccs
    $ admin -fj s.test.c
  11. 然后用 get 命令来检索文件的最新版本:

    注:
    在本例当中您必须具备两个目录下的写权限来发出命令。

    $ get -e s.test.c
    1.1
    new delta 1.2
    5 lines
  12. 更改为 /home/new 目录,并再次发出 get 命令。

    注:
    在本例当中您必须具备两个目录下的写权限来以发出命令。

    $ 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.21.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

[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]