Version control 在命令行上执行cvs更新时,如何获得cvs冲突的摘要?

Version control 在命令行上执行cvs更新时,如何获得cvs冲突的摘要?,version-control,command-line,merge,cvs,conflict,Version Control,Command Line,Merge,Cvs,Conflict,在运行cvs更新后,是否有一种简单的方法可以获取冲突摘要 我在一个大项目上工作,完成一些工作后,我需要做一个更新。cvs update命令返回的更改列表有几页长,我只希望看到在cvs update命令输出的末尾重复的冲突列表(以“C”开头) 解决方案需要从命令行运行 如果我的正常输出为: M src/file1.txt M src/file2.txt cvs server: conflicts found ... C src/file3.txt M src/file4.txt M src/fil

在运行
cvs更新后,是否有一种简单的方法可以获取冲突摘要

我在一个大项目上工作,完成一些工作后,我需要做一个更新。cvs update命令返回的更改列表有几页长,我只希望看到在cvs update命令输出的末尾重复的冲突列表(以“C”开头)

解决方案需要从命令行运行

如果我的正常输出为:

M src/file1.txt
M src/file2.txt
cvs server: conflicts found ...
C src/file3.txt
M src/file4.txt
M src/file5.txt
我希望我的新输出为:

M src/file1.txt
M src/file2.txt
cvs server: conflicts found ...
C src/file3.txt
M src/file4.txt
M src/file5.txt

Conflict Summary:
C src/file3.txt

我希望这是一个单独的命令(可能是一个简短的脚本或别名),在发生冲突时输出正常的cvs输出,然后是冲突摘要。

我手头没有cvs,cvs更新输出的确切格式是什么

我好像记得C
如果是这样,您可以使用:

cvs更新| T形日志| grep“^C”

cvs的完整输出保存到日志中,以便在另一点使用。 然后我们对所有以“C”开头的行进行grep


希望这会有所帮助。

鉴于规范,您似乎需要对Martin York的解决方案稍作修改(因为这只显示冲突,而不是正常的日志信息)。类似这样的东西-可能被称为“cvsupd”:

tmp=${TMPDIR:-/tmp}/cvsupd.$$
trap "rm -f $tmp; exit 1" 0 1 2 3 13 15
cvs update "$@" | tee $tmp
if grep -s '^C' $tmp
then
    echo
    echo Conflict Summary:
    grep '^C' $tmp
fi
rm -f $tmp
trap 0
exit 0
trap命令确保日志文件不会被留下。它捕捉正常信号-HUP、INT、QUIT、PIPE和TERM(分别),0捕捉外壳的任何其他出口