CVS:显示本地更改的文件

时间:2010-01-16 00:07:44

标签: cvs

是否有任何简单的方法只显示我的存储库中已在本地添加,删除或修改的文件?我知道我可以键入“cvs stat”并查看文件列表,但这很乏味且容易出错。我想知道是否有更简单的方法。我正在使用CVS 1.11.17,以防万一。

8 个答案:

答案 0 :(得分:77)

'虚拟'更新将为您提供此信息。

cvs -qn update

使用选项的简短描述:

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

答案 1 :(得分:20)

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

cvs -q diff --brief

答案 2 :(得分:4)

将其传递给grep

cvs -Q status | grep -i locally

答案 3 :(得分:2)

以下是我使用的内容:

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

答案 4 :(得分:0)

这里是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;"

答案 5 :(得分:0)

进行CVS更新 前面带有M的文件是修改过的文件。

示例:

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

答案 6 :(得分:0)

作为常用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不同的内容。

答案 7 :(得分:0)

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

cvs -qn update | grep&#34; M&#34; | awk&#39; {print $ 2}&#39;