运行cvs update后是否有一种简单的方法可以获得冲突摘要?

我在一个大型项目上工作,在完成一些工作后,我需要做一个更新。从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输出,然后是冲突摘要。

有帮助吗?

解决方案

根据规范,您似乎需要对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陷阱来自shell的任何其他出口。

其他提示

我没有cvs方便的cvs update输出的确切格式是什么

我似乎记得C <!> lt; filename <!> gt;
如果是这样,你可以使用:

  

cvs update |三通日志| grep <!> quot; ^ C <!> quot;

cvs的完整输出保存到日志中以供另一个点使用。 然后我们用'C'开始开始的所有行

希望有所帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top