CVS 更新显示你的工作目录下所有改变了的或者和repository 中文件不同的文件的状态,使用一个字母来标志。
“U” 表示它已经被repository 中的最新副本所替代;
“M” 表示你的工作副本和repository 的最新副本不同,并且合并已经成功;
“C” 表示存在一个合并冲突。
the following is detail:
update 和 checkout 在执行中,会为每个文件打印一行提示信息 ,文件的状态通过前面的单个字符指明:
U file
文件按要求从仓库得到更新。用在那些仓库里面有但你的工作目录没有的文件,以及工作目录里面没有修改过,但旧于仓库的文件。
P file
类似 ` U ' ,但是 cvs 服务器发送的是补丁而不是整个文件。完成与 ` U ' 同样的工作,但降低带宽的使用。
A file
添加到你的私人副本中,当你使用 commit 后会加到仓库。这可以提醒你需要提交文件。
R file
从你的私人副本中删除,当你执行 commit 命令后会从仓库清除。这可以提醒你文件需要提交。
M file
在你的工作目录中,文件已经修改。
` M ' 可以标明你工作的文件的两种状态: 同样的文件仓库里面没有修改,你的文件仍保持原样; 或者仓库里面的文件也有修改,但在工作目录里成功合并,没有冲突发生。
如果合并,cvs 将打印一些信息,并建立工作文件的备份( 与 update 执行前相同) 。 update 运行时会打印相应的名字。
C file
合并你与仓库中修改到 file 时检测到冲突。file ( 你工作目录里面的副本) 是合并两个修订版的结果; 工作目录里面还有未修改文件的副本,名为 .#file .revision ,其中 revision 是你修改的文件所基于的修订版。解决冲突见 Conflicts example 说明。 ( 注意,在有些系统里面,如果一段日子没有访问 .# 起头的文件,系统会自动清除。如果你需要保留这些原始的文件副本,最好将其改名) vms 系统中,文件名以 __ 开始,而不是 .# 。
? file
file 处于工作目录,但是仓库里面没有对应的文件,它们也不是 cvs 忽略的文件( 参见 ` -I ' 选项的说明,以及 参阅 cvsignore ) 。
update 的几个常用参数:
-D date
使用不迟于 date 的最新修订版。这是一个粘性的选项,含有 ` -P ' 。见 Sticky tags ,了解更多粘性标签/ 日期的信息。
-f
只与 ` -D ' 或 ` -r ' 标识一起使用。如果没有匹配的修订版,获取最新的修订版( 而不是忽略这些文件) 。
-k kflag
根据 kflag 处理关键字。参阅 Keyword substitution 。此选项是粘性的; 以后在这个工作目录里面更新,还是使用相同的 kflag 。 status 命令可以看到粘性的选项。参阅 Invoking CVS ,了解 status 命令的信息。
-l
只在当前工作目录里面执行。 参阅 Recursive behavior .
-P
清除空目录。参阅 Moving directories .
-p
管道方式输出到标准输出。
-R
递归方式检出( 默认) 。 参阅 Recursive behavior .
-r tag [: date ]
获得 rev 修订版/ 标签,或者当 date 指定,并且 tag 是分支标签,分支 tag 上的版本可以当作是在 date 上。此选项是粘性的,含` -P ' 。参阅 Sticky tags 和 Common options 了解更多粘性标签/ 日期的信息。
update 还有一些特殊的选项。
-A
重置任何的粘性标签,日期,或 ` -k ' 选项。参阅 Sticky tags ,了解更多粘性标签/ 日期的信息。
-C
用仓库里面干净的副本覆盖本地的修改( 但修改过的文件另存为 .#file .revision ) 。
-d
创建仓库里面存在而工作目录里面没有的目录。通常, update 只作用于你工作目录里面已经存在的文件和目录。
此选项通常用来更新最初检出创建的目录; 但也有不好的副作用。如果你在建立工作目录时,刻意避免仓库里面的某些目录( 通过模块名,或在命令行上明确指定所需的文件和目录) ,用 ` -d ' 选项更新将创建这些你不想要的目录。
-I name
更新时忽略匹配 name 的文件( 在工作目录里面) 。你可以在命令行上多次使用 ` -I ' 指定多个要忽略的文件。` -I ! ' 可以避免忽略任何文件。参阅 cvsignore , 了解 cvs 忽略文件的其他方式。
-W spec
指定更新时需要过滤的文件名。你可以重复使用此选项。
spec 可以是文件名模板,与 .cvswrappers 文件里面的类型相同。参阅 Wrappers .
-j revision
通过两个 ` -j ' 选项,合并第一个 ` -j ' 选项指定的修订版至第二个 ` j ' 选项修订版的变更到工作目录。
使用一个 ` -j ' 选项,合并最初的修订版至 ` -j ' 选项指定修订版的变更到工作目录。最初的修订版是工作目录文件基于的修订版和 ` -j ' 选项指定修订版共同的祖先。
注意使用 ` -j tagname ' 选项而不是 ` -j branchname ' ,合并的通常不是从分支上删除文件的变更。参阅 Merging adds and removals , 了解详细情况。
另外,每个 ` -j ' 选项可以包含可选的日期规格,当用于分支时,可以限制修订版处于指定日期之内。可选的日期通过分号(:) 加在标签里面: ` -jSymbolic_Tag :Date_Specifier '.