CVS:显示本地更改的文件

有没有简单的方法来显示只在我的资源库中的文件已被本地添加,删除或修改? 我知道我可以input“cvs stat”并查看文件列表,但是这很枯燥且容易出错。 我想知道是否有一个更简单的方法。 我正在使用CVS 1.11.17,以防万一。

一个“虚拟”更新会给你这个信息。

cvs -qn update 

所用选项的简短说明:

 -q Cause CVS to be somewhat quiet. -n Do not execute anything that will change the disk. 

您可以使用cvs diff命令获得一个简短的差异列表:

 cvs -q diff --brief 

pipe它grep

 cvs -Q status | grep -i locally 

这是我使用的:

 cvs -Q status | grep -A 4 Locally | egrep -v '^\-\-|^ Working|^ Commit|^$' | awk '{print $2 " " $4}' | sed -e 's/\<Locally\>//;s/revision: \CVS-REPOSITORY-PATH/\t\t/' 

输出:

 pin_stages.ref tests/unit/ccsn/pin_stages/pin_stages.ref,v pin_stages_func.ref tests/unit/ccsn/pin_stages_func/pin_stages_func.ref,v 

这里是nmake-perl脚本列表修改后的文件,它是基于上述的cvs update -qn:

 DIRS=\ c:\project1\ c:\project2 all: $(DIRS) !cd $? & cvs -qn update | perl -ne "s!\/!\\!g;print '$?\\'.qq($$1) if /^M (.*)/s;" 

做一个CVS更新用M前缀的文件是被修改的文件。

例:

 CVS Update cvsntsrv server: Updating dat/idv M dat/idv/conduct.idv = Modified ... 

作为通常提到的cvs update -qn的替代方法,您可以使用cvs release命令。 但是这个是互动的,在输出结尾要求确认(所以你只需要放弃它!)。 正常输出:

 > cvs release . ... U some/updated/file M some/modified/file ... You have [1] altered files in this repository. Are you sure you want to release directory `.': n ** `release' aborted by user choice. > 

问题之后Are you sure you want to release directory '.':你把一些不同于yY东西。

您可以使用以下命令获取您在本地修改的文件的列表

cvs -qn update | grep“M”| awk'{print $ 2}'