2013-02-13 56 views
1

我注意到CVS的新版本使用commitid。如何使用CVS commitid功能?

我想这是最近的一个增加 - 因为'在那些日子里'没有这样的事情。

谷歌搜索我发现大多数与CVSNT有关的评论 - 但似乎承诺也存在于标准的开源CVS中。

如何利用commitid功能(在标准CVS中)?

例如:

  • 如何显示到commitids之间的差异?
  • 如何列出与特定提交ID相关联的文件/版本号?

回答

1

CVS本身似乎没有任何与commitid做任何事情,除了设置它。

这里的文件说什么(info cvs):

commit,独特的commitid被放置在 仓库里RCS文件。所有立即提交的文件获得相同的提交,一个字符串 只包含十六进制数字(通常在GNU CVS中为16,在 MirBSD和MirDebian GNU CVS中为19)。 FSF GNU CVS 1.11,MirOS GNU CVS 1.11, 和OpenBSD OpenCVS不支持提交。可以使用logstatus命令检索到的commitid可以是 ;请参阅*注释日志::和 *注意文件状态::。

其他工具可以解析输出cvs log并确定给定提交的提交。特别是,在单个cvs commit命令中提交的更改将具有相同的提交ID。我可以想象它对于将CVS存储库转换为其他系统(如SVN或Git)的工具很有用。

但是这些工具必须允许由旧版CVS创建的存储库没有此功能。例如,我在CVS中维护的一个文件有211个提交,其中前186个没有提交;显然这是当我转向更新版本的CVS(2007年底或2008年初)时。

一起提交的更改也应该共享相同的时间戳,但这不太可靠。将时间戳与作者相结合应该更可靠一些,但仍然不完美。