CVS只读结账

时间:2009-07-18 03:43:05

标签: cvs perforce

我必须在项目中使用CVS。到目前为止,在我的整个职业生涯中,我只使用了perforce而且我对CVS一无所知,我阅读了整个CVS手册,但却找不到如何做到这一点:

在perforce中,当您签出文件时,首先必须执行p4编辑filename.C(告诉perforce系统您有意编辑此文件以最终提交它)

在CVS中,当我通过执行cvs co fileName.C检出文件时,该文件已处于准备编辑状态。

在CVS中,perforce的常规做法是什么?

[我喜欢在您开始这样做之前必须先明确指示源控制系统编辑文件的附加安全性。这使您可以轻松查看已编辑的文件,还原更改等。此外,您还可以通过显式编辑文件进行临时更改,而无需先执行p4编辑fileName.C,稍后您知道这些只是暂时的变化

非常感谢!

2 个答案:

答案 0 :(得分:3)

您可以这样做:

cvs -r checkout ....

然后当你想编辑文件时,你必须

cvs edit filename

此外,如果您希望提交将文件返回只读,则必须

cvs -r commit ...

或者,忘记-r并只设置CVSREAD环境变量。更容易!

在CVS手册页的全局选项部分中:

  

-r

     

将新工作文件设为只读。   效果与$ CVSREAD相同   环境变量已设置(请参阅节点   CVS中的环境变量   手册)。默认是make   工作文件可写,除非手表   打开(参见CVS中的节点`Watches'   手册)。

示例:

$ cvs -r checkout baz
cvs checkout: Updating baz
U baz/file
$ ls -l baz/file
-r--r--r-- 1 rfeany None 13 Jul 17 21:08 baz/file
$ cvs edit baz/file
$ ls -l baz/file
-rw-r--r-- 1 rfeany None 13 Jul 17 21:08 baz/file

答案 1 :(得分:1)

CVS有一个“编辑”命令,它通知服务器您正在编辑该文件。这实在很少使用。在编辑文件时无需通知系统,可以通过检查内容是否不同来轻松确定。

Subversion具有锁定文件的能力,这可能更像是你想要做的事情。

分布式系统没有这样的概念,因为它们不需要实现它(也没有任何可能的方式)。

另一方面,CVS的选择令人费解。现在有更好的源控制技术。