我在没有提交的情况下对本地副本进行了一些更改。现在我想找到修改本地副本的最后日期。你能帮我解决一下这个命令吗?
答案 0 :(得分:0)
任何答案都高度依赖于工作环境(问题中未确定)。 CVS本身并不提供此功能,但它可以支持利用结帐状态的解决方案。
如果假设使用GNU / Linux或类似的shell环境,可以创建一个脚本,仅检查CVS识别为本地修改,未提交或未添加的文件。以下解决方案依赖于环境而且相当尴尬,但确实说明了这一概念。
示例shell会话可能如下所示:
$ cvs -nq update 2>/dev/null \
> | awk '/^[M?]/ { system(sprintf("stat \"%s\"", $2)) }' - \
> | grep ^Modify: \
> | sort \
> | tail -1
Modify: 2016-04-27 10:22:35.000000000 -0500
此命令序列在结帐的顶部运行,因此结果包括其中的所有子目录。
cvs -nq update 2</dev/null
命令生成相对简洁的文件状态报告。它仅报告本地修改或未提交的新文件,未知文件和已在上游更新的文件。
2>/dev/null
会抑制stderr
命令的无趣cvs
输出。
awk
语句使用正则表达式仅匹配工作空间中本地添加和本地修改的文件。然后,它会提取文件的相对路径,并执行stat
操作以获取每个文件的修改时间。
grep
语句会丢弃stat
命令的无趣输出。
sort
命令将输出修改时间从最旧到最新排序,而tail -1
仅显示最近的修改时间。
最近的CVS认可&#34;变更&#34;收银台结果在&#34;修改:&#34;。
之后