列出CVS中一年内未编辑的所有文件

时间:2009-05-08 18:30:13

标签: version-control cvs

如何在CVS的存储库中获取过去一年中尚未更改的所有文件的列表?

4 个答案:

答案 0 :(得分:1)

我能想到的唯一方法是获取去年更改的每个文件的列表(这里我使用2008-05-08作为一年前的日期):

cvs history -c -D2008-05-08

并与存储库中当前每个文件的列表进行比较。那些不在cvs history生成的列表中的人在去年没有被修改过。

答案 1 :(得分:1)

我们可以使用ViewVC(或以前称为ViewCVS)轻松完成此操作。它的作用是构建一个包含所有文件及其提交(包含注释和作者)的SQL数据库,您可以通过多种方式轻松查询这些文件。

您可以从http://www.viewvc.org/下载。您必须设置MySQL服务器来存储数据,并且可以访问CVS服务器上的物理存储库目录,以通过cvsdbadmin工具导入现有的存储库提交:

cvsdbadmin rebuild /var/lib/cvs

其中/var/lib/cvs是您的存储库位置。数据库连接信息存储在ViewVC配置文件中。

根据存储库大小,这可能会在几秒到几个小时之间运行。完成后,您可以使用常规SQL查询工具查找有关提交的各种信息 - 我们使用它来快速生成更改日志。 使用CVS loginfo script(也包含在ViewVC中),只要有人将文件提交给CVS,我们就会即时更新数据库。

如果你偶然犯了一些东西,也会非常有用(见this blog post);因为CVS提交不是交易性的,所以这可能是一个难以理解的问题。

答案 2 :(得分:1)

如果您有权访问存储库,则可以搜索以查找上次修改日期超过一年的文件。在CVS中,每个文件都有一个相应的存储库文件。 (这在Subversion中不起作用,因为存储库是不透明的格式。)

答案 3 :(得分:0)

用于显示相同文件(--report-identical-files)的CVS diff选项似乎已损坏,至少对我而言。您可以查看旧版本:

cvs co -D "1 year old" proj

使用好的旧差异查找相同的文件:

diff --recursive --report-identical-files --brief | grep identical