通用命令选项

这一节来说明 command_options,它通用于一些 cvs 命令。这些选项总数出现在 cvs_command 的右侧。并不是所有的命令都支持这些选项;每个选项只用在有意义的命令上。但是,当一个命令具有这些选项的时候,它总是起着与其余命令中相同的作用。(单独列在命令中的其他命令选项,如果用于不同的命令也许会有不同的意义)。

警告: history 命令是个例外;它支持的许多选项会有冲突,即使是这些标准的选项。

-D date_spec

使用不迟于 date_spec 的最新版本。date_spec 是一个单一参数,说明一个过去的日期。

当你用这种方法生成一个源文件的拷贝时,这是一个粘性(sticky)标签;也就是说,当使用 -D 得到的工作文件,cvs 会记住所指定的日期,因此以后在同一个目录里面更新时,仍会使用这个日期(了解更多的粘性标签/日期信息,参看[粘性的标签(Sticky tags) 在 第 4 章])。

-D 可用于 annotate, checkout, diff, export, history, rdiff, rtag, 和 update 命令。( history 命令使用这个选项时有不同的作用,参考[history options])。

cvs 支持广泛的日期格式。最标准的是 ISO8601 (来自国际标准化组织)和 e-mail 标准(RFC822和修正RFC1123)。

ISO8601 日期格式有很多形式,下面是一些例子:

1972-09-24
1972-09-24 20:05

ISO8601有多种日期格式,cvs 可以用其中的很多种,但你也许并不想完全了解它们 :-)。

另外因为 Internet e-mail 所允许,cvs 也可以省略一些部分。比如:

24 Sep 1972 20:05
24 Sep

除非指定时区,日期将使用本地时区。

建议使用以上两种日期格式。但现在 cvs 也可用接受其他的日期格式,这里特意不作介绍,因为以后的 cvs 版本可能不再使用它们。

这种格式的一个例子是 month/day/year。这种格式会对不同日/月次序习惯的人们造成困惑;因为 1/4/96 是一月四日,而不是四月一日。

要记住将 -D 的参数用引号括起,这样你的 shell 就不会将它们解释成几部分。可以像这样使用 -D

$ cvs diff -D "1 hour ago" cvs.texinfo

-f

当你为 cvs 命令指定一个日期或标签时,通常会忽略不包括该标签的文件(或者在所要日期之前不存在)。使用 -f 选项可以让你在这些文件不匹配标签或日期时也能获得(使用这些文件的最新版本)。

注意,即使使用 -f 选项,所指定的标签也必须存在(就是说存在于一些文件上,不必是所有文件)。如果敲错了标签名,cvs 还是会给出错误信息。

-f 可用于:annotate, checkout, export, rdiff, rtag, 和 update 这些命令。

警告: commitremove 命令有自己的 -f 选项,它们有不同的含义。参看[commit options] 和 [删除文件 在 第 7 章]。

-k kflag

改变默认处理关键字的方式。kflag 的含义参考[第 12 章]。当用 kflag 来创建一个源文件的拷贝时,它是属于粘性(sticky)的;也就是说,在 checkoutupdate 命令中使用这个选项,cvs 将这些文件与 kflag 关联起来,以后使用更新命令还是使用同一个文件,直到换用其他方式。

-k 选项用于 add, checkout, diff, importupdate 命令。

-l

Local; 只作用于本目录,不递归到子目录。

警告: 本选项不同于全局选项 cvs -l,它是用在命令的左侧!

用于下列命令:annotate, checkout, commit, diff, edit, editors, export, log, rdiff, remove, rtag, status, tag, unedit, update, watch, watchers.

-m message

使用 message 作为 log 信息,而不调出一个文本编辑器。

适用于下列命令:add, commitimport

-n

不用运行任何 checkout/commit/tag 程序。(额外程序可在这些命令执行时激活,见[The modules file 在 附录 C];此选项忽略它们)。

警告: 此选项与全局选项cvs -n 不同,那是位于 cvs 命令的左侧!

适用于 checkout, commit, export, 和 rtag 命令。

-P

删除空目录。参见[删除目录 在 第 7 章]。

-p

将源码库中取得的结果输出到管道的标准输出,而不是写到当前工作目录中。适用于 checkoutupdate 命令。

-R

用递归方式处理目录。默认打开。

可用于下列命令:annotate, checkout, commit, diff, edit, editors, export, rdiff, remove, rtag, status, tag, unedit, update, watch, watchers

-r tag

使用指定的 tag 的参数,代替默认的 head 作为所要的版本。两个特殊的标签存在于源码库中: HEAD 指的是最新的版本,BASE 指的是最后检出到工作目录的版本,它们与用 tagrtag 命令定义的标签都可以使用。

checkoutupdate 命令配合这个选项生成的源码拷贝是粘性的:cvs 会记住这个标签,并继续用在以后的更新命令中,除非你特别指定一个别的(粘性 标签/日期 的信息,参考[粘性的标签(Sticky tags) 在 第 4 章])。

tag 可以是字符代号或者数字,参见[标签形式的版本号 在 第 4 章],或者是分支名[第 5 章]。

全局选项 -q 经常和命令 -r 选项一起使用,当 rcs 文件不包括指定标签时,它不显示相应的警告信息。

警告: 这个选项与全局选项 cvs -r 不同,那个出现在 cvs 命令的左侧!

-r 可用于 checkout, commit, diff, history, export, rdiff, rtag, update 这些命令。

-W

指定需要被过滤的文件名。可以循环使用这个选项。规格与 .cvswrappers 文件中指定的文件名模板相同。可用于下列命令:importupdate