下一个: , 上一个: Getting Notified, 上层: Watches


10.6.3 怎样编辑一个被监视的文件

因为被监视的文件在检出时文件属性为只读,你不能直接去编辑它。 为使它成可读写并通知其他人你打算进行编辑,使用 cvs edit 命令。 一些系统把这一过程叫 checkout,但 cvs 使用该术语于获得源码的一份副本(参阅 Getting the source),而这些系统将此称为 getfetch 操作。

— Command: cvs edit [-lR] [-a action]... [files]...

准备编辑工作文件 filescvs 使这些 files 可读写,并且通知请求 edit 监视 files 的用户。

cvs edit 命令使用与 cvs watch add 同样的选项,并建立用户在 files 上临时的监视。 cvs 将在用户使用 uneditcommit 命令后删除对这些 files 的监视。 如果用户不想得到通知,可以指定 -a none 选项。

files 和选项的处理方法与 cvs watch 相同。

1.12.10 版本以后的 cvs 客户端和服务器还有两个新增的参数,用于 cvs edit, 而不用在 cvs watch。第一个是 -c,如果有人编辑文件,它使 cvs edit 命令失败。这也许只对在所有开发人员的 .cvsrc 中指定 `edit -c' 和 `commit -c' 有用。该特性可以被 -f 选项覆盖,使得多个用户可以成功编辑。

通常在做了修改后,你会使用 cvs commit 命令,这将检入你的变更并使文件恢复的通常的只读状态。 但如果你决定放弃修改,或者不做任何修改,可以使用 cvs unedit 命令。

— Command: cvs unedit [-lR] [files]...

放弃对工作文件 files 的修改,并将文件改回的所基于的仓库版本。 cvs 对请求了 cvs watch onfiles 修改属性为只读。 cvs 通知请求了 unedit 监视 files 的用户。

files 和选项的处理方法与 cvs watch 相同。

如果没有使用监视,unedit 命令不会工作,而将文件从仓库恢复的方法是用 cvs update -C file (参阅 update)。 这两种方法不完全相同;后一种还会将你上次更新后的新的变更加进来。

cvs 客户/服务 方式下,即使无法连到服务器也可以使用 cvs editcvs unedit;而通知将在下次正常使用 cvs 命令时进行。