是否有任何简单的方法只显示我的存储库中已在本地添加,删除或修改的文件?我知道我可以键入“cvs stat”并查看文件列表,但这很乏味且容易出错。我想知道是否有更简单的方法。我正在使用CVS 1.11.17,以防万一。
答案 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 '.':
之后,您提出了与y
或Y
不同的内容。
答案 7 :(得分:0)
您可以使用以下命令获取本地修改的文件列表
cvs -qn update | grep&#34; M&#34; | awk&#39; {print $ 2}&#39;