在CVS中修改本地副本的最后日期

时间:2016-03-30 07:04:42

标签: git version-control cvs

我在没有提交的情况下对本地副本进行了一些更改。现在我想找到修改本地副本的最后日期。你能帮我解决一下这个命令吗?

1 个答案:

答案 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;。

之后