下一个: , 上层: Multiple developers


10.1 文件状态

依据你对检出文件的操作和其他人对仓库文件的操作,可以将文件分成各种状态。 这些状态可以用 status 命令看到:

Up-to-date
该文件与该分支在仓库里面的最新版本文件内容一致。
Locally Modified
编辑了文件,并且还没有提交改变。
Locally Added
add 命令添加了该文件,但没有提交改变。
Locally Removed
remove 命令删除了该文件,但没有提交改变。
Needs Checkout
另有人向仓库提交了较新的版本。 这个名字有些误导;一般应该用 update 而不是 checkout 来得到新近的版本。
Needs Patch
与需要检出类似,但 cvs 服务器只发送补丁(patch)而不是整个文件。 发补丁和发整个文件做的是同样的事情。
Needs Merge
另有人向仓库提交了较新的版本,而你已经对该文件做了修改。
Unresolved Conflict
与此新文件名字相同的文件从第二工作区添加到仓库中。 该文件要移走才能执行 update 命令。
File had conflicts on merge
类似于 Locally Modified,除先前的 update 命令造成了冲突外。 如果你还没有那么做,需要按 Conflicts example 描述的解决这个冲突。
Unknown
cvs 对该文件一无所知。 例如,创建了一个新文件而还没有执行 add 命令。

为了说清文件的状态,status 命令还报告工作目录中文件的 Working revision,它是该文件编辑前的版本,和一个 Repository revision,它是该文件在仓库里面使用分支的最新版本。`Commit Identifier' 影响 commit 的单一提交。

status 命令的选项列于 Invoking CVS。 关于它的 Sticky tagSticky date 输出信息,见 Sticky tags。 关于它的 Sticky options 输出信息,见 update options 中 `-k' 选项。

你可以认为 statusupdate 命令有互补性。 用 update 将文件更新,而用 status 可以得到 update 能做什么的提示(当然,仓库的状态可能会在实际运行 update 命令时有所改变)。 其实,如果你想要使命令显示比 status 命令显示的更简洁的格式文件状态的信息,可以调用

     $ cvs -n -q update

选项 `-n' 是要求不做实质更新,仅仅显示状态信息; 而 `-q' 选项用来避免打印每个目录名。 关于 update 命令及其选项的更多信息,见 Invoking CVS