如何使用CVS commitid功能?

时间:2013-02-13 21:42:47

标签: version-control cvs

我注意到较新版本的CVS使用了commitid。

我想这是最近的一个补充 - 因为'回到过去'没有这样的事情。

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

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

例如:

  • 如何在commitids之间显示差异?
  • 如何列出与某个commitid相关联的文件/版本号?

1 个答案:

答案 0 :(得分:1)

除了设置之外,CVS本身似乎没有任何与commitid有关的东西。

以下是文档所说的内容(info cvs):

  

commit,一个唯一的commitid被放置在RCS文件中   库。一次提交的所有文件都获得相同的commitid,即字符串   仅由十六进制数字组成(通常在GNU CVS中为16,在19   MirBSD和MirDebian GNU CVS)。 FSF GNU CVS 1.11,MirOS GNU CVS 1.11,   而OpenBSD OpenCVS还不支持commitids。 commitid可以是   使用logstatus命令检索;看* note log ::和   *注意文件状态::。

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

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

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