在实际提交之前,如何检查将在 CVS 中提交的内容?

在实际提交之前,如何检查将在 CVS 中提交的内容?

我想在运行 cvs commit 命令之前准确了解将提交的内容。我最近刚刚使用添加了一个文件

cvs add myFile

然后使用提交文件

cvs commit -m "my message"

但是当我运行 commit 命令时,我最终修改了其他文件,并删除了我不打算更改或不知道将要提交的文件,因此我必须将这些文件一一恢复。我相信它被称为暂存区?已添加但尚未提交或准备提交的文件在哪里?我只是想看看在实际运行 cvs commit 命令之前会进行哪些更改。

答案1

cvs好久没用了:sub版本svn和mercurialhg比较好。它们具有原子提交(每个文件都一起提交,因此您可以一步角色备份整个提交)。

指定要提交的文件:cvs commit -m '«message»' '«file-names…»'

#↳ cvs --help commit
用法:cvs commit [-cRlf] [-m msg | -F 日志文件] [-r rev] 文件...

和/或用于cvs status查找您正在寻找的信息。

cvs status 命令是确定哪些文件是最新的以及哪些文件需要提交或合并的快速方法。 ……—— https://www.oreilly.com/library/view/essential-cvs/0596004591/ch03s04.html#:~:text=%20cvs%20status%20command%20is,已合并

答案2

update如果您未指定要提交的文件,则可以使用该命令显示将提交的已修改和添加的文件。添加-n模拟更新(试运行)的选项,例如

$ cvs -n up
cvs update: Updating .
M foo
A yum

显示yum已添加的文件和foo已修改的文件(up是 的别名update,请参阅cvs --help-synonyms)。

答案3

由于OP特别关心将提交哪些更改,并且cvs status如果当前目录中有很多文件,则可能会很长,

cvs status | grep -P 'Status: (?!Up-to-date)'

可用于仅显示尚未受到修订控制且为最新的文件。这可能仍然有一些无关的信息,例如尚未签入且未暂存以进行提交的文件(即 CVS 一无所知的文件)。但应该少费力。这假定 grep 版本支持 -P“Perl 样式正则表达式”选项。

请注意,Freddy 的方法提供了类似的输出并且速度要快得多。

相关内容